shapes-ISSUE-99 (special cases): special treatment of rdfs:Resource and rdf:List in sh:valueClass (and possibly elsewhere) [SHACL Spec]

shapes-ISSUE-99 (special cases): special treatment of rdfs:Resource and rdf:List in sh:valueClass (and possibly elsewhere) [SHACL Spec]

http://www.w3.org/2014/data-shapes/track/issues/99

Raised by: Peter Patel-Schneider
On product: SHACL Spec

The definition of sh:valueClass says:

A validation result must be produced for each triple that has the focus node as its subject, the sh:predicate as its predicate and where the object is either a literal or a non-literal without a matching rdf:type. A non-literal matches a type if it has an rdf:type value that is the type or one of its (transitive) subclasses, via rdfs:subClassOf. If the value class is rdfs:Resource then all resources match, including untyped resources. Finally, if the value class is rdf:List then the object matches if it has an rdf:first triple. Each produced validation result must have the focus node as its sh:subject, the sh:predicate as its sh:predicate and the respective violating value as its sh:object. 

Both rdfs:Resource and rdf:List are special cases in this definition.  Special cases increase the effort required to implement SHACL, the effort to write SHACL shapes, and the effort to understand SHACL shapes.  The special cases here are not needed, as they can easily be replaced with equivalent versions.  The special case for rdf:List also leaves out rdf:null.

These special cases should be removed from SHACL.


Special cases elsewhere in SHACL should be examined and also removed if there is not an overriding reason for keeping them.

Received on Friday, 2 October 2015 16:25:00 UTC