- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Wed, 05 Mar 2014 09:01:58 -0500
- To: public-ldp-wg@w3.org
- Message-ID: <53172E56.3040504@openlinksw.com>
On 3/4/14 7:35 PM, ashok malhotra wrote:
> In programming languages, subclass relationships come with certain
> guarantees
> such as : a method that runs on an instance of the parent class will
> also run on
> an instance of the subclass.
>
> What are the equivalent guarantees on RDF subclasses?
> In other words, what are the rules on behavior between a parent class
> and a subclass?
In RDF (a language for entity relationship representation) you can have
relations (relationship types) that are defined/described as being
transitive in nature. These kinds of relations enable reasoning and
inference the deliver what OO programmers would refer to as inheritance.
Basically, you and I could be described instances of the class
<http://xmlns.com/foaf/0.1/Person> which is by its definition is an
<http://www.w3.org/2000/01/rdf-schema#subClassOf>
<http://xmlns.com/foaf/0.1/Agent>. Thus, a reasoner could infer that you
and I are Agents as consequence of the aforementioned relation.
Written out in Turtle:
## Turtle Start ##
<#i>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://xmlns.com/foaf/0.1/Person>;
<http://xmlns.com/foaf/0.1/name> "Kingsley Idehen" .
<#you>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://xmlns.com/foaf/0.1/Person>;
<http://xmlns.com/foaf/0.1/name> "Ashok Malhotra" .
<http://xmlns.com/foaf/0.1/Person>
<http://www.w3.org/2000/01/rdf-schema#subClassOf>
<http://xmlns.com/foaf/0.1/Agent> ;
<http://www.w3.org/2000/01/rdf-schema#label> "FOAF: Person Class".
## Turtle End ##
Thus, when presented with the following SPARQL query, the solution
should return <#i> and <#you>:
select ?s
from <#thisDocument>
where
{ ?s
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://xmlns.com/foaf/0.1/Agent> .}
I published some live examples of SPARQL and reasoning in a blog post, a
while back [1].
Conclusion:
The transitive nature of the relation is what delivers the inheritance
feature that you are accustomed to in OO. The trouble with OO is that
semantics are programming-language locked whereas with RDF, there are
not data silos encumbering relations semantics etc.. :-)
Links:
[1]
http://kidehen.blogspot.com/2014/01/demonstrating-reasoning-via-sparql.html
[2]
http://virtuoso.openlinksw.com/tutorials/sparql/SPARQL_Tutorials_Part_5/SPARQL_Tutorials_Part_5.html#(57)
-- collection of queries with live links to query solutions in regards
to transitive relations.
Kingsley
>
> On 3/4/2014 3:38 PM, Kingsley Idehen wrote:
>> On 3/4/14 1:16 PM, henry.story@bblfish.net wrote:
>>> At the last meeting there was a resolution to move back to the
>>> previous positon
>>> on container hierarchies, the position called "the minimal
>>> consensual position"
>>> in
>>>
>>> https://www.w3.org/2012/ldp/wiki/ContainerHierarchy
>>>
>>> But that wiki page shows how the minimal consensual position we have
>>> currently
>>> + the decisions we have previously come to lead to hierarchy
>>>
>>> IndirectContainer
>>> DirectContainer
>>> BasicContainer
>>>
>>> In RDF subclass relations DO NOT mean dependence of one subclass
>>> on another. You can easily deprecate classes without subclasses or
>>> superclasses without this leading to legacy issues.
>>>
>>> All the subclass relations mean is that you cannot have objects that
>>> are in one
>>> class and not the superclass as shown by the picture
>>>
>>> https://www.w3.org/2012/ldp/wiki/ContainerHierarchy#LDP-BC_.3C:_LDP-DC_.3C:_LDP-IC_.3C:_LDPC
>>>
>>>
>>> So I think it is misleading in fact to now show the classes as
>>> having no relation to each
>>> other when we know they do.
>>>
>>> Henry
>>
>> Is this addressed to me or everyone else?
>>
>> "
>> In RDF subclass relations DO NOT mean dependence of one subclass
>> on another. You can easily deprecate classes without subclasses or
>> superclasses without this leading to legacy issues.
>> "
>>
>> You appear (if this is directed to me) to be assuming that I am I
>> disagreeing with, or contradicting, the claim above?
>>
>> FWIW: subclasses are useful in the context of inference, when the
>> relations in question (e.g., rdfs:subClassOf) are transitive in nature.
>> --
>>
>> Regards,
>>
>> Kingsley Idehen
>> Founder & CEO
>> OpenLink Software
>> Company Web:http://www.openlinksw.com
>> Personal Weblog:http://www.openlinksw.com/blog/~kidehen
>> Twitter Profile:https://twitter.com/kidehen
>> Google+ Profile:https://plus.google.com/+KingsleyIdehen/about
>> LinkedIn Profile:http://www.linkedin.com/in/kidehen
>>
>>
>>
>>
>
--
Regards,
Kingsley Idehen
Founder & CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Wednesday, 5 March 2014 14:02:20 UTC