Part of #344
Question
What is the minimal set of relation types that agent-session memory actually needs, with their domain/range bindings?
default_ontology.yaml ships 11 entity types and zero relation types, and it is the only ontology anything in this repo has ever run. The plan deliberately froze it that way and deferred a real vocabulary to "later, once a real project-specific ontology exists." That deferral is precisely what produced an edgeless graph, so it is in scope here.
Deliberately small — enough to exercise and validate the machinery, not a complete domain ontology. Authoring a full one is its own effort.
Open:
- Which relations. What does agent-session memory actually need to answer the kinds of questions it gets asked? Candidates worth pressure-testing rather than assuming:
works_for, located_in, uses, part_of, decided, prefers. The existing unstructured2graph/evals/gold_corpus.jsonl already exercises works_for / founded / located_in, and its README records that the natural chat corpus carries almost no explicit named-entity-to-named-entity relations (verified: zero matches for "works at/for|founder|founded|CEO|professor at|based in|headquartered" across the whole corpus). So a vocabulary copied from that eval may be a poor fit for real session text — which may itself be the finding.
- Domain/range per relation. Which of the 11 existing entity types can sit at each end. Note
Concept, Content, Artifact, Method, Data, NaturalObject, Creature are deliberately wide categories; a relation bound to Concept at both ends constrains almost nothing.
- Relations between what, exactly. LongMemEval-style questions ("what was Admon's Sunday shift", "how many months since I visited a museum") often hinge on facts that are not entity-to-entity at all — they are attributes, quantities, or temporal facts. Does a relation vocabulary even address them, or does this surface a need for something else (span attributes, which GLiNER2.5 also offers)? This is the question most likely to reshape the map.
- Where it lives. Extending
default_ontology.yaml vs a separate context-graph-specific ontology file. Partly fog until the vocabulary exists, but flag it if the answer becomes obvious while authoring.
Part of #344
Question
What is the minimal set of relation types that agent-session memory actually needs, with their domain/range bindings?
default_ontology.yamlships 11 entity types and zero relation types, and it is the only ontology anything in this repo has ever run. The plan deliberately froze it that way and deferred a real vocabulary to "later, once a real project-specific ontology exists." That deferral is precisely what produced an edgeless graph, so it is in scope here.Deliberately small — enough to exercise and validate the machinery, not a complete domain ontology. Authoring a full one is its own effort.
Open:
works_for,located_in,uses,part_of,decided,prefers. The existingunstructured2graph/evals/gold_corpus.jsonlalready exercisesworks_for/founded/located_in, and its README records that the natural chat corpus carries almost no explicit named-entity-to-named-entity relations (verified: zero matches for "works at/for|founder|founded|CEO|professor at|based in|headquartered" across the whole corpus). So a vocabulary copied from that eval may be a poor fit for real session text — which may itself be the finding.Concept,Content,Artifact,Method,Data,NaturalObject,Creatureare deliberately wide categories; a relation bound toConceptat both ends constrains almost nothing.default_ontology.yamlvs a separate context-graph-specific ontology file. Partly fog until the vocabulary exists, but flag it if the answer becomes obvious while authoring.