Add core cognition semantic seed pack
- add en_core_cognition_v1 deterministic seed lexicon - mount the pack after en_minimal_v1 in default runtime config - add pack smoke tests for loadability, required concepts, runtime mounting, prompt compatibility, and deterministic ordering
This commit is contained in:
parent
a5f9074adb
commit
a6fd31e4bb
4 changed files with 191 additions and 1 deletions
|
|
@ -5,7 +5,12 @@ from dataclasses import dataclass
|
|||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class RuntimeConfig:
|
||||
input_packs: tuple[str, ...] = ("en_minimal_v1", "he_logos_micro_v1", "grc_logos_micro_v1")
|
||||
input_packs: tuple[str, ...] = (
|
||||
"en_minimal_v1",
|
||||
"en_core_cognition_v1",
|
||||
"he_logos_micro_v1",
|
||||
"grc_logos_micro_v1",
|
||||
)
|
||||
output_language: str = "en"
|
||||
frame_pack: str = "en"
|
||||
max_tokens: int = 32
|
||||
|
|
|
|||
55
language_packs/data/en_core_cognition_v1/lexicon.jsonl
Normal file
55
language_packs/data/en_core_cognition_v1/lexicon.jsonl
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{"entry_id":"en-core-cog-001","surface":"word","lemma":"word","language":"en","pos":"NOUN","semantic_domains":["cognition.language.word","logos.core","communication.articulation","meaning.symbol"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-002","surface":"truth","lemma":"truth","language":"en","pos":"NOUN","semantic_domains":["cognition.truth","logos.core","epistemic.ground","meaning.verification"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-003","surface":"light","lemma":"light","language":"en","pos":"NOUN","semantic_domains":["cognition.illumination","logos.core","perception.clarity","meaning.revelation"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-004","surface":"life","lemma":"life","language":"en","pos":"NOUN","semantic_domains":["cognition.vitality","logos.core","being.animate","meaning.existence"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-005","surface":"beginning","lemma":"beginning","language":"en","pos":"NOUN","semantic_domains":["cognition.origin","logos.core","temporal.start","meaning.sequence"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-006","surface":"creation","lemma":"creation","language":"en","pos":"NOUN","semantic_domains":["cognition.creation","logos.core","formation.origin","agency.making"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-007","surface":"knowledge","lemma":"knowledge","language":"en","pos":"NOUN","semantic_domains":["cognition.knowledge","epistemic.ground","memory.semantic","reason.object"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-008","surface":"wisdom","lemma":"wisdom","language":"en","pos":"NOUN","semantic_domains":["cognition.wisdom","epistemic.judgment","reason.order","value.good"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-009","surface":"spirit","lemma":"spirit","language":"en","pos":"NOUN","semantic_domains":["cognition.spirit","logos.core","being.animating","meaning.breath"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-010","surface":"person","lemma":"person","language":"en","pos":"NOUN","semantic_domains":["cognition.person","agency.subject","identity.personal","relation.dialogic"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-011","surface":"question","lemma":"question","language":"en","pos":"NOUN","semantic_domains":["cognition.question","epistemic.seeking","dialogue.inquiry","reason.request"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-012","surface":"answer","lemma":"answer","language":"en","pos":"NOUN","semantic_domains":["cognition.answer","epistemic.ground","dialogue.response","reason.result"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-013","surface":"reason","lemma":"reason","language":"en","pos":"NOUN","semantic_domains":["cognition.reason","logic.cause","explanation.ground","logos.internal"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-014","surface":"cause","lemma":"cause","language":"en","pos":"NOUN","semantic_domains":["cognition.cause","logic.causal","relation.ground","explanation.source"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-015","surface":"memory","lemma":"memory","language":"en","pos":"NOUN","semantic_domains":["cognition.memory","memory.semantic","recall.surface","knowledge.storage"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-016","surface":"correction","lemma":"correction","language":"en","pos":"NOUN","semantic_domains":["cognition.correction","teaching.review","dialogue.repair","memory.update"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-017","surface":"meaning","lemma":"meaning","language":"en","pos":"NOUN","semantic_domains":["cognition.meaning","semantics","language.reference","logos.internal"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-018","surface":"definition","lemma":"definition","language":"en","pos":"NOUN","semantic_domains":["cognition.definition","semantics.definition","dialogue.answer","reason.boundary"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-019","surface":"comparison","lemma":"comparison","language":"en","pos":"NOUN","semantic_domains":["cognition.comparison","relation.contrast","reason.structure","dialogue.explain"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-020","surface":"identity","lemma":"identity","language":"en","pos":"NOUN","semantic_domains":["cognition.identity","identity.stable","runtime.contract","value.axis"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-021","surface":"concept","lemma":"concept","language":"en","pos":"NOUN","semantic_domains":["cognition.concept","semantics.node","reason.object","memory.semantic"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-022","surface":"context","lemma":"context","language":"en","pos":"NOUN","semantic_domains":["cognition.context","dialogue.state","memory.episodic","relation.frame"],"morphology_tags":["noun"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-023","surface":"define","lemma":"define","language":"en","pos":"VERB","semantic_domains":["operation.define","cognition.definition","dialogue.answer","semantics.boundary"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-024","surface":"explain","lemma":"explain","language":"en","pos":"VERB","semantic_domains":["operation.explain","cognition.reason","dialogue.answer","causality"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-025","surface":"compare","lemma":"compare","language":"en","pos":"VERB","semantic_domains":["operation.compare","cognition.comparison","relation.contrast","reason.structure"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-026","surface":"infer","lemma":"infer","language":"en","pos":"VERB","semantic_domains":["operation.infer","cognition.reason","logic.derivation","epistemic.formation"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-027","surface":"remember","lemma":"remember","language":"en","pos":"VERB","semantic_domains":["operation.remember","cognition.memory","memory.recall","dialogue.continuity"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-028","surface":"correct","lemma":"correct","language":"en","pos":"VERB","semantic_domains":["operation.correct","cognition.correction","teaching.review","dialogue.repair"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-029","surface":"verify","lemma":"verify","language":"en","pos":"VERB","semantic_domains":["operation.verify","cognition.truth","epistemic.check","dialogue.answer"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-030","surface":"ask","lemma":"ask","language":"en","pos":"VERB","semantic_domains":["operation.ask","cognition.question","dialogue.inquiry","epistemic.seeking"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-031","surface":"mean","lemma":"mean","language":"en","pos":"VERB","semantic_domains":["operation.mean","cognition.meaning","semantics.reference","language"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-032","surface":"reveal","lemma":"reveal","language":"en","pos":"VERB","semantic_domains":["operation.reveal","cognition.light","logos.illumination","meaning.manifest"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-033","surface":"relate","lemma":"relate","language":"en","pos":"VERB","semantic_domains":["operation.relate","relation.link","cognition.graph","reason.structure"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-034","surface":"distinguish","lemma":"distinguish","language":"en","pos":"VERB","semantic_domains":["operation.distinguish","relation.contrast","cognition.comparison","reason.boundary"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-035","surface":"teach","lemma":"teach","language":"en","pos":"VERB","semantic_domains":["operation.teach","teaching.review","cognition.learning","memory.update"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-036","surface":"learn","lemma":"learn","language":"en","pos":"VERB","semantic_domains":["operation.learn","cognition.learning","memory.update","epistemic.formation"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-037","surface":"recall","lemma":"recall","language":"en","pos":"VERB","semantic_domains":["operation.recall","cognition.memory","memory.retrieval","dialogue.continuity"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-038","surface":"is","lemma":"be","language":"en","pos":"AUX","semantic_domains":["relation.identity","predicate.copula","cognition.definition","existence.state"],"morphology_tags":["auxiliary","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-039","surface":"has","lemma":"have","language":"en","pos":"VERB","semantic_domains":["relation.possession","predicate.attribute","cognition.description","existence.state"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-040","surface":"causes","lemma":"cause","language":"en","pos":"VERB","semantic_domains":["relation.causal","predicate.cause","cognition.cause","explanation.ground"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-041","surface":"reveals","lemma":"reveal","language":"en","pos":"VERB","semantic_domains":["relation.revelation","predicate.manifest","cognition.light","logos.illumination"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-042","surface":"means","lemma":"mean","language":"en","pos":"VERB","semantic_domains":["relation.meaning","predicate.semantic","cognition.meaning","language.reference"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-043","surface":"contrasts_with","lemma":"contrast","language":"en","pos":"VERB","semantic_domains":["relation.contrast","predicate.comparison","cognition.comparison","reason.boundary"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-044","surface":"precedes","lemma":"precede","language":"en","pos":"VERB","semantic_domains":["relation.sequence.before","predicate.temporal","cognition.order","temporal.start"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-045","surface":"follows","lemma":"follow","language":"en","pos":"VERB","semantic_domains":["relation.sequence.after","predicate.temporal","cognition.order","temporal.sequence"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-046","surface":"belongs_to","lemma":"belong","language":"en","pos":"VERB","semantic_domains":["relation.membership","predicate.category","cognition.concept","reason.structure"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-047","surface":"grounds","lemma":"ground","language":"en","pos":"VERB","semantic_domains":["relation.ground","predicate.support","cognition.reason","epistemic.ground"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-048","surface":"supports","lemma":"support","language":"en","pos":"VERB","semantic_domains":["relation.support","predicate.evidence","cognition.truth","epistemic.ground"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-049","surface":"corrects","lemma":"correct","language":"en","pos":"VERB","semantic_domains":["relation.correction","predicate.repair","teaching.review","memory.update"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-050","surface":"defines","lemma":"define","language":"en","pos":"VERB","semantic_domains":["relation.definition","predicate.define","cognition.definition","semantics.boundary"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-051","surface":"answers","lemma":"answer","language":"en","pos":"VERB","semantic_domains":["relation.answer","predicate.respond","dialogue.response","cognition.answer"],"morphology_tags":["verb","relation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-052","surface":"why","lemma":"why","language":"en","pos":"PRON","semantic_domains":["dialogue.question.why","cognition.cause","epistemic.seeking"],"morphology_tags":["pronoun","interrogative"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-053","surface":"how","lemma":"how","language":"en","pos":"ADV","semantic_domains":["dialogue.question.how","cognition.procedure","epistemic.seeking"],"morphology_tags":["adverb","interrogative"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-054","surface":"compare_with","lemma":"compare","language":"en","pos":"VERB","semantic_domains":["operation.compare","relation.contrast","dialogue.request"],"morphology_tags":["verb","operation"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
{"entry_id":"en-core-cog-055","surface":"because","lemma":"because","language":"en","pos":"SCONJ","semantic_domains":["relation.causal","explanation.ground","dialogue.reason"],"morphology_tags":["conjunction"],"provenance_ids":["seed:core_cognition_v1"]}
|
||||
13
language_packs/data/en_core_cognition_v1/manifest.json
Normal file
13
language_packs/data/en_core_cognition_v1/manifest.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"pack_id": "en_core_cognition_v1",
|
||||
"language": "en",
|
||||
"role": "operational_base",
|
||||
"script": "Latin",
|
||||
"normalization_policy": "unitize_versor",
|
||||
"source_manifest": "en_core_cognition_v1.lexicon.jsonl",
|
||||
"determinism_class": "D0",
|
||||
"checksum": "d8d485e374afaf0520f88d753353a18d82e18c5b88a2f773622b6de1942a05c8",
|
||||
"version": "1.0.0",
|
||||
"gate_engaged": true,
|
||||
"oov_policy": "tagged_fallback"
|
||||
}
|
||||
117
tests/test_core_semantic_seed_pack.py
Normal file
117
tests/test_core_semantic_seed_pack.py
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
"""Core cognition seed pack smoke tests."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from chat.runtime import ChatRuntime
|
||||
from core.config import DEFAULT_CONFIG
|
||||
from generate.intent import IntentTag, classify_intent
|
||||
from generate.graph_planner import graph_from_intent, plan_articulation
|
||||
from language_packs.compiler import load_mounted_packs, load_pack, load_pack_entries
|
||||
|
||||
|
||||
_REQUIRED_CONCEPTS = frozenset({
|
||||
"word",
|
||||
"truth",
|
||||
"light",
|
||||
"life",
|
||||
"beginning",
|
||||
"creation",
|
||||
"knowledge",
|
||||
"wisdom",
|
||||
"spirit",
|
||||
"person",
|
||||
"question",
|
||||
"answer",
|
||||
"reason",
|
||||
"cause",
|
||||
"memory",
|
||||
"correction",
|
||||
"meaning",
|
||||
"definition",
|
||||
"comparison",
|
||||
})
|
||||
|
||||
_REQUIRED_OPERATIONS = frozenset({
|
||||
"define",
|
||||
"explain",
|
||||
"compare",
|
||||
"infer",
|
||||
"remember",
|
||||
"correct",
|
||||
"verify",
|
||||
"ask",
|
||||
"mean",
|
||||
"reveal",
|
||||
"relate",
|
||||
"distinguish",
|
||||
})
|
||||
|
||||
_REQUIRED_RELATIONS = frozenset({
|
||||
"is",
|
||||
"has",
|
||||
"causes",
|
||||
"reveals",
|
||||
"means",
|
||||
"contrasts_with",
|
||||
"precedes",
|
||||
"follows",
|
||||
"belongs_to",
|
||||
"grounds",
|
||||
"supports",
|
||||
"corrects",
|
||||
})
|
||||
|
||||
|
||||
def test_core_cognition_pack_loads() -> None:
|
||||
manifest, manifold = load_pack("en_core_cognition_v1")
|
||||
|
||||
assert manifest.pack_id == "en_core_cognition_v1"
|
||||
assert manifest.language == "en"
|
||||
assert len(manifold) >= len(_REQUIRED_CONCEPTS)
|
||||
assert manifold.get_versor("definition").shape == (32,)
|
||||
|
||||
|
||||
def test_core_cognition_pack_has_required_concepts_operations_and_relations() -> None:
|
||||
surfaces = {entry.surface for entry in load_pack_entries("en_core_cognition_v1")}
|
||||
|
||||
assert _REQUIRED_CONCEPTS <= surfaces
|
||||
assert _REQUIRED_OPERATIONS <= surfaces
|
||||
assert _REQUIRED_RELATIONS <= surfaces
|
||||
|
||||
|
||||
def test_default_runtime_mounts_core_cognition_seed_pack() -> None:
|
||||
assert "en_core_cognition_v1" in DEFAULT_CONFIG.input_packs
|
||||
|
||||
mounted = load_mounted_packs(DEFAULT_CONFIG.input_packs)
|
||||
for surface in ("definition", "comparison", "infer", "grounds", "corrects"):
|
||||
assert mounted.get_versor(surface).shape == (32,)
|
||||
|
||||
|
||||
def test_definition_prompt_uses_seed_concept() -> None:
|
||||
runtime = ChatRuntime()
|
||||
response = runtime.chat("what is definition", max_tokens=6)
|
||||
|
||||
assert "definition" in runtime.tokenize("definition")
|
||||
assert response.surface
|
||||
assert response.versor_condition < 1e-6
|
||||
|
||||
|
||||
def test_comparison_prompt_uses_seed_relation() -> None:
|
||||
intent = classify_intent("Compare truth and light")
|
||||
graph = graph_from_intent(intent)
|
||||
target = plan_articulation(graph)
|
||||
|
||||
assert intent.tag is IntentTag.COMPARISON
|
||||
assert graph.nodes[0].subject.lower() == "truth"
|
||||
assert graph.nodes[1].subject.lower() == "light"
|
||||
assert any(step.subject.lower() == "light" for step in target.steps)
|
||||
|
||||
|
||||
def test_pack_entries_are_deterministic() -> None:
|
||||
entries_a = load_pack_entries("en_core_cognition_v1")
|
||||
entries_b = load_pack_entries("en_core_cognition_v1")
|
||||
|
||||
assert [entry.entry_id for entry in entries_a] == [entry.entry_id for entry in entries_b]
|
||||
assert [entry.surface for entry in entries_a] == [entry.surface for entry in entries_b]
|
||||
assert entries_a[0].entry_id == "en-core-cog-001"
|
||||
assert entries_a[-1].entry_id == "en-core-cog-055"
|
||||
Loading…
Reference in a new issue