90 lines
2.7 KiB
JSON
90 lines
2.7 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Ontology Extraction",
|
|
"description": "Domain ontology with entities, relationships, invariants, behaviors, and boundaries",
|
|
"type": "object",
|
|
"required": ["domain", "entities", "relationships", "boundaries"],
|
|
"properties": {
|
|
"domain": {
|
|
"type": "string",
|
|
"description": "Domain name being modeled"
|
|
},
|
|
"entities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["name", "type", "description", "properties"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"type": { "type": "string", "enum": ["aggregate", "entity", "value_object", "event", "service"] },
|
|
"description": { "type": "string" },
|
|
"properties": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["name", "type"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"type": { "type": "string" },
|
|
"required": { "type": "boolean" },
|
|
"description": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"relationships": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["from", "to", "type"],
|
|
"properties": {
|
|
"from": { "type": "string" },
|
|
"to": { "type": "string" },
|
|
"type": { "type": "string", "enum": ["has_many", "has_one", "belongs_to", "depends_on", "produces", "consumes"] },
|
|
"description": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"invariants": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["name", "description", "scope"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"description": { "type": "string" },
|
|
"scope": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"behaviors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["name", "actor", "description"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"actor": { "type": "string" },
|
|
"description": { "type": "string" },
|
|
"triggers": { "type": "array", "items": { "type": "string" } },
|
|
"outcomes": { "type": "array", "items": { "type": "string" } }
|
|
}
|
|
}
|
|
},
|
|
"boundaries": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["name", "entities"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"description": { "type": "string" },
|
|
"entities": { "type": "array", "items": { "type": "string" } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|