@prefix map: . @prefix sh: . @prefix xsd: . # SHACL shapes for the Map standard (v1). A conforming document validates # against these in addition to round-tripping the conformance vectors. map:CellKeyShape a sh:NodeShape ; sh:targetClass map:CellKey ; sh:property [ sh:path map:s2 ; sh:datatype xsd:unsignedLong ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:property [ sh:path map:altBand ; sh:datatype xsd:integer ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:property [ sh:path map:timeStart ; sh:datatype xsd:long ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:property [ sh:path map:timeWidth ; sh:datatype xsd:unsignedLong ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:property [ sh:path map:lod ; sh:datatype xsd:unsignedByte ; sh:minCount 1 ; sh:maxCount 1 ] . map:ManifestShape a sh:NodeShape ; sh:targetClass map:Manifest ; sh:property [ sh:path map:dirRoot ; sh:datatype xsd:hexBinary ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:property [ sh:path map:publisher ; sh:minCount 1 ; sh:maxCount 1 ] . map:RevisionShape a sh:NodeShape ; sh:targetClass map:Revision ; sh:property [ sh:path map:prevRoot ; sh:datatype xsd:hexBinary ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:property [ sh:path map:newRoot ; sh:datatype xsd:hexBinary ; sh:minCount 1 ; sh:maxCount 1 ] . # The receipt provenance ↔ measured coupling (SPEC §6): an Estimator receipt # MUST NOT carry a measured figure. map:ReceiptShape a sh:NodeShape ; sh:targetClass map:Receipt ; sh:property [ sh:path map:estimatedUj ; sh:datatype xsd:unsignedLong ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:property [ sh:path map:tier ; sh:minCount 1 ; sh:maxCount 1 ] ; sh:not [ sh:and ( [ sh:path map:provenance ; sh:hasValue map:Estimator ] [ sh:path map:measuredUj ; sh:minCount 1 ] ) ] .