{
  "@context": "https://zenith-research.ca/ontology/v0.8.0/context.jsonld",
  "@graph": [
    {
      "@id": "https://zenith-research.ca/ontology",
      "@type": "owl:Ontology",
      "label": "Zenith Ontology",
      "comment": "Canonical vocabulary for Zenith work, arenas, directory entities, evidence, provenance, readiness, repository structure, and transport-neutral Devgraph operations.",
      "versionIRI": "https://zenith-research.ca/ontology/v0.8.0/ontology.jsonld",
      "versionInfo": "0.8.0",
      "canonicalAuthority": "https://github.com/ZenithResearch/devgraph"
    },
    {
      "@id": "zn:Arena",
      "@type": "owl:Class",
      "label": "Arena",
      "comment": "A continuing area of responsibility grouping Initiatives and standalone Tasks. Arena membership is separate from Work parentage; direct members have no incoming HAS_CHILD work-parent edge. Separate Arena runtime type; see arena-contract.json and arena-runtime.md.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Todo",
      "@type": "owl:Class",
      "label": "Todo",
      "comment": "Common base for committed or proposed work objects.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Proposal",
      "@type": "owl:Class",
      "label": "Proposal",
      "comment": "Proposed work whose acceptance requires Decision provenance.",
      "subClassOf": "zn:Todo",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Initiative",
      "@type": "owl:Class",
      "label": "Initiative",
      "comment": "Strategic work container larger than a Project.",
      "subClassOf": "zn:Todo",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Project",
      "@type": "owl:Class",
      "label": "Project",
      "comment": "Delivery container for issues, tasks, and milestones.",
      "subClassOf": "zn:Todo",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Issue",
      "@type": "owl:Class",
      "label": "Issue",
      "comment": "PR-boundary work object.",
      "subClassOf": "zn:Todo",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Task",
      "@type": "owl:Class",
      "label": "Task",
      "comment": "Commit-boundary execution slice.",
      "subClassOf": "zn:Todo",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Requirement",
      "@type": "owl:Class",
      "label": "Requirement",
      "comment": "Required behavior or condition.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:AcceptanceCriterion",
      "@type": "owl:Class",
      "label": "Acceptance Criterion",
      "comment": "Checkable condition for accepting work or a requirement.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Blocker",
      "@type": "owl:Class",
      "label": "Blocker",
      "comment": "Explicit impediment to work.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Decision",
      "@type": "owl:Class",
      "label": "Decision",
      "comment": "Accepted design or scope choice with provenance.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Handoff",
      "@type": "owl:Class",
      "label": "Handoff",
      "comment": "Context package transferred across entities or sessions.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:ReviewPacket",
      "@type": "owl:Class",
      "label": "Review Packet",
      "comment": "Reviewable bundle of work, evidence, and criteria.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Milestone",
      "@type": "owl:Class",
      "label": "Milestone",
      "comment": "Grouped delivery marker.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Artifact",
      "@type": "owl:Class",
      "label": "Artifact",
      "comment": "Evidence or output object.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:ExternalLink",
      "@type": "owl:Class",
      "label": "External Link",
      "comment": "Reference to an external URL or system object without ownership semantics.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:SyncShadow",
      "@type": "owl:Class",
      "label": "Sync Shadow",
      "comment": "Non-authoritative external metadata snapshot.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:StatusSet",
      "@type": "owl:Class",
      "label": "Status Set",
      "comment": "Named status vocabulary.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:StatusValue",
      "@type": "owl:Class",
      "label": "Status Value",
      "comment": "One value belonging to a Status Set.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:StatusTransition",
      "@type": "owl:Class",
      "label": "Status Transition",
      "comment": "Allowed lifecycle transition.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:EventReceipt",
      "@type": "owl:Class",
      "label": "Event Receipt",
      "comment": "Mutation and local outbox evidence; not external delivery proof.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:HermesSessionRef",
      "@type": "owl:Class",
      "label": "Hermes Session Reference",
      "comment": "Reference and safe metrics for an external Hermes session, never a raw transcript.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:ReadinessAssessment",
      "@type": "owl:Class",
      "label": "Readiness Assessment",
      "comment": "Evidence record evaluating work readiness against the canonical rubric.",
      "runtimeLabel": true
    },
    {
      "@id": "zn:Entity",
      "@type": "owl:Class",
      "label": "Entity",
      "comment": "Common directory and provenance identity for a person, agent, organization, or other named participant in work; not an authentication Subject or credential.",
      "runtimeLabel": false
    },
    {
      "@id": "zn:Person",
      "@type": "owl:Class",
      "label": "Person",
      "comment": "Human entity.",
      "subClassOf": "zn:Entity",
      "runtimeLabel": false
    },
    {
      "@id": "zn:Agent",
      "@type": "owl:Class",
      "label": "Agent",
      "comment": "Software, AI, service, or other automated entity.",
      "subClassOf": "zn:Entity",
      "runtimeLabel": false
    },
    {
      "@id": "zn:Organization",
      "@type": "owl:Class",
      "label": "Organization",
      "comment": "Collective entity such as a company, project, institution, or working group.",
      "subClassOf": "zn:Entity",
      "runtimeLabel": false
    },
    {
      "@id": "zn:ZenithRepository",
      "@type": "owl:Class",
      "label": "Zenith Repository",
      "comment": "Sovereign Git project conforming to the canonical Zenith filesystem contract. Conformance does not imply network admission, authority, deployment, or delivery correctness.",
      "runtimeLabel": false
    },
    {
      "@id": "zn:CONTAINS",
      "@type": "owl:ObjectProperty",
      "label": "contains",
      "comment": "Hierarchical work containment."
    },
    {
      "@id": "zn:DEPENDS_ON",
      "@type": "owl:ObjectProperty",
      "label": "depends on",
      "comment": "Source work cannot complete before target work."
    },
    {
      "@id": "zn:BLOCKS",
      "@type": "owl:ObjectProperty",
      "label": "blocks",
      "comment": "Source prevents target work from progressing."
    },
    {
      "@id": "zn:HAS_REQUIREMENT",
      "@type": "owl:ObjectProperty",
      "label": "has requirement"
    },
    {
      "@id": "zn:HAS_ACCEPTANCE_CRITERION",
      "@type": "owl:ObjectProperty",
      "label": "has acceptance criterion"
    },
    {
      "@id": "zn:ACCEPTED_BY_DECISION",
      "@type": "owl:ObjectProperty",
      "label": "accepted by decision"
    },
    {
      "@id": "zn:HAS_DECISION",
      "@type": "owl:ObjectProperty",
      "label": "has decision"
    },
    {
      "@id": "zn:HAS_HANDOFF",
      "@type": "owl:ObjectProperty",
      "label": "has handoff"
    },
    {
      "@id": "zn:HAS_REVIEW_PACKET",
      "@type": "owl:ObjectProperty",
      "label": "has review packet"
    },
    {
      "@id": "zn:HAS_MILESTONE",
      "@type": "owl:ObjectProperty",
      "label": "has milestone"
    },
    {
      "@id": "zn:HAS_ARTIFACT",
      "@type": "owl:ObjectProperty",
      "label": "has artifact"
    },
    {
      "@id": "zn:HAS_EXTERNAL_LINK",
      "@type": "owl:ObjectProperty",
      "label": "has external link"
    },
    {
      "@id": "zn:HAS_SYNC_SHADOW",
      "@type": "owl:ObjectProperty",
      "label": "has sync shadow"
    },
    {
      "@id": "zn:EMITTED_EVENT",
      "@type": "owl:ObjectProperty",
      "label": "emitted event",
      "comment": "Links a mutation subject to local receipt evidence; it does not assert external delivery."
    },
    {
      "@id": "zn:ATTRIBUTED_TO_HERMES_SESSION",
      "@type": "owl:ObjectProperty",
      "label": "attributed to Hermes session"
    },
    {
      "@id": "zn:MEMBER_OF",
      "@type": "owl:ObjectProperty",
      "label": "member of",
      "comment": "Directory membership that does not grant authority."
    },
    {
      "@id": "zn:OPERATED_BY",
      "@type": "owl:ObjectProperty",
      "label": "operated by",
      "comment": "Operational responsibility for an Agent, including an Agent delegation chain; not credential delegation."
    },
    {
      "@id": "zn:ASSIGNED_TO",
      "@type": "owl:ObjectProperty",
      "label": "assigned to",
      "comment": "Work assignment that does not authorize a mutation."
    },
    {
      "@id": "zn:OWNED_BY",
      "@type": "owl:ObjectProperty",
      "label": "owned by",
      "comment": "Accountable work stewardship; not data or credential ownership."
    },
    {
      "@id": "zn:ATTRIBUTED_TO",
      "@type": "owl:ObjectProperty",
      "label": "attributed to",
      "comment": "Directory-level provenance attribution; not cryptographic proof by itself."
    },
    {
      "@id": "zn:HAS_READINESS_ASSESSMENT",
      "@type": "owl:ObjectProperty",
      "label": "has readiness assessment"
    },
    {
      "@id": "zn:IDENTIFIED_GAP",
      "@type": "owl:ObjectProperty",
      "label": "identified gap"
    },
    {
      "@id": "zn:USES_RUBRIC",
      "@type": "owl:ObjectProperty",
      "label": "uses rubric"
    },
    {
      "@id": "zn:SUPPORTED_BY",
      "@type": "owl:ObjectProperty",
      "label": "supported by"
    },
    {
      "@id": "zn:CONTAINS_WORK",
      "@type": "owl:ObjectProperty",
      "label": "contains work",
      "domain": "zn:Arena",
      "range": "zn:Todo",
      "comment": "Direct Arena membership, restricted by arena-contract.json to parentless Initiative or Task records. Optional, at most one direct Arena per member; not a HAS_CHILD parent, authority grant."
    },
    {
      "@id": "zn:Actor",
      "@type": "owl:Class",
      "label": "Actor",
      "comment": "Directory class name published in v0.4.0, equivalent to Entity. Entity is preferred in v0.5.0; this identifier remains readable and does not denote an authentication Subject or credential.",
      "equivalentClass": "zn:Entity",
      "runtimeLabel": false
    },
    {
      "@id": "zn:hasWorkflowDecision",
      "@type": "owl:ObjectProperty",
      "label": "has workflow decision",
      "comment": "Authorized workflow approval or resolution Decision; separate from Proposal acceptance provenance.",
      "domain": "zn:Todo",
      "range": "zn:Decision"
    },
    {
      "@id": "zn:workflowMetadata",
      "@type": "owl:DatatypeProperty",
      "label": "workflow metadata",
      "comment": "Optional versioned workflow assignment and exact stage, separate from lifecycle and containment. Absent legacy values are preserved.",
      "domain": "zn:Todo",
      "range": "xsd:string"
    },
    {
      "@id": "zn:progress",
      "@type": "owl:DatatypeProperty",
      "label": "Todo progress",
      "domain": "zn:Todo",
      "range": "xsd:string",
      "comment": "Exactly not_started, in_progress or done. Absent historical values require classification; absence is not a fourth state. See todo-progress.md."
    },
    {
      "@id": "zn:archived",
      "@type": "owl:DatatypeProperty",
      "label": "Archived",
      "domain": "zn:Todo",
      "range": "xsd:boolean",
      "comment": "Independent visibility attribute. Archive and restore preserve progress, stage, evidence and history."
    },
    {
      "@id": "zn:REJECTED_BY_DECISION",
      "@type": "owl:ObjectProperty",
      "label": "Rejected by Decision",
      "domain": "zn:Proposal",
      "range": "zn:Decision",
      "comment": "Recorded rejection disposition. Does not complete any linked delivery work."
    }
  ]
}
