core/packs/common/schema/frame.schema.json
2026-05-13 20:19:21 -07:00

48 lines
1.5 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "CORE Frame Record",
"description": "A syntactic-semantic frame template defining participant structure for a predicate type.",
"type": "object",
"required": ["frame_id", "language", "predicate_type", "dialogue_role", "slots"],
"properties": {
"frame_id": {
"type": "string",
"description": "Unique frame identifier in the form '<lang>:<predicate_type>[-variant]'."
},
"language": {
"type": "string",
"enum": ["en", "he", "el"]
},
"predicate_type": {
"type": "string",
"description": "The predicate class this frame serves. Examples: copular, transitive, ditransitive, existential, causative."
},
"dialogue_role": {
"type": "string",
"enum": ["assert", "elaborate", "question", "refute"],
"description": "Dialogue move kind selected from relation-blade geometry."
},
"slots": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "required"],
"properties": {
"name": { "type": "string" },
"required": { "type": "boolean" },
"semantic_role": { "type": ["string", "null"] },
"agreement_target": { "type": ["string", "null"] }
},
"additionalProperties": false
}
},
"constraints": {
"type": "array",
"items": { "type": "string" }
},
"notes": {
"type": "string"
}
},
"additionalProperties": false
}