- From: Irene Polikoff <irene@topquadrant.com>
- Date: Mon, 5 Jun 2017 10:54:35 -0400
- To: Eric Prud'hommeaux <eric@w3.org>
- Cc: public-rdf-shapes@w3.org
- Message-Id: <933F9A59-0E52-49F4-945A-69DCD9EF43F0@topquadrant.com>
You can use sh:xone instead of sh:or, then you will not need any NOT statements
http://w3c.github.io/data-shapes/shacl/#XoneConstraintComponent <http://w3c.github.io/data-shapes/shacl/#XoneConstraintComponent>
> On Jun 5, 2017, at 7:02 AM, Eric Prud'hommeaux <eric@w3.org> wrote:
>
> I'm considering the feasibility of compiling ShEx to SHACL. Is there a
> shorter way to compile this ShEx oneOf:
>
> <NameShape> {
> foaf:name LITERAL
> | foaf:givenName LITERAL ; foaf:familyName LITERAL
> }
>
> than this SHACL?:
>
> :UserShape
> sh:or (
> [ sh:and (
> [ sh:property
> [ sh:path foaf:name; sh:minCount 1; sh:maxCount 1 ] ]
> [ sh:not [
> sh:property
> [ sh:path foaf:givenName; sh:minCount 1; sh:maxCount 1 ] ] ]
> [ sh:not [
> sh:property
> [ sh:path foaf:familyName; sh:minCount 1; sh:maxCount 1 ] ] ] ) ]
> [ sh:and (
> [ sh:not [ sh:property
> [ sh:path foaf:name; sh:minCount 1; sh:maxCount 1 ] ] ]
> [ sh:property
> [ sh:path foaf:givenName; sh:minCount 1; sh:maxCount 1 ] ]
> [ sh:property
> [ sh:path foaf:familyName; sh:minCount 1; sh:maxCount 1 ] ] ) ] ) .
>
> --
> -ericP
>
> office: +1.617.599.3509
> mobile: +33.6.80.80.35.59
>
> (eric@w3.org)
> Feel free to forward this message to any list for any purpose other than
> email address distribution.
>
> There are subtle nuances encoded in font variation and clever layout
> which can only be seen by printing this message on high-clay paper.
>
Received on Monday, 5 June 2017 14:55:11 UTC