shapes-ISSUE-123 (DirectType syntax): Shall we unify the syntax of sh:directType and sh:class? [SHACL - Core]

shapes-ISSUE-123 (DirectType syntax): Shall we unify the syntax of sh:directType and sh:class? [SHACL - Core]

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

Raised by: Holger Knublauch
On product: SHACL - Core

The spec currently has sh:directType as a way to limit values to have the specified rdf:type only. In contrast to sh:class this will not walk into subclasses of that class.

One issue here is that we currently have sh:classIn (for multiple classes) but no sh:directTypeIn.

Another issue is that the distinction between sh:class and sh:directType is fairly small, and basically meaningless if inferencing has been activated.

I think we should consider changing the syntax so that it becomes

ex:MyShape
    sh:property [
        sh:predicate ex:myProperty ;
        sh:class ex:Person ;
        sh:excludeSubclasses true ;
    ] .

The sh:excludeSubclasses would serve as a flag to not walk into subclasses. It would also work for sh:classIn, solving the first issue without introducing yet another core construct.

Received on Sunday, 28 February 2016 23:29:41 UTC