At a glance
Before the workshop
FFE and Experio SMEs- Print or share the golden questions from Workshop 1, grouped by use case.
- Open Model & Define > Ontology and review the default ontology. Note which types fit the client (Client, Employee, Project, Proposal, Contract, Skill often do) and which do not (for example TimeEntry or ProductCatalog for a consulting firm).
- Pre-mark each question: underline nouns, circle verbs, box filters and sorts. You will redo this with the room, but a draft keeps the session moving.
- Pull the column headers of each structured export from the data inventory. The keys there (
employee_id,project_code,account_id) become attributes and match keys.
- Confirm the golden questions are final for the pilot. Adding questions later is fine; changing their meaning mid-workshop is not.
- Bring the headers of every structured export and one real example row.
- Bring any existing picklists you already know about (industries, service lines, skills). They feed Workshop 4.
Agenda
Running the workshop
1. Walk each question
Put one question on screen at a time and mark it up with the room.
Write every candidate down, even duplicates. Consolidate afterwards.
2. Consolidate entity types
- Use singular PascalCase names:
Client,Project,Employee,Obligation. NotClients, notclient_account. - Merge synonyms into one type. “Customer”, “account” and “client” are one
Client. Record the other words as synonyms on the entity type; chat uses them to map informal terms to the right type. - Start from the default ontology where it fits. Keep its types and attributes when they match, rename when only the name differs (for example
DivisiontoPractice), and delete what no question needs. - Aim for 8–15 entity types for a pilot. More than that usually means you are modelling the documents rather than the questions.
3. Decide attributes
For each entity type, list only the attributes a question filters on, sorts on, returns, or needs as a key.
Write an extraction instruction for every attribute a document will fill. Say where the value usually appears, what to do when it is missing, and the format you want. Put the format in the instruction itself, for example “Format: YYYY-MM-DD” or “Number in US dollars, no currency symbol”. Long lists of allowed values belong in a taxonomy; reference it with
@TaxonomyName (see Workshop 4).
The visual editor’s type list offers Text, Number, Date and List. Set boolean and enum attributes in the JSON view; an enum needs an
options array. Enum options are validated when you save but are not sent to the extraction model, so also list the allowed values in the extraction instruction (“One of: MSA, SOW, amendment.”). Values are stored as text.4. Decide relationships
- Name relationships as UPPER_SNAKE verbs that read left to right:
Employee WORKS_ON_PROJECT Project,Contract IMPOSES Obligation. - Model one direction only. Chat can follow a relationship either way, so do not add inverse pairs like
HAS_EMPLOYEEandWORKS_FOR. - Put facts about the connection on the relationship, not on either end. The role someone played on a project belongs on
WORKS_ON_PROJECT {role, start_date, end_date, hours}, because the same person has different roles on different projects. - Mark a relationship Required upstream relationship only when the child cannot be created correctly without its parent. The flag treats the relationship’s source as the parent, so the relationship must point parent to child, and the source type must have a vector index. See Workshop 5 for how artifact types use it.
5. Decide keys and vector indexes
For each entity type, agree the match key: the attribute that identifies one real-world thing across sources. Record it now; you enter it later in data mappings (Workshop 6) and matching strategies (Workshop 7). The ontology itself has no “key” field, but the key must exist as an attribute. Turn on a vector index for entity types that users mention by name in questions, and for types that documents must match by similarity. Chat resolves names in a question (“Lakeshore”, “Bob Chen”) through exact matches and these indexes, and document matching can only use Vector Similarity on an indexed type. Small closed lists (Practice) rarely need one.6. Trace and cut
Fill in the question-to-model trace table (see the worked example). Every golden question must map to types, relationships and attributes that exist. Anything in the model that no question uses goes to a parking list for after the pilot.Worked example: Northbridge Consulting
Marcus Lee (super user), Dana Ortiz, Sam Whitfield and Helen Park walked the nine golden questions. They kept Client, Employee, Project, Proposal, Contract, Skill and Obligation from the default ontology, renamed Division to Practice, and deleted the rest.
Sample extraction instructions Helen agreed for Contract:
Question to model trace
Q7 showed that
expiration_date must be a date, not text, or “next 90 days” cannot be computed. Q1 showed that “who led” needs role on the relationship, not a lead attribute on Project.
Accelerate with AI
In development — availability depends on your release.
questions.md). It proposes entity types, attributes and relationships as cards. Treat the draft as pre-reading: review each card in the workshop, apply the ones the room agrees, and save on the Ontology page. The manual path above always works and is the one to use when the copilot is not in your release.
Admin Copilot (⌘J) is available today and can answer “how do I” questions about the ontology editor from these docs.
Entering it in Experio
1
Open the editor
Go to Model & Define > Ontology. Use the Canvas view to add entity types and draw relationships, or the Json view to edit the schema directly (needed for boolean and enum attributes).
2
Add entity types
For each type, fill Node Name, Semantic Intent (one sentence on what it means) and Synonyms on the Details tab, then add attributes with type and extraction instructions on the Attributes tab.
3
Add relationships
Choose source entity, relation type and target entity. Add relationship attributes (for example
role). Tick Required upstream relationship only where agreed.4
Turn on vector indexes
Select the entity type and open the Indexes tab. Enable the name index (the expression defaults to
name) and any attribute indexes on text or list attributes.5
Save a revision
Click Save. If the change renames or deletes anything, a confirmation lists the impact. Each save creates a new revision you can compare or roll back from Revision History.
6
Check compatibility
Open Model & Define > Compatibility and fix anything invalid before the next scan.
Revisions and compatibility
Every save publishes a revision, and Experio re-checks everything that depends on the ontology: artifact types, data mappings, enrichment rules and matching strategies. See ontology compatibility.
Deleting from the ontology does not delete nodes already in the graph. Early in the project, before artifact types and mappings exist, changes are cheap. After pilot ingestion, prefer renames and additions, and plan deletes together with the fixes to dependents. Detail: Ontology and Ontology Compatibility.
Common pitfalls
- Modelling the documents. A
Resumeentity type with anexperienceblob answers nothing. Model the person, skills and projects the resume describes. - Facts on the wrong end. A role, date range or proficiency that depends on the pair belongs on the relationship.
- Dates and money as text. Filters like “since 2023” and “below $1M” need date and number types.
- Enum values only in
options. The extraction model does not see them; repeat them in the instruction. - No key. If two sources describe the same client and there is no agreed key, you will get duplicates. Decide keys now.
- Inverse relationships.
HAS_PROJECTandFOR_CLIENTside by side confuse extraction and chat. Keep one. - Keeping unused default types. Every extra type is something extraction may try to fill. Delete what no question needs, and remove any seeded artifact types that reference deleted types so they do not show as invalid.
Exit criteria
- Every golden question appears in the trace table with types, relationships and attributes that exist in the saved ontology
- 8–15 entity types, singular PascalCase; relationships UPPER_SNAKE, one direction each
- Every filter or sort attribute has the right type (date, number, boolean, enum)
- Extraction instructions written for every attribute documents will fill, including format and allowed values
- Match key agreed for every entity type and present as an attribute
- Vector indexes enabled on the types users name in questions
- Taxonomies needed (
@Industry,@ServiceLine…) listed for Workshop 4 - Ontology saved; Model & Define > Compatibility shows no invalid configs
- Super user can explain the model to a colleague using the diagram