Core SHACL
A scoped Shapes Constraint Language vocabulary. It carries exactly the constraints a code generator, schema-aware tools, and a conformance evaluator consume — cardinality, closed value sets, string/number facets, node kinds, and closed-world property sets — over a path that is a single predicate, the inverse of a path, or a choice of paths, plus structural targeting (targetSubjectsOf, targetObjectsOf, targetNode) and the validation-report vocabulary (ValidationReport, ValidationResult) that lets a conformance verdict be authored, hashed, and signed as graph data. One form of shape composition is admitted: a qualified value shape, which counts the values of a property that conform to a nested shape (at most one offer per region), selected with hasValue. Logical combinators, other shape composition, SPARQL constraints, and sequence and repetition paths remain intentionally out of scope. Shapes are read by buildOntologyModel to enrich the resolved type-model, validated by the ShaclShape rule, and evaluated against instance data over an explicit data scope — closed means closed over the supplied scope, never the ambient open world. A class's key (owl.hasKey) is evaluated over the same scope: two distinct named instances that share a value for every key property are a violation.