shapes-ISSUE-103 (Syntax simplifications): Can we further simplify the syntax of some constraint types? [SHACL Spec]

shapes-ISSUE-103 (Syntax simplifications): Can we further simplify the syntax of some constraint types? [SHACL Spec]

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

Raised by: Holger Knublauch
On product: SHACL Spec

Now that we have a more consistent framework for node constraints, I noticed that we could further improve the syntax for various other constraint types:

Currently:

ex:NotExampleShape
    a sh:Shape ;
    sh:constraint [
        a sh:NotConstraint ;
        sh:shape [
            sh:property [
                sh:predicate ex:property ;
                sh:minCount 1 ;
            ] ;
        ]
    ] .


Suggested:

ex:NotExampleShape
    a sh:Shape ;
    sh:constraint [
        sh:not [
            sh:property [
                sh:predicate ex:property ;
                sh:minCount 1 ;
            ] ;
        ]
    ] .

Similar for sh:and and sh:or.

Closed constraints could become:

ex:ClosedShapeExampleShape
    a sh:Shape ;
    sh:constraint [
        sh:closed true ;
        sh:ignoredProperties (sh:nodeShape rdf:type) ;
    ] ;

(which would also help with Karen's recent issue because she could say sh:closed=false explicitly).

Which would only leave the 4 property pair constraints as ugly ducklings. We could decide to make them directional and then use sh:property, e.g.

    ex:EqualExampleShape
        a sh:Shape ;
        sh:property [
            sh:predicate ex:firstName ;
            sh:equals ex:givenName ;
        ]
    ] .

which would make perfect sense for sh:lessThan anyway.

Received on Monday, 19 October 2015 00:09:31 UTC