Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:
- aac/ — communication cargo class: portable boards + a ten-level
offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/ — geospatial cargo class: range-requestable signed tilesets +
an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.
Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
41 lines
2.3 KiB
Turtle
41 lines
2.3 KiB
Turtle
@prefix aac: <https://aac.transaction.science/vocab/v1#> .
|
|
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
|
|
# SHACL shapes for the AAC standard (v1). A conforming document validates
|
|
# against these in addition to round-tripping the conformance vectors.
|
|
|
|
aac:BoardShape a sh:NodeShape ;
|
|
sh:targetClass aac:Board ;
|
|
sh:property [ sh:path aac:boardType ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path aac:rows ; sh:datatype xsd:unsignedShort ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path aac:cols ; sh:datatype xsd:unsignedShort ; sh:minCount 1 ; sh:maxCount 1 ] .
|
|
|
|
# A cell MUST carry a position (SPEC §2). Row and column are the immutable
|
|
# motor coordinates (SPEC §3) — required here; immutability is enforced by the
|
|
# round-trip conformance check, not expressible in SHACL.
|
|
aac:CellShape a sh:NodeShape ;
|
|
sh:targetClass aac:Cell ;
|
|
sh:property [ sh:path aac:row ; sh:datatype xsd:unsignedShort ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path aac:col ; sh:datatype xsd:unsignedShort ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path aac:locked ; sh:datatype xsd:boolean ; sh:maxCount 1 ] .
|
|
|
|
# Every cascade level carries an energy floor and an offline flag. The offline
|
|
# flag is true for exactly L0-L2 (SPEC §6.2); monotonicity of energyUj across
|
|
# the ten levels is checked by conformance suite C2.
|
|
aac:CascadeLevelShape a sh:NodeShape ;
|
|
sh:targetClass aac:CascadeLevel ;
|
|
sh:property [ sh:path aac:energyUj ; sh:datatype xsd:unsignedLong ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path aac:offline ; sh:datatype xsd:boolean ; sh:minCount 1 ; sh:maxCount 1 ] .
|
|
|
|
# The receipt provenance <-> measured coupling (SPEC §9): an Estimator reading
|
|
# MUST NOT carry a measured figure. (The never-billed invariant is a behavioural
|
|
# constraint on implementations, not a document shape.)
|
|
aac:ReceiptShape a sh:NodeShape ;
|
|
sh:targetClass aac:Receipt ;
|
|
sh:property [ sh:path aac:estimatedUj ; sh:datatype xsd:unsignedLong ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path aac:provenance ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:not [ sh:and (
|
|
[ sh:path aac:provenance ; sh:hasValue aac:Estimator ]
|
|
[ sh:path aac:measuredUj ; sh:minCount 1 ]
|
|
) ] .
|