- From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
- Date: Thu, 5 Mar 2015 07:57:19 +0200
- To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>
- Cc: public-data-shapes-wg <public-data-shapes-wg@w3.org>, Richard Cyganiak <richard@cyganiak.de>
- Message-ID: <CA+u4+a0tvJeEn3ZROP8vnR9v64JC+HnLF41m+DHsJ_j1aBZx4A@mail.gmail.com>
On Mar 5, 2015 2:09 AM, "Peter F. Patel-Schneider" <pfpschneider@gmail.com> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > I think that your method only works for certain shapes. > > Consider, for example, > a value of p is b > AND > a value of p is c OR a value of q is d > I don't understand this shape, I think this should always fail unless b and c are equal. > The closure filter here is a function of the entire shape. If the shape > includes raw SPARQL code constructing the filter would require a semantic > analysis of the SPARQL code. You are right about SPARQL, it never occurred to me that we would allow it in closed shapes. > > > peter > > > On 03/04/2015 12:39 PM, Dimitris Kontokostas wrote: > > > > > > On Wed, Mar 4, 2015 at 5:38 PM, Richard Cyganiak <richard@cyganiak.de > > <mailto:richard@cyganiak.de>> wrote: > > > > > >> On 4 Mar 2015, at 15:21, Peter F. Patel-Schneider > >> <pfpschneider@gmail.com <mailto:pfpschneider@gmail.com>> wrote: > >> > >> Yes, I mean closed shapes, i.e., all triples in a graph (or around a > >> node) have to be somehow consumed by the shape. > >> > >> I don't think that your idea of constructing the matched triples will > >> work in the presence of disjunction, at least without considerable code > >> embedded into the SPARQL engine. > > > > You are probably right. I may investigate further if it is established > > that someone can’t live without this feature. > > > > > > I think this is not so hard to check (unless I miss something) and > > depends on the semantics we give to disjunction (exclusive or not). I am > > using exclusive for the examples > > > > Since the validation engine will check for the validity of the defined > > properties we would only need an extra query for the closed shape > > checking, meaning no other properties exist other than the ones defined > > in the shape. > > > > case 1: conjuctiveShape { ex:p1 [...] AND ex:p2 [...] AND ex:p3 [...] } > > SELECT ?root WHERE ?root rdf:type/rdfs:subClassOf* <C1 > # or use the > > focus node here ?root ?p ?o FILTER ( ! (?p IN (ex:p1, ex:p2, ex:p3))) > > > > case 2: disjunctiveShapeSimple { (ex:p1 [...] OR ex:p2 [...] OR ex:p3 > > [...] )} > > > > SELECT ?root WHERE ?root rdf:type/rdfs:subClassOf* <C1 > # or use the > > focus node here ?root ?p ?o FILTER ( ! ((?p IN (ex:p1) && ?p NOT IN > > (ex:p2, ex:p3)) || (?p IN (ex:p2) && ?p NOT IN (ex:p1 , ex:p3)) || (?p > > IN (ex:p3) && ?p NOT IN (ex:p1 , ex:p2))) > > > > > > case 3: disjunctiveShapeComplex { (ex:p1 [...] AND ex:p2 [...]) OR > > (ex:p1 AND ex:p3 [...] )} > > > > SELECT ?root WHERE ?root rdf:type/rdfs:subClassOf* <C1 > # or use the > > focus node here ?root ?p ?o FILTER ( ! ( (?p IN (ex:p1, ex:p2) && ?p NOT > > IN (ex:p3)) || (?p IN (ex:p1, ex:p3) && ?p NOT IN (ex:p2))) > > > > Best, Dimitris > > > > > > Richard > > > > > >> > >> peter > >> > >> > >> On 03/04/2015 06:37 AM, Richard Cyganiak wrote: > >>> > >>>> On 3 Mar 2015, at 21:49, Peter F. Patel-Schneider > >>>> <pfpschneider@gmail.com <mailto:pfpschneider@gmail.com>> wrote: > >>>> > >>>> I would like to see the core of a proposal for something that > >>>> would support "SHACL minus SPARQL" as well as the core of a > >>>> proposal for "SHACL plus SPARQL". > >>>> > >>>> I think that I could fairly easily put together a proposal for most > >>>> of the former, but I am puzzled as to how to handle recursion and > >>>> closure, so I would like to see how a proponent of this approach > >>>> would handle recursion or closure. > >>> > >>> By closure, do you mean “closed shapes” as described here? > >>> > > https://www.w3.org/2014/data-shapes/wiki/Requirements#Expressivity:_Closed_Shapes > > > > > >> > >>> I’m not sure that this can be easily supported. > >>> > >>> One way to do it might be to attach a second bit of SPARQL to each > >>> “macro definition”/“shape node”. That bit of SPARQL would CONSTRUCT > >>> the triples that are considered to be “covered” by a successful > >>> “macro”/“shape” evaluation. A SHACL processor would collect all those > >>> triples, and if any triples in the input RDF graph under > >>> consideration are not among those “covered”, then the closedness > >>> constraint is violated. > >>> > >>> Personally I’m not fully convinced that this requirement is a good > >>> idea and necessary for SHACL 1.0, and there are many cases where I > >>> don’t know what the desired behaviour would be. I’d be quite > >>> comfortable with postponing this to a future version of SHACL. > >>> > >>> My thoughts on recursion are too muddled to be of much help. > >>> > >>> Best, Richard > >>> > >>> > >> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 > >> > >> iQEcBAEBAgAGBQJU9yL2AAoJECjN6+QThfjzpCoH/0IqTnt8+4VL9f8Rbf/cyUhx > >> dNWWS8Wn5snRN6cCJaZeLI4dQt/fa15jlG3/V2y+bZZQTWPnhBGBzr4Ti0g7rZP5 > >> KVDsnMflcCEU07yMjfvkXTPngvHwSUqdcwDu3pQ9hyYvSgE4SbY8Gp4aaFb8e7Sc > >> FNUqd8u5SSE9XHf7zXGWW+9CBdiYBNSlt9Af3IyS6iuR2Iu8KNjlH4+4H4AApGlp > >> m2O3HogHmEWqwysUpV9GXGYA6miwvXJ3+/ESvf0X2xhrzPXZ2v7LxbYuwtiDW2hl > >> yKQIYPoVsYdFrrjZDsz5Fk2AL87LIxanaxBnw5dkmuRZ6sB47HkvKdNXsmPUpik= =bB9a > >> -----END PGP SIGNATURE----- > > > > > > > > > > > > > > -- Dimitris Kontokostas Department of Computer Science, University of > > Leipzig Research Group: http://aksw.org > > Homepage:http://aksw.org/DimitrisKontokostas > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1 > > iQEcBAEBAgAGBQJU957BAAoJECjN6+QThfjzE48H/RV6aC/JWyFipTHGuqt+zHK0 > cRfAt6epcXoVN8n0r29uN5UU3Zq9P0vMfFDiJSKZA9gzYvpditMFWCHt255pIdB8 > OLRLXgHTALI1f65Bed+KAvxk5QiL1zpjYpRlgT8xSGCd3LwqgxnClYrYpmm39grH > upFcYEoD7vraIPfEAvcbjn0HtO91t6Ifay78wOwS5FYxLtSLD33jjZ8XoSnp4K1s > nVHfe+JhGpr1g9yoWfYl8zHHLo9JBz696kpaYqznUN3Wo2lJTNRPxVo9i/2p9kid > I9Q7NJi6uirjXHmrzcT020zGpFvvG43/tPjgwUn9cwl89+b0Yj0xLkLGDtSGhrU= > =5SWT > -----END PGP SIGNATURE----- >
Received on Thursday, 5 March 2015 05:57:54 UTC