ISSUE-98 (cont'd): Further syntax improvements

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.

Does anyone have issues with such changes? They almost feel like 
editorial changes, but if needed I could raise a new formal ISSUE, put 
this to the end of the queue and wait... :)

Cheers,
Holger

Received on Friday, 16 October 2015 04:39:58 UTC