- From: Dam, Jesse van <jesse.vandam@wur.nl>
- Date: Mon, 26 May 2014 14:09:00 +0000
- To: Olivier Rossel <olivier.rossel@gmail.com>
- CC: Iovka Boneva <iovka.boneva@univ-lille1.fr>, "Gray, Alasdair J G" <A.J.G.Gray@hw.ac.uk>, Jose Emilio Labra Gayo <jelabra@gmail.com>, Eric Prud'hommeaux <eric@w3.org>, "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
Hi Olivier, I think that is good, when translating it to SHEX/RDF it will look like <XXX> a rs:ResourceShape; ... se:subGroup [ a se:AndRuleGroup; #outer and group rs:occurs rs:Exactly-one; se:subGroup [ a se:AndRuleGroup; #group1 rs:occurs rs:Exactly-one; rs:property [ a se:ValueProperty; rs:occurs rs:Zero-or-many; rs:name "a"; rs:propDefinition ex:a; rs:valueType xsd:string; ]. rs:property [ a se:ValueProperty; rs:occurs rs:Zero-or-many; rs:name "b"; rs:propDefinition ex:b; rs:valueType xsd:string; ]. ]. #end group 1 se:subGroup [ a se:AndRuleGroup; #group 2 rs:occurs rs:Exactly-one; se:negate "true"^^xsd:boolean rs:property [ a se:ValueProperty; rs:occursmin 2; rs:occursmax 2; rs:name "a"; rs:propDefinition ex:a; rs:valueType xsd:string; ]. rs:property [ a se:ValueProperty; rs:occurs rs:Exactly-one; rs:name "b"; rs:propDefinition ex:b; rs:valueType xsd:string; ]. ]. #end group 2 ]. #end outer and group .... -This case is the (quite usual) include/exclude case that can be found - -a lot in declarative statements, such as Ant's fileset, .gitignore... -This is tricky to read, but very useful to modelize some tricky cases. I think this a good statement for supporting the inclusion of negation in SHEX: Negation are tricky to read, but very useful to modelize some tricky cases. Greetz, Jesse ________________________________ Van: Olivier Rossel [olivier.rossel@gmail.com] Verzonden: maandag 26 mei 2014 15:56 Aan: Dam, Jesse van CC: Iovka Boneva; Gray, Alasdair J G; Jose Emilio Labra Gayo; Eric Prud'hommeaux; public-rdf-shapes@w3.org Onderwerp: Re: ShEx negation of edge path What is your opinion about the case 4 I described earler: 4) accept any combination except when two a's and one b <XXX>{ .... , (:a xsd:string*, :b xsd:string*) ^ (:a xsd:string{2}, :b xsd:string), .... } (note that there is no , to separate the two statements). This case is the (quite usual) include/exclude case that can be found a lot in declarative statements, such as Ant's fileset, .gitignore... This is tricky to read, but very useful to modelize some tricky cases.
Received on Monday, 26 May 2014 14:09:34 UTC