Re: type and instance and subclass in SHACL documents

It seems that there are two claims:

Claim 1: SHACL defined rdfs:subClassOf and rdf:type in a way that
contradicts standard RDFS definition
Claim 2: SHACL doesnıt use many of RDFS terms - such as rdfs:domain and
rdfs:range. At least, I am guessing that this is what multiple ³not in
SHACL² refer to.

I see claim 2 as irrelevant. There is no requirement to use all of RDFS

Claim 1 is relevant. However, I donıt see the contradiction.

The only relevant quotes from the RDFS spec are:

"""2.2 rdfs:Class
This is the class of resources that are RDF classes. rdfs:Class is an
of rdfs:Class.""

"""The property rdfs:subClassOf is an instance of rdf:Property that is
used to
state that all the instances of one class are instances of another."""

And the text above these definitions:

"If a class C is a subclass of a class C', then all instances of C will
also be instances of C'. The rdfs:subClassOf property may be used to state
that one class is a subclass of another. The term super-class is used as
the inverse of subclass. If a class C' is a super-class of a class C, then
all instances of C are also instances of Cı."

SHACL relies on the presence of rdfs:subClassOf property to determine if
one class is a sub class of another. Thus, it doesnıt redefine the meaning
of a subclass. 

We may want to slightly modify the SHACL definition to make sure that
there is no confusions - to something like:

"In the remainder of this document, the following terminology is used:
- subclass, superclass: A class C is a subclass of class Cı if all
instances of C are also instances of C'. SHACL relies on the
rdfs:subClassOf statements, either asserted or inferred, (e.g., C
rdfs:subClassOf Cı) to know that C is a subclass of Cı.  The term
superclass is referring to the same relationship in reverse order.²

And then elsewhere say that "SHACL engines MUST perform inferences
according to RDFS CL profile.² - as I described in the previous e-mail.
This would take care of the transitive closure of rdfs:subClassOf. ³RDF
CL² is just a proposed name. I am not married to it by any means.


On 3/11/16, 2:18 PM, "Peter F. Patel-Schneider" <>

>On 03/11/2016 10:19 AM, Karen Coyle wrote:
>> On 3/11/16 9:27 AM, Peter F. Patel-Schneider wrote:
>>> So, SHACL uses RDF terms from RDFS, particularly rdfs:subClassOf, and
>>> from RDFS, notably instance, but in a way different from what they
>>>mean in
>>> RDFS (and RDF).   The SHACL specification documents need to
>>>distinguish their
>>> use of these well-known terms from their dominant meaning.
>> I've heard readers of the SHACL document refer to this varied use of
>> terms as a "non-starter" that weakens the entire premise of the
>>standard, and
>> I tend to agree. I would say that if you aren't using a term as it is
>> in its definitional standard, then you should create a new term that
>> corresponds to your meaning. We already insisted on that for sh:label,
>>and it
>> may be needed for other properties as well.
>> Peter, I would benefit from a less rhetorical approach - the dramatic
>> repetition of "Not in SHACL" would be more informative if it were
>>followed by
>> what IS in SHACL, rather than making us all trying to guess what's
>>wrong here,
>> especially those of us who might not see it as clearly as others. Help
>>us out,
>> please. Thanks.
>> kc
>The claim I was responding to was that SHACL was conforming to RDFS.  The
>support for this claim was given as certain passages that appeared to have
>been taken from the RDFS 1.1 Schema document.  I pointed out other
>passages from the same document that SHACL does not conform to.  I don't
>any more effective way of showing that the claim is incorrect.
>What *is* in SHACL?  The following recent addition to the SHACL document
>provides reasonable definitions.
>""In the remainder of this document, the following terminology is used:
>- subclass, superclass: A class Sub is a subclass of another class Super
>there is a path of asserted rdfs:subClassOf triples from Sub to Super
>equivalent to the SPARQL property path [sparql11-query] ?Sub
>?Super. The term superclass is referring to the same relationship in
>- type: The types of a node are the classes that are linked to the node
>rdf:type as well as their superclasses as defined above.
>- instance: A node is an instance of a class if one of its types (as
>above) is the given class."""
>However, these definitions of subclass, superclass, type, and instance
>significantly from their meanings in RDFS.

Received on Friday, 11 March 2016 20:05:41 UTC