What
Validating a graph that contains RDF 1.2 triple terms against a SHACL shape is undefined. Establish what happens and pin it.
Why
SHACL is specified over RDF 1.1. A shape has no vocabulary for a triple term, and rudof has
no reason to have an opinion about one. So a container with ldp:constrainedBy set, holding
a resource that uses 1.2 constructs, is running a validator outside its specification, and
validation decides whether a write is refused with 422.
Silent is the bad outcome here in either direction: a constraint that quietly does not apply to part of a graph is a constraint that fails open, and a validator that quietly rejects valid data fails closed on data the pod itself accepts elsewhere.
How
- Write the test first: a shape-bound container, a
PUT carrying a triple term, and whatever rudof does with it.
- Then decide whether the answer is acceptable, and record it wherever ADR-6's version handling ends up.
What
Validating a graph that contains RDF 1.2 triple terms against a SHACL shape is undefined. Establish what happens and pin it.
Why
SHACL is specified over RDF 1.1. A shape has no vocabulary for a triple term, and rudof has
no reason to have an opinion about one. So a container with
ldp:constrainedByset, holdinga resource that uses 1.2 constructs, is running a validator outside its specification, and
validation decides whether a write is refused with
422.Silent is the bad outcome here in either direction: a constraint that quietly does not apply to part of a graph is a constraint that fails open, and a validator that quietly rejects valid data fails closed on data the pod itself accepts elsewhere.
How
PUTcarrying a triple term, and whatever rudof does with it.