Re: On various syntax issues

It seems to me that one of the goals of syntax simplification is to end up
with a simpler syntax.  One aspect of having a simpler syntax, to me, is
that constructs that intuitively make sense are permitted, particularly if
similar constructs are also permitted.

1/ Because existing property constraints can be conjoined, it should be
possible to conjoin existing shapes, like

ex:s1 rdf:type sh:Shape ;
 sh:nodeKind sh:IRI ;
 sh:class ex:Citizen .

ex:s2 rdf:type sh:Shape ;
 sh:property [ sh:predicate ex:child ;
        sh:class ex:Person ] .

ex:s3 rdf:type sh:Shape ;
 sh:scopeClass ex:Person ;
 sh:filter [ sh:property [ sh:predicate sh:age ;
       sh:minInclusive 18 ] ] ;
 sh:and ( ex:s1 ex:s2 ) .
                 
So sh:and is needed unless there is another simple way to achieve this.

2/ If a boolean construct is allowed in one place it should be allowed in
similar places.

Because disjunction is allowed in node constraints (shapes) it should also
be allowed in property constraints, like

ex:s4 rdf:type sh:Shape ;
 sh:scopeClass ex:Taxpayer ;
 sh:property [ sh:predicate ex:dependent ;
        sh:or ( ex:s1 ex:s2 )

Because disjunction of node constraint (shape) components is allowed so should
disjunction of property constraint components, like

ex:s4 rdf:type sh:Shape ;
 sh:scopeClass ex:Taxpayer ;
 sh:property [ sh:predicate ex:dependent ;
        sh:or ( ex:s1 ex:s2 [ sh:minCount 5 ] ) ] .

peter


         

Received on Thursday, 19 May 2016 15:08:27 UTC