- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Thu, 19 May 2016 08:07:58 -0700
- To: Holger Knublauch <holger@topquadrant.com>, "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
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