@prefix jcd: . @prefix rdf: . @prefix rdfs: . @prefix owl: . @prefix xsd: . @prefix prov: . @prefix dc: . a owl:Ontology ; dc:title "Joule Code vocabulary (v1)" ; dc:description "Stable IRIs for the Joule Code open standard — the coding-cargo class of the substrate. Defines the JWP receipt schema (measured + estimated joules with honest provenance), the L0–L4 cascade tiers shared with JouleClaw, and the agent-vendor enumeration for the Agent Client Protocol binding." ; dc:license ; owl:versionInfo "1" . # ─── Classes ──────────────────────────────────────────────────────── jcd:Receipt a owl:Class ; rdfs:label "Joule Wire Protocol receipt" ; rdfs:comment "Signed receipt per coding operation. Two-part energy: measured + estimated, with provenance tag." . jcd:Transition a owl:Class ; rdfs:label "Source-tree transition" ; rdfs:subClassOf prov:Activity ; rdfs:comment "Content-addressed transition (before_hash → after_hash) over a source tree." . jcd:SourceTree a owl:Class ; rdfs:label "Source tree" ; rdfs:subClassOf prov:Entity . jcd:Cascade a owl:Class ; rdfs:label "Cascade walk" . jcd:Agent a owl:Class ; rdfs:label "Coding agent" ; rdfs:subClassOf prov:Agent . # Operation taxonomy jcd:Operation a owl:Class ; rdfs:label "Coding operation" . jcd:Edit a jcd:Operation ; rdfs:label "Edit" . jcd:Refactor a jcd:Operation ; rdfs:label "Refactor" . jcd:Generate a jcd:Operation ; rdfs:label "Generate" . # Cascade tiers (shared shape with JouleClaw vocabulary) jcd:CascadeTier a owl:Class ; rdfs:label "Cascade tier" . jcd:L0Cache a jcd:CascadeTier ; rdfs:label "L0 Cache" . jcd:L1Lawful a jcd:CascadeTier ; rdfs:label "L1 Lawful" . jcd:L2Embed a jcd:CascadeTier ; rdfs:label "L2 Embed" . jcd:L3Model a jcd:CascadeTier ; rdfs:label "L3 Model" . jcd:L4Wire a jcd:CascadeTier ; rdfs:label "L4 Wire — escape hatch" . # Energy provenance jcd:Provenance a owl:Class ; rdfs:label "Energy provenance" . jcd:HwShunt a jcd:Provenance ; rdfs:label "Hardware shunt" . jcd:ModelBased a jcd:Provenance ; rdfs:label "Model-based estimate" . jcd:Estimator a jcd:Provenance ; rdfs:label "Estimator" . # Agent vendors (the L4 frontier) jcd:AgentVendor a owl:Class ; rdfs:label "Agent vendor" . jcd:ClaudeCode a jcd:AgentVendor ; rdfs:label "Anthropic Claude Code" . jcd:Gemini a jcd:AgentVendor ; rdfs:label "Google Gemini" . jcd:Codex a jcd:AgentVendor ; rdfs:label "OpenAI Codex" . jcd:GenericAgent a jcd:AgentVendor ; rdfs:label "Generic / non-named agent" . # ─── Properties ────────────────────────────────────────────────────── jcd:tierClosed a owl:ObjectProperty ; rdfs:domain jcd:Receipt ; rdfs:range jcd:CascadeTier ; rdfs:label "Tier that closed the operation" . jcd:joulesMeasuredUj a owl:DatatypeProperty ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "Measured joules (microjoules)" . jcd:joulesEstimatedUj a owl:DatatypeProperty ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "Estimated joules (microjoules)" . jcd:energyProvenance a owl:ObjectProperty ; rdfs:domain jcd:Receipt ; rdfs:range jcd:Provenance ; rdfs:label "Energy provenance" . jcd:operation a owl:ObjectProperty ; rdfs:domain jcd:Transition ; rdfs:range jcd:Operation ; rdfs:label "Operation kind" . jcd:sourceBeforeHash a owl:DatatypeProperty ; rdfs:domain jcd:Transition ; rdfs:range xsd:string ; rdfs:label "Source-tree hash before (BLAKE3 hex)" . jcd:sourceAfterHash a owl:DatatypeProperty ; rdfs:domain jcd:Transition ; rdfs:range xsd:string ; rdfs:label "Source-tree hash after (BLAKE3 hex)" . jcd:agentId a owl:DatatypeProperty ; rdfs:domain jcd:Agent ; rdfs:range xsd:string ; rdfs:label "Agent id" . jcd:agentVendor a owl:ObjectProperty ; rdfs:domain jcd:Agent ; rdfs:range jcd:AgentVendor ; rdfs:label "Agent vendor" . jcd:acpEndpoint a owl:ObjectProperty ; rdfs:domain jcd:Agent ; rdfs:label "ACP endpoint URI" . jcd:credentialHolder a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Credential holder (vendor's own client)" . jcd:closedAt a owl:DatatypeProperty ; rdfs:range xsd:dateTime ; rdfs:label "Closed at (RFC 3339)" . jcd:schemaId a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Schema id (e.g. \"jcd-receipt/1\")" .