diff --git a/core/config.py b/core/config.py index 39958510..e432eac4 100644 --- a/core/config.py +++ b/core/config.py @@ -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 diff --git a/language_packs/data/en_core_cognition_v1/lexicon.jsonl b/language_packs/data/en_core_cognition_v1/lexicon.jsonl new file mode 100644 index 00000000..d07c4ca7 --- /dev/null +++ b/language_packs/data/en_core_cognition_v1/lexicon.jsonl @@ -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"]} diff --git a/language_packs/data/en_core_cognition_v1/manifest.json b/language_packs/data/en_core_cognition_v1/manifest.json new file mode 100644 index 00000000..de7c7b14 --- /dev/null +++ b/language_packs/data/en_core_cognition_v1/manifest.json @@ -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" +} diff --git a/tests/test_core_semantic_seed_pack.py b/tests/test_core_semantic_seed_pack.py new file mode 100644 index 00000000..4bf5d6c9 --- /dev/null +++ b/tests/test_core_semantic_seed_pack.py @@ -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"