- From: Jose Emilio Labra Gayo <jelabra@gmail.com>
- Date: Mon, 26 May 2014 14:11:12 +0200
- To: Olivier Rossel <olivier.rossel@gmail.com>
- Cc: Iovka Boneva <iovka.boneva@univ-lille1.fr>, "Dam, Jesse van" <jesse.vandam@wur.nl>, "Gray, Alasdair J G" <A.J.G.Gray@hw.ac.uk>, "Eric Prud'hommeaux" <eric@w3.org>, "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
- Message-ID: <CAJadXXKYKUWo=Rmh4cB5=Y7=-r2-cbNY263iy7pN-hfUd1NeEQ@mail.gmail.com>
Notice that you are using the symbol "^" for negation while the symbol used for negation is "!". The "^" symbol is being used for "reverse arcs", i. e.: <a> { ^ :b @<c> } would mean that <a> shapes are those that receive an arc ":b" from <c> shapes. In the case of the semantics of negation, what I implemented was precisely to evaluate the rule affected by the negation and in case it passed, then fail, otherwise pass. I have just updated the implementation to cover negations of complex rules...the previous implementation only covered negations of arcs. If you want to play with it, it is version 0.0.4 With regards to Javascript...I expect to compile Shexcala with ScalaJs so it will also be available to Javascript... Best regards, Jose Labra On Mon, May 26, 2014 at 12:48 PM, Olivier Rossel <olivier.rossel@gmail.com>wrote: > Hi Iovka, > > This is indeed a non-trivial topic, with rough edges. > > My initial idea is to try to match what is after the ^ > and then negate the boolean result. > > So for example: > <XXX>{ > (:a xsd:string | :b xsd:string) > } > > would match these triples: > :x :a "a". > > or these ones: > :x :b "b". > > So negating it like that: > <XXX>{ > ^ (:a xsd:string | :b xsd:string) > } > > simply make these triples to FAIL the validation. > > > > So going back to your examples: > 1) forbid a and be to appear cojointly > > <XXX>{ > .... , > ^ (:a xsd:string, :b xsd:string) , > ... > } > > 2) forbid any a's and b's > <XXX>{ > .... , > ^ :a xsd:string, > ^ :b xsd:string, > .... > } > > 3) forbid two a's and one b > <XXX>{ > .... , > ^ (:a xsd:string{2}, :b xsd:string), > .... > } > > 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). > > These are honestly very rough examples. > May be we should get in touch with people who have worked > on the implementation of negation in SPARQL 1.1 > They probably have very precise idea of the rough edges of negation. > > > > > > > > > > > On Mon, May 26, 2014 at 12:22 PM, Iovka Boneva < > iovka.boneva@univ-lille1.fr> wrote: > >> Dear Olivier, >> >> Regarding negation, one of the difficulties is in defining clear and >> intuitive semantics. For instance, take >> <XXX> { >> ^ (:a xsd:string | :b xsd:string) >> } >> What does it mean ? What is forbidden for the properties of an XXX-typed >> node ? >> - forbids a and be to appear cojointly ? >> - forbids any a's and b's ? >> - what about two a's and one b ? is it forbidden or not ? >> - what about two a's and two b's ? >> >> What did you mean in your example ? >> >> Best regards, >> Iovka >> >> >> Le 26/05/2014 11:25, Olivier Rossel a écrit : >> >> For my information: >> >> Will it be possible to negate a group? >> Something (roughly) like: >> <XXX> { >> ^ (:p1 rdf:Resource | :p2 xsd:string) >> } >> >> Will it also be possible to negate a valueReference to a shape value? >> <XXX> { >> ^ (:p3 @<YYY>) >> } >> >> Will I be able to say something like: >> <XXX> { >> ^ :p3 @<YYY> , >> ^ (:p3 xsd:string | :p3 xsd:dateTime) >> } >> >> >> On Mon, May 26, 2014 at 11:04 AM, Dam, Jesse van <jesse.vandam@wur.nl>wrote: >> >>> Hi Alasdair and other, >>> >>> I would like to make you aware that is there is also my javscript based >>> validation set, however this uses the SHEX/RDF representation instead of >>> the SHEXc format. >>> For the definition of the Shex/RDF in itself see >>> https://www.w3.org/2001/sw/wiki/ShEx/RDF_serialization. Self validation >>> succeeds and any test case is first validated before tested. >>> >>> The not operator is not implemented here yet, but I will add that this >>> week. >>> >>> Here you can find https://github.com/jessevdam/shextest/ the complete >>> set. It is completely coded in javascript. You can start the webserver >>> using ruby(uses sinatra) and go to localhost:4567. >>> >>> The validation is bit different form to other validators and some test >>> cases are failing as I try to find discussion point to improve SHEX. See >>> the discussion page on >>> https://www.w3.org/2001/sw/wiki/ShEx/CurrentDiscussion for the current >>> most important discussion points. This test script contains a definition >>> for a start element, however the final form of this is yet determined and >>> will be part of a future discussion. >>> >>> This and next week I will try to include a parser for the ShexC format. >>> >>> Greetz Jesse >>> >>> >>> ________________________________ >>> Van: Gray, Alasdair J G [A.J.G.Gray@hw.ac.uk] >>> Verzonden: maandag 26 mei 2014 10:12 >>> Aan: Jose Emilio Labra Gayo >>> CC: Eric Prud'hommeaux; public-rdf-shapes@w3.org >>> Onderwerp: Re: ShEx negation of edge path >>> >>> >>> On 24 May 2014, at 06:46, Jose Emilio Labra Gayo <jelabra@gmail.com >>> <mailto:jelabra@gmail.com>> wrote: >>> >>> On Fri, May 23, 2014 at 5:05 PM, Gray, Alasdair J G <A.J.G.Gray@hw.ac.uk >>> <mailto:A.J.G.Gray@hw.ac.uk>> wrote: >>> Hi Eric, All, >>> >>> I want to be able to express the constraint that a certain resource in >>> an RDF document should not have certain a property. >>> >>> Specifically, I want to express that the follow triple is not permitted >>> because ex:resource is not permitted to have an ex:invalidProperty edge. >>> ex:resource ex:invalidProperty “Some value” . >>> >>> You can negations with symbol !. For example: >>> >>> <Shape> { ! ex:invalidProperty . } >>> >>> That’s what I thought would be in the syntax. >>> >>> However, I think, negations are not yet implemented in the Javascript >>> implementation. >>> >>> Thanks for that piece of information. >>> >>> I have just added negations to the Scala implementation ( >>> http://labra.github.io/ShExcala/) >>> >>> Unfortunately the deployment environment I’m working with requires that >>> I use the Javascript implementation, although I may try the Scala version >>> to validate the approach. >>> >>> Best regards >>> >>> Alasdair >>> >>> Best regards, Jose Labra >>> >>> Thanks >>> >>> Alasdair >>> >>> Alasdair J G Gray >>> Lecturer in Computer Science, Heriot-Watt University, UK. >>> Email: A.J.G.Gray@hw.ac.uk<mailto:A.J.G.Gray@hw.ac.uk> >>> Web: MailScanner has detected a possible fraud attempt from " >>> www.macs.hw.ac.uk" claiming to be http://www.alasdairjggray.co.uk< >>> http://www.macs.hw.ac.uk/~ajg33> >>> ORCID: http://orcid.org/0000-0002-5711-4872 >>> Telephone: +44 131 451 3429 <%2B44%20131%20451%203429> >>> <tel:%2B44%20131%20451%203429> >>> Twitter: @gray_alasdair >>> >>> >>> >>> >>> >>> >>> ________________________________ >>> >>> Sunday Times Scottish University of the Year 2011-2013 >>> Top in the UK for student experience >>> Fourth university in the UK and top in Scotland (National Student Survey >>> 2012) >>> >>> We invite research leaders and ambitious early career researchers to >>> join us in leading and driving research in key inter-disciplinary themes. >>> Please see www.hw.ac.uk/researchleaders< >>> http://www.hw.ac.uk/researchleaders> for further information and how to >>> apply. >>> >>> Heriot-Watt University is a Scottish charity registered under charity >>> number SC000278. >>> >>> >>> >>> -- >>> Saludos, Labra >>> >>> Alasdair J G Gray >>> Lecturer in Computer Science, Heriot-Watt University, UK. >>> Email: A.J.G.Gray@hw.ac.uk<mailto:A.J.G.Gray@hw.ac.uk> >>> Web: MailScanner has detected a possible fraud attempt from " >>> www.macs.hw.ac.uk" claiming to be http://www.alasdairjggray.co.uk< >>> http://www.macs.hw.ac.uk/~ajg33> >>> ORCID: http://orcid.org/0000-0002-5711-4872 >>> Telephone: +44 131 451 3429 >>> Twitter: @gray_alasdair >>> >>> >>> >>> >>> >>> >>> ________________________________ >>> >>> Sunday Times Scottish University of the Year 2011-2013 >>> Top in the UK for student experience >>> Fourth university in the UK and top in Scotland (National Student Survey >>> 2012) >>> >>> We invite research leaders and ambitious early career researchers to >>> join us in leading and driving research in key inter-disciplinary themes. >>> Please see www.hw.ac.uk/researchleaders for further information and how >>> to apply. >>> >>> Heriot-Watt University is a Scottish charity registered under charity >>> number SC000278. >>> >>> >>> >> >> > -- Saludos, Labra
Received on Monday, 26 May 2014 12:12:04 UTC