batch 2: packs/common — contract, schemas, trilingual anchor template
This commit is contained in:
parent
0322e073e7
commit
cc45ba8cac
7 changed files with 157 additions and 162 deletions
|
|
@ -1,43 +1,70 @@
|
|||
{
|
||||
"anchor_set_id": "core-foundation-v0",
|
||||
"description": "Trilingual alignment anchors for EN/HE/EL. Each anchor is a shared semantic concept that must be expressible in all three packs and must map to the same CORE field target. These are the hardest-gate coherence check: if these cannot be aligned, the pack is not ready.",
|
||||
"anchor_set_id": "core-trilingual-foundation",
|
||||
"version": "0.1.0",
|
||||
"description": "Canonical cross-language anchor set for EN, HE, and EL. Each anchor defines a formal semantic equivalence across all three packs, scoped by stated constraints. These anchors are the minimum required for the Alignment gate to pass.",
|
||||
"anchors": [
|
||||
{
|
||||
"anchor_id": "logos-word-speech",
|
||||
"field_target": "speech.creative",
|
||||
"en": {"lemma_id": "en:word", "gloss": "word, speech"},
|
||||
"he": {"lemma_id": "he:dabar", "gloss": "word, speech, matter"},
|
||||
"el": {"lemma_id": "el:logos", "gloss": "word, reason, speech"},
|
||||
"reference": "John 1:1-2",
|
||||
"notes": "The primary trilingual anchor. Logos/Dabar/Word — the creative speech act through which the universe was spoken into existence. This anchor is the theological and architectural foundation of the three-language choice. All three must map to speech.creative with equal coherence."
|
||||
"anchor_id": "logos-word-creative-speech",
|
||||
"field_target": "logos.articulation.creative",
|
||||
"en": {
|
||||
"lemma_id": "en:word",
|
||||
"sense_id": "en:word:creative-utterance",
|
||||
"notes": "English 'word' in the creative/declarative sense — 'the word went forth'."
|
||||
},
|
||||
"he": {
|
||||
"lemma_id": "he:dabar",
|
||||
"sense_id": "he:dabar:spoken-creative-word",
|
||||
"notes": "דבר as divine or authoritative speech-act. Carries both the act of speaking and the thing spoken. The word is the event."
|
||||
},
|
||||
"el": {
|
||||
"lemma_id": "el:logos",
|
||||
"sense_id": "el:logos:creative-word",
|
||||
"notes": "λόγος in John 1:1 sense — the rational, creative, pre-existent Word. Not merely speech or reason in isolation but both unified. John articulated in Greek what the Hebrew already carried."
|
||||
},
|
||||
"constraints": ["creative-or-authoritative-context"],
|
||||
"tolerance": null
|
||||
},
|
||||
{
|
||||
"anchor_id": "existence-being",
|
||||
"field_target": "existence.state",
|
||||
"en": {"lemma_id": "en:be", "gloss": "be"},
|
||||
"he": {"lemma_id": "he:haya", "gloss": "be, become, exist"},
|
||||
"el": {"lemma_id": "el:eimi", "gloss": "be, exist, am"},
|
||||
"reference": "Exodus 3:14 / John 8:58",
|
||||
"notes": "Copular existence anchor. The 'I AM' — hayah in Hebrew, eimi in Greek, the copula in English. Semantically the deepest single point of alignment across all three packs."
|
||||
"anchor_id": "existence-being-copular",
|
||||
"field_target": "existence.state.identity",
|
||||
"en": {
|
||||
"lemma_id": "en:be",
|
||||
"sense_id": "en:be:existence",
|
||||
"notes": null
|
||||
},
|
||||
"he": {
|
||||
"lemma_id": "he:haya",
|
||||
"sense_id": "he:haya:existence",
|
||||
"notes": "היה — to be, to become, to exist. The Hebrew copula is often implicit; when present it carries aspectual and ontological weight beyond mere predication."
|
||||
},
|
||||
"el": {
|
||||
"lemma_id": "el:eimi",
|
||||
"sense_id": "el:eimi:existence",
|
||||
"notes": "εἰμί — to be. In John 1:1 ἦν (imperfect) signals continuous pre-existent being, not merely occurrence at a point in time."
|
||||
},
|
||||
"constraints": ["copular-frame"],
|
||||
"tolerance": null
|
||||
},
|
||||
{
|
||||
"anchor_id": "light",
|
||||
"field_target": "illumination.emanation",
|
||||
"en": {"lemma_id": "en:light", "gloss": "light"},
|
||||
"he": {"lemma_id": "he:or", "gloss": "light"},
|
||||
"el": {"lemma_id": "el:phos", "gloss": "light"},
|
||||
"reference": "Genesis 1:3 / John 1:4-5",
|
||||
"notes": "Illumination anchor. Or/Phos/Light — the first spoken creation and a central semantic pole across the canon."
|
||||
},
|
||||
{
|
||||
"anchor_id": "beginning-origin",
|
||||
"field_target": "time.origin",
|
||||
"en": {"lemma_id": "en:beginning", "gloss": "beginning, origin"},
|
||||
"he": {"lemma_id": "he:reshit", "gloss": "beginning, first, chief"},
|
||||
"el": {"lemma_id": "el:arche", "gloss": "beginning, origin, rule"},
|
||||
"reference": "Genesis 1:1 / John 1:1",
|
||||
"notes": "Origin anchor. Reshit/Arche — both John and Genesis open with this concept. In Koine Greek arche carries both temporal and ruling senses, which the field primitive must preserve."
|
||||
"anchor_id": "beginning-origin-temporal-absolute",
|
||||
"field_target": "time.origin.absolute",
|
||||
"en": {
|
||||
"lemma_id": "en:beginning",
|
||||
"sense_id": "en:beginning:absolute-origin",
|
||||
"notes": null
|
||||
},
|
||||
"he": {
|
||||
"lemma_id": "he:reshit",
|
||||
"sense_id": "he:reshit:absolute-origin",
|
||||
"notes": "רֵאשִׁית — first, beginning, chief. In Gen 1:1 בְּרֵאשִׁית is anarthrous (no article), signaling primordial commencement before time itself was a container."
|
||||
},
|
||||
"el": {
|
||||
"lemma_id": "el:arche",
|
||||
"sense_id": "el:arche:absolute-origin",
|
||||
"notes": "ἀρχή — beginning, origin, first principle. In John 1:1 ἐν ἀρχῇ is a direct echo of Gen 1:1, placing the Logos at the same primordial coordinate. Both point to the same zero-point."
|
||||
},
|
||||
"constraints": ["absolute-temporal-or-ontological-context"],
|
||||
"tolerance": null
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,100 +1,93 @@
|
|||
# Language Pack Contract
|
||||
|
||||
A CORE language pack is a deterministic, versioned manifold bundle that binds
|
||||
a human language to the shared CORE semantic field.
|
||||
A CORE language pack is a deterministic, versioned manifold bundle that binds a
|
||||
human language to the shared CORE semantic field.
|
||||
|
||||
## Goals
|
||||
|
||||
A valid pack must be able to:
|
||||
- normalize incoming surface text into canonical language units
|
||||
- lift canonical units into CORE-native pressure
|
||||
- read back field state into grammatical surface language
|
||||
- validate its own internal consistency
|
||||
- participate in cross-language alignment probes
|
||||
|
||||
- Normalize incoming surface text into canonical language units.
|
||||
- Lift canonical units into CORE-native `CandidateGeometricPressure`.
|
||||
- Read back field state into grammatical surface language.
|
||||
- Validate its own internal consistency through the gate sequence.
|
||||
- Participate in cross-language alignment probes via published anchor records.
|
||||
## Required Interfaces
|
||||
|
||||
## Required Public Interface
|
||||
|
||||
Each pack's `validators.py` must expose:
|
||||
Each pack must expose the following methods:
|
||||
|
||||
```python
|
||||
def validate() -> ValidationReport: ...
|
||||
def validate() -> ValidationReport
|
||||
def normalize(text: str) -> NormalizedText
|
||||
def analyze(text: str) -> LinguisticAnalysis
|
||||
def lift(analysis: LinguisticAnalysis) -> CandidatePressureBatch
|
||||
def readback(field_state, intent=None) -> SurfaceRealization
|
||||
def anchors() -> list[AnchorRecord]
|
||||
def probe() -> ProbeReport
|
||||
```
|
||||
|
||||
Each pack's `lift_rules.py` must expose:
|
||||
|
||||
```python
|
||||
def lift(analysis: LinguisticAnalysis) -> CandidatePressureBatch: ...
|
||||
```
|
||||
|
||||
Each pack's `readback_rules.py` must expose:
|
||||
|
||||
```python
|
||||
def readback(field_state, intent: dict | None = None) -> SurfaceRealization: ...
|
||||
```
|
||||
|
||||
These are not optional. A pack that cannot implement one of these boundaries
|
||||
must raise `NotImplementedError` at that boundary explicitly. Nothing is
|
||||
silently skipped.
|
||||
|
||||
## Required Data Surfaces
|
||||
|
||||
| File | Purpose |
|
||||
|-----------------------|---------------------------------------------------|
|
||||
| `pack.toml` | Pack identity, version, activation flags |
|
||||
| `orthography.yaml` | Script, normalization, spacing, punctuation rules |
|
||||
| `lemmas.jsonl` | Lemma inventory (lemma-first) |
|
||||
| `morphology.jsonl` | Surface forms per lemma with feature bundles |
|
||||
| `frames.jsonl` | Predicate frame templates |
|
||||
| `senses.jsonl` | Sense records mapping lemmas to field targets |
|
||||
| `lift_rules.py` | Deterministic lift into field primitives |
|
||||
| `readback_rules.py` | Deterministic articulation from field state |
|
||||
| `validators.py` | Gate-sequence validation logic |
|
||||
| `probes/` | Deterministic probe sets for each gate |
|
||||
| `corpora/manifest.yaml` | Curated, licensed corpus source manifest |
|
||||
```text
|
||||
packs/<lang>/
|
||||
pack.toml
|
||||
orthography.yaml
|
||||
lemmas.jsonl
|
||||
morphology.jsonl
|
||||
frames.jsonl
|
||||
senses.jsonl
|
||||
lift_rules.py
|
||||
readback_rules.py
|
||||
validators.py
|
||||
probes/
|
||||
corpora/
|
||||
manifest.yaml
|
||||
```
|
||||
|
||||
## Design Rules
|
||||
|
||||
### 1. Lemma-first
|
||||
Tokens are surface realizations. Lemmas are the stable lexical unit.
|
||||
The field-state layer operates on lemmas, not tokens.
|
||||
Tokens are surface realizations. Lemmas are the stable lexical unit. All lexical
|
||||
identity, morphological variation, and semantic targeting is anchored to lemmas.
|
||||
|
||||
### 2. Deterministic normalization
|
||||
Normalization must be deterministic and script-aware. Unicode NFC is the
|
||||
minimum baseline. Script-specific rules are defined in `orthography.yaml`.
|
||||
Normalization must be deterministic and script-aware. Unicode normalization form,
|
||||
punctuation strategy, and spacing rules are declared in `orthography.yaml` and
|
||||
must produce identical output for identical input every time.
|
||||
|
||||
### 3. Native morphology
|
||||
Morphology is a first-class pack surface, not optional metadata.
|
||||
Hebrew stems and Koine Greek aspects are semantically load-bearing and
|
||||
must be represented in `morphology.jsonl` with explicit feature bundles.
|
||||
Morphology is part of meaning-bearing structure, not optional metadata. Hebrew
|
||||
and Koine Greek morphology carries semantic load (stem, aspect, voice, agreement)
|
||||
that must be represented in the morphology layer and available to the lift rules.
|
||||
|
||||
### 4. Shared field target
|
||||
Semantic lift must target shared CORE field primitives.
|
||||
No pack-private semantic space is permitted. What cannot be expressed
|
||||
in shared primitives must be proposed as a new shared primitive,
|
||||
not hidden inside a pack.
|
||||
Semantic lift must target shared CORE field primitives. No pack may define
|
||||
private or opaque semantic space that bypasses the shared field. A pack that
|
||||
cannot express its semantics in shared field primitives is not a valid CORE pack.
|
||||
|
||||
### 5. Readback is owned locally
|
||||
Each pack owns its articulation rules. Readback is not a global
|
||||
postprocessor. Ambiguity management at the surface level is resolved
|
||||
by the pack, not by the field layer.
|
||||
Each pack owns its articulation rules, grammatical agreement, and ambiguity
|
||||
management. Readback does not reach into another pack's rules.
|
||||
|
||||
### 6. Alignment is explicit
|
||||
Packs must publish anchor records verifiable against the trilingual
|
||||
anchor template in `packs/common/anchors/`. Coherence across languages
|
||||
is a testable probe, not an emergent assumption.
|
||||
Packs must publish anchor records in `anchors()` for cross-language coherence
|
||||
checks. Anchors are formally scoped semantic equivalences with stated constraints
|
||||
and tolerances — not approximate glosses.
|
||||
|
||||
## Validation Gate Sequence
|
||||
## Validation Gates
|
||||
|
||||
A pack is not considered active because files exist. A pack becomes active only
|
||||
when it passes all eight gates in order:
|
||||
|
||||
| Gate | Checks |
|
||||
|------|--------|
|
||||
| 1. Schema | All data files validate against their JSON schemas |
|
||||
| 2. Lexical | Lemma inventory is non-empty and internally consistent |
|
||||
| 3. Morphology | All surface forms trace to a known lemma record |
|
||||
| 4. Lift | Lift rules produce valid pressure for all seed inputs |
|
||||
| 5. Readback | Readback produces grammatical surface for all seed states |
|
||||
| 6. Determinism | All D0/D1 paths produce identical output on repeated runs |
|
||||
| 7. Alignment | Anchor records pass trilingual coherence check |
|
||||
| 8. Coverage | Probe set covers minimum lexical and morphological surface |
|
||||
| 1. Schema | All `.jsonl` records validate against their JSON Schema |
|
||||
| 2. Lexical | All `lemma_id`s are unique; all `field_hooks` reference known primitives |
|
||||
| 3. Morphology | All morphology records reference existing `lemma_id`s |
|
||||
| 4. Lift | `lift()` produces valid `CandidatePressureBatch` for every probe input |
|
||||
| 5. Readback | `readback()` produces grammatical surface output for every probe intent |
|
||||
| 6. Determinism | `normalize()` and `lift()` produce identical output on repeated runs |
|
||||
| 7. Alignment | `anchors()` returns at least the required trilingual anchor set |
|
||||
| 8. Coverage | Required probe set passes without failures |
|
||||
|
||||
A pack is not active until all eight gates pass.
|
||||
A gate failure blocks all subsequent gates. The pack is not partially active.
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://assetoverflow.dev/core/schemas/frame",
|
||||
"title": "CORE Frame Record",
|
||||
"description": "A predicate frame template. Frames define the argument structure of predicates — what roles are required, optional, or forbidden.",
|
||||
"description": "A syntactic-semantic frame template defining participant structure for a predicate type.",
|
||||
"type": "object",
|
||||
"required": ["frame_id", "language", "predicate_type", "slots"],
|
||||
"properties": {
|
||||
"frame_id": {
|
||||
"type": "string",
|
||||
"description": "Stable unique identifier. Convention: {lang}:{predicate-name} e.g. 'he:copular-basic'."
|
||||
"description": "Unique frame identifier in the form '<lang>:<predicate_type>[-variant]'."
|
||||
},
|
||||
"language": {
|
||||
"type": "string",
|
||||
|
|
@ -16,31 +15,25 @@
|
|||
},
|
||||
"predicate_type": {
|
||||
"type": "string",
|
||||
"description": "Class of predicate. Examples: 'copular', 'transitive', 'ditransitive', 'intransitive', 'causative', 'stative'."
|
||||
"description": "The predicate class this frame serves. Examples: copular, transitive, ditransitive, existential, causative."
|
||||
},
|
||||
"slots": {
|
||||
"type": "array",
|
||||
"description": "Ordered list of argument slots in this frame.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name", "required"],
|
||||
"properties": {
|
||||
"name": {"type": "string"},
|
||||
"required": {"type": "boolean"},
|
||||
"semantic_role": {"type": "string"},
|
||||
"constraints": {"type": "array", "items": {"type": "string"}}
|
||||
"name": { "type": "string" },
|
||||
"required": { "type": "boolean" },
|
||||
"semantic_role": { "type": ["string", "null"] },
|
||||
"agreement_target": { "type": ["string", "null"] }
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"constraints": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "Frame-level constraints that apply regardless of slot. E.g. 'agreement-required', 'no-passive'."
|
||||
},
|
||||
"field_target": {
|
||||
"type": ["string", "null"],
|
||||
"description": "The shared CORE field primitive this frame maps to when activated."
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
|
|||
|
|
@ -1,53 +1,51 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://assetoverflow.dev/core/schemas/lemma",
|
||||
"title": "CORE Lemma Record",
|
||||
"description": "A single lexical entry in the pack's lemma inventory. Lemmas are the stable unit of the field-state layer — tokens are surface realizations of lemmas, not the other way around.",
|
||||
"description": "A single lemma entry in a CORE language pack. Lemmas are the stable lexical unit — not tokens, not surface forms.",
|
||||
"type": "object",
|
||||
"required": ["lemma_id", "language", "script_form", "pos", "morph_class", "semantic_family"],
|
||||
"properties": {
|
||||
"lemma_id": {
|
||||
"type": "string",
|
||||
"description": "Stable unique identifier. Convention: {lang}:{base_form} e.g. 'he:dabar', 'el:logos'."
|
||||
"description": "Unique identifier in the form '<lang>:<canonical_form>'. Example: 'he:dabar'."
|
||||
},
|
||||
"language": {
|
||||
"type": "string",
|
||||
"enum": ["en", "he", "el"],
|
||||
"description": "Pack language code."
|
||||
"description": "ISO 639-1 code for the pack language."
|
||||
},
|
||||
"script_form": {
|
||||
"type": "string",
|
||||
"description": "Canonical script form in the pack's native script. Unicode NFC. For Hebrew: unpointed unless pointing is semantically load-bearing."
|
||||
"description": "The lemma in its native script. Hebrew right-to-left; Greek polytonic or monotonic as appropriate."
|
||||
},
|
||||
"transliteration": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Latin-script transliteration for non-Latin packs. Null for English."
|
||||
"description": "SBL-style transliteration for Hebrew and Greek. Null for English."
|
||||
},
|
||||
"gloss_seed": {
|
||||
"type": ["string", "null"],
|
||||
"description": "A minimal English gloss seed. Not a definition — just a stable orientation anchor for alignment and debugging."
|
||||
"description": "A single-word English gloss for orientation only. Not a definition. Not used in semantic lift."
|
||||
},
|
||||
"pos": {
|
||||
"type": "string",
|
||||
"description": "Part of speech. Use lowercase: 'noun', 'verb', 'adjective', 'particle', 'pronoun', 'preposition', 'conjunction', 'adverb', 'interjection'."
|
||||
"description": "Part of speech. Examples: verb, noun, adjective, particle, conjunction, preposition."
|
||||
},
|
||||
"morph_class": {
|
||||
"type": "string",
|
||||
"description": "Morphological class within the pack. For Hebrew: Qal, Niphal, Piel, etc. For Greek: thematic, athematic, etc. For English: regular, copular, modal, etc."
|
||||
"description": "Morphological class within the pack. Hebrew: qal, niphal, etc. Greek: thematic, athematic, etc. English: regular, irregular, copular, etc."
|
||||
},
|
||||
"semantic_family": {
|
||||
"type": "string",
|
||||
"description": "Shared semantic family name. This is the cross-language alignment handle. Must be a string that can be matched against the same field in other packs."
|
||||
"description": "The broad semantic domain this lemma inhabits. Must correspond to a recognized CORE field primitive family."
|
||||
},
|
||||
"field_hooks": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "List of CORE field primitive names this lemma connects to. These must exist in the shared field primitive vocabulary."
|
||||
"items": { "type": "string" },
|
||||
"description": "List of CORE field primitive targets this lemma can lift into. Must be non-empty for any lemma that participates in semantic lift."
|
||||
},
|
||||
"readback_priority": {
|
||||
"type": ["number", "integer"],
|
||||
"description": "When multiple lemmas could realize a field state, higher priority wins. Integer. 1 is highest priority.",
|
||||
"minimum": 1
|
||||
"description": "Relative priority when this lemma is a candidate during readback disambiguation. Higher is preferred."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
|
|||
|
|
@ -1,30 +1,29 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://assetoverflow.dev/core/schemas/morphology",
|
||||
"title": "CORE Morphology Record",
|
||||
"description": "A single inflected surface form derived from a lemma, with an explicit morphological feature bundle.",
|
||||
"description": "A single inflected surface form for a lemma, with its full morphological feature bundle.",
|
||||
"type": "object",
|
||||
"required": ["record_id", "lemma_id", "surface_form", "features"],
|
||||
"properties": {
|
||||
"record_id": {
|
||||
"type": "string",
|
||||
"description": "Stable unique identifier. Convention: {lemma_id}:{feature-summary} e.g. 'he:haya:qatal:3ms'."
|
||||
"description": "Unique identifier in the form '<lemma_id>:<feature_summary>'."
|
||||
},
|
||||
"lemma_id": {
|
||||
"type": "string",
|
||||
"description": "Foreign key to the lemma record."
|
||||
"description": "Foreign key to a lemma record in the same pack."
|
||||
},
|
||||
"surface_form": {
|
||||
"type": "string",
|
||||
"description": "The inflected surface form in the pack's native script. Unicode NFC."
|
||||
"description": "The fully inflected surface form in native script."
|
||||
},
|
||||
"features": {
|
||||
"type": "object",
|
||||
"description": "Morphological feature bundle. Keys vary by language and part of speech. Examples for Hebrew verbs: stem, aspect, person, gender, number. Examples for Greek verbs: tense, voice, mood, person, number. Examples for English: tense, person, number."
|
||||
"description": "Key-value morphological feature bundle. Keys vary by language and part of speech."
|
||||
},
|
||||
"notes": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Optional notes on irregular forms, defective paradigms, or disambiguation."
|
||||
"description": "Optional philological or parsing note. Null if not needed."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
|
|||
|
|
@ -1,33 +1,22 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://assetoverflow.dev/core/schemas/probe",
|
||||
"title": "CORE Probe Record",
|
||||
"description": "A deterministic probe for pack validation. Probes are the executable assertions that verify a pack's contract against real inputs.",
|
||||
"description": "A deterministic test case for a language pack gate.",
|
||||
"type": "object",
|
||||
"required": ["probe_id", "kind", "input", "expected"],
|
||||
"properties": {
|
||||
"probe_id": {
|
||||
"type": "string",
|
||||
"description": "Stable unique identifier. Convention: {lang}:{gate}:{probe-name}."
|
||||
"description": "Unique identifier in the form '<lang>:<gate>:<label>'."
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"description": "Which gate this probe tests. One of: 'schema', 'lexical', 'morphology', 'lift', 'readback', 'determinism', 'alignment', 'coverage'.",
|
||||
"enum": ["schema", "lexical", "morphology", "lift", "readback", "determinism", "alignment", "coverage"]
|
||||
},
|
||||
"input": {
|
||||
"description": "The input to the operation under test. Shape depends on kind."
|
||||
},
|
||||
"expected": {
|
||||
"description": "The expected output or outcome. Shape depends on kind."
|
||||
"enum": ["normalize", "lift", "readback", "alignment", "determinism"]
|
||||
},
|
||||
"input": {},
|
||||
"expected": {},
|
||||
"tolerance": {
|
||||
"type": ["number", "null"],
|
||||
"description": "For numeric comparisons, the acceptable deviation. Null for exact-match probes."
|
||||
},
|
||||
"notes": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Optional commentary on what this probe is checking and why."
|
||||
"type": ["number", "null"]
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
|
|||
|
|
@ -1,32 +1,28 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://assetoverflow.dev/core/schemas/sense",
|
||||
"title": "CORE Sense Record",
|
||||
"description": "A single sense of a lemma: a specific mapping from a lemma to a CORE field target, valid under specified constraints.",
|
||||
"description": "A scoped semantic sense for a lemma, mapping it to a specific CORE field primitive target under stated constraints.",
|
||||
"type": "object",
|
||||
"required": ["sense_id", "lemma_id", "field_target"],
|
||||
"properties": {
|
||||
"sense_id": {
|
||||
"type": "string",
|
||||
"description": "Stable unique identifier. Convention: {lemma_id}:{sense-name} e.g. 'el:logos:cosmic-speech'."
|
||||
"description": "Unique identifier in the form '<lemma_id>:<semantic_label>'."
|
||||
},
|
||||
"lemma_id": {
|
||||
"type": "string",
|
||||
"description": "Foreign key to the lemma record."
|
||||
"type": "string"
|
||||
},
|
||||
"field_target": {
|
||||
"type": "string",
|
||||
"description": "The CORE shared field primitive this sense maps to. Must exist in the shared primitive vocabulary. E.g. 'speech.creative', 'existence.state', 'identity.relational'."
|
||||
"description": "The CORE field primitive this sense lifts into. Dot-separated path. Example: 'logos.articulation.spoken'."
|
||||
},
|
||||
"constraints": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "Conditions under which this sense is valid. E.g. 'copular-frame', 'divine-context', 'temporal-aspect:aorist'."
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"rank": {
|
||||
"type": ["number", "integer"],
|
||||
"description": "Priority rank for this sense when multiple senses could apply. 1 is primary sense.",
|
||||
"minimum": 1
|
||||
"description": "Priority rank among senses for the same lemma. 1 is most primary."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
|
|||
Loading…
Reference in a new issue