Re: type and instance and subclass in SHACL documents

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