- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Sat, 12 Mar 2016 14:19:38 -0800
- To: Irene Polikoff <irene@topquadrant.com>
- Cc: kcoyle@kcoyle.net, public-data-shapes-wg@w3.org
I have given examples of the difference in this email thread. >>>> Using the RDFS definition of instance, rdfs:label is an instance of >>>> rdf:Property so it is in the scope of the shape and there is a >>>> violation. >>>> Using the SHACL definition of instance, rdfs:label is *not* an >>>> instance of >>>> rdf:Property so it is *not* in scope and there is *no* violation. This even was in the context of where SHACL would work differently with the two definitions. If explicit examples are not adequate here, I am at a loss to determine what is. peter On 03/12/2016 02:08 PM, Irene Polikoff wrote: > > Peter, > > Repeating that "SHACL instance is indeed very different from RDFS > instance” doesn’t move the conversation forward. The question was “why and > how” and you have not answered this question in a way that I could > understand. > > Since no one else in the working group jumped in to answer this question > and, on contrary, several people joined me in asking it, I have to > conclude that no one else understand this either. If I am wrong, and there > is someone other than Peter who does, please, answer it. If something is > indeed very different from another thing, such difference should be > apparent to most group members. > > As I recall, this topic has been brought up by Peter on and off during (at > least) the last 12 months. Realistically and practically speaking, if no > one else in the working group that is made of experts and experienced > practitioners understands this difference, even after a year of > discussions, I see this topic as having absolutely no practical relevance. > The chance that the broader community would understand it or care to > understand it or be impacted by it in any way whatsoever is infinitely > close to zero. > > I would venture even further and say that such unwavering focus on obscure > points that make no practical difference is they key obstacle to adoption > of RDF technology. As a community, we must overcome this tendency in order > to move forward. > > Irene > > > > > On 3/12/16, 4:30 PM, "Peter F. Patel-Schneider" <pfpschneider@gmail.com> > wrote: > >> The SHACL documents talk about instance. If this is RDFS instance, then, >> yes, >> SHACL engines would always have to treat rdfs:label as an instance of >> rdf:Property. >> >> This is why I say that the SHACL documents should be very clear every time >> that they talk about instance that it is not the common RDFS instance that >> they are talking about but some new notion particular to SHACL, >> particularly >> as SHACL uses RDFS vocabulary. >> >> SHACL instance is indeed very different from RDFS instance. >> >> peter >> >> >> On 03/12/2016 10:05 AM, Irene Polikoff wrote: >>> We need rdf:type to know if something is an instance of a class (note >>> that I am saying simply 'instance' because I do not see the difference). >>> >>> If {rdfs:label rdf:type rdf:Property} triple was provided to a SHACL >>> engine, then the violation would be raised. >>> >>> How else could it be known from the data graph that rdfs:label is a >>> property? Or are you saying that SHACL engines should always include >>> triples in RDFS vocabulary when they do their processing? >>> >>> Sent from my iPhone >>> >>>> On Mar 11, 2016, at 10:36 PM, Peter F. Patel-Schneider >>>> <pfpschneider@gmail.com> wrote: >>>> >>>> Using the RDFS definition of instance, rdfs:label is an instance of >>>> rdf:Property so it is in the scope of the shape and there is a >>>> violation. >>>> Using the SHACL definition of instance, rdfs:label is *not* an >>>> instance of >>>> rdf:Property so it is *not* in scope and there is *no* violation. >>>> >>>> peter >>>> >>>> >>>>> On 03/11/2016 04:50 PM, Karen Coyle wrote: >>>>> Peter, I admit that I, too, am having trouble understanding this. >>>>> (And so it >>>>> isn't all on Peter, if anyone else "gets it" maybe they could weight >>>>> in.) The >>>>> SHACL document uses the term "instance" 78 times. I admit I only >>>>> looked at the >>>>> first couple of dozen of those uses. For the most part they appear to >>>>> me to >>>>> conform to the RDFS definition of "instance" - meaning an instance of >>>>> class. >>>>> In some cases the term is used more colloquially, but those places in >>>>> the >>>>> document don't seem to be definitional. >>>>> >>>>> You say that it doesn't validate, but can you say what the difference >>>>> is in >>>>> the two definitions? I still see it as having to do with the >>>>> vocabulary >>>>> definition as opposed to the SHACL validation, but you didn't buy >>>>> that when I >>>>> suggested it. If I were to use a typical OWL-based validation, >>>>> rdfs:range >>>>> ex:label "range" would be flagged as inconsistent. The same would be >>>>> true if I >>>>> would have >>>>> ex:someSubject dct:type "text" . >>>>> (dct:type has a range of rdf-schema#Class) >>>>> >>>>> If this isn't the issue, I would sure like to know what is. >>>>> >>>>> Thanks, >>>>> kc >>>>> >>>>>> On 3/11/16 2:22 PM, Peter F. Patel-Schneider wrote: >>>>>> The definition of SHACL depends on "instance". This can be read to >>>>>> mean >>>>>> "RDFS instance" or "SHACL instance". Under the former meaning the >>>>>> data graph >>>>>> does not validate against the shape. Under the latter meaning the >>>>>> data graph >>>>>> does validate against the shape. >>>>>> >>>>>> peter >>>>>> >>>>>> >>>>>>> On 03/11/2016 02:15 PM, Irene Polikoff wrote: >>>>>>> I don¹t understand what you mean by >>>>>>> >>>>>>> "validates against this shape under SHACL instance but not under >>>>>>> RDFS >>>>>>> instance.² >>>>>>> >>>>>>> I am not able to parse the sentence. >>>>>>> >>>>>>> What are you doing? Taking a shape described and the graph >>>>>>> described and >>>>>>> running it against SHACL engine? What execution validates and what >>>>>>> execution doesn¹t validate? >>>>>>> >>>>>>> >>>>>>> >>>>>>> Irene >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 3/11/16, 5:03 PM, "Peter F. Patel-Schneider" >>>>>>> <pfpschneider@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>>> On 03/11/2016 01:01 PM, Karen Coyle wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>>> On 3/11/16 11:43 AM, Peter F. Patel-Schneider wrote: >>>>>>>>>> Consider the following shape (using obvious prefix declarations) >>>>>>>>>> >>>>>>>>>> sh:propertyShape a sh:Shape ; >>>>>>>>>> sh:scopeClass rdf:Property ; >>>>>>>>>> sh:property [ sh:predicate rdfs:label ; >>>>>>>>>> sh:minCount 1 ] . >>>>>>>>>> >>>>>>>>>> The data graph (using obvious prefix declarations) >>>>>>>>>> >>>>>>>>>> rdfs:range ex:label "range" . >>>>>>>>>> >>>>>>>>>> validates against this shape under SHACL instance but not under >>>>>>>>>> RDFS >>>>>>>>>> instance. >>>>>>>>> >>>>>>>>> Isn't this a problem with every vocabulary and not just RDFS? If >>>>>>>>> the >>>>>>>>> rules of >>>>>>>>> the vocabulary (such as domain and range) are not encoded as such >>>>>>>>> in >>>>>>>>> SHACL >>>>>>>>> then the SHACL result can be "in violation" of the vocabulary >>>>>>>>> definition. >>>>>>>>> >>>>>>>>> Now, if that is the case then I understand that violating the >>>>>>>>> foundation >>>>>>>>> vocabulary of RDF/RDFS may be more grave than violating a >>>>>>>>> user-developed >>>>>>>>> vocabulary, and in some cases doing the latter may indeed be the >>>>>>>>> intention of >>>>>>>>> the SHACL definition. So do we want to build into SHACL that it >>>>>>>>> must >>>>>>>>> follow >>>>>>>>> RDF/RDFS property and class definitions? And how feasible is that? >>>>>>>>> >>>>>>>>> kc >>>>>>>> >>>>>>>> This is only a real problem because SHACL uses "instance" in its >>>>>>>> specification, this term is also used centrally in RDFS, and SHACL >>>>>>>> uses >>>>>>>> RDFS >>>>>>>> vocabulary. >>>>>>>> >>>>>>>> The question then is how to read "instance" in SHACL >>>>>>>> documentation, i.e., >>>>>>>> how >>>>>>>> to prevent readers of the SHACL documentation from seeing "RDFS >>>>>>>> instance" >>>>>>>> where "SHACL instance" is meant. >>>>>>>> >>>>>>>> >>>>>>>> peter >>>> > >
Received on Saturday, 12 March 2016 22:20:09 UTC