W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > May 2016

Re: On various syntax issues

From: Holger Knublauch <holger@topquadrant.com>
Date: Fri, 20 May 2016 08:47:36 +1000
To: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
Message-ID: <32ff410a-d865-5014-83fc-ff5e76c5342f@topquadrant.com>


On 20/05/2016 1:07, Peter F. Patel-Schneider wrote:
> 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.

This can be written using sh:shape (in case it gets approved):

ex:s3 rdf:type sh:Shape ;
  sh:scopeClass ex:Person ;
  sh:filter [ sh:property [ sh:predicate sh:age ;
  			   sh:minInclusive 18 ] ] ;
  sh:shape ex:s1 ;
  sh:shape ex:s2 .

So unless we want to create a sh:and as an alternative syntax aligning 
with sh:or, I don't think we need sh:and.

>
> 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 ] ) ] .

Yes this extension of sh:or had been approved recently and the spec had 
been updated.

Holger
Received on Thursday, 19 May 2016 22:48:08 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:33 UTC