W3C home > Mailing lists > Public > semantic-web@w3.org > January 2014

Re: Deduced property

From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
Date: Fri, 31 Jan 2014 10:26:52 -0800
Message-ID: <52EBEAEC.6060305@gmail.com>
To: tim.glover@bt.com, tim@mlhim.org, aidan.hogan@deri.org
CC: pavel.klinov@uni-ulm.de, franconi@inf.unibz.it, paul.w.warren@btinternet.com, dave.e.reynolds@gmail.com, semantic-web@w3.org
I do not think that it is correct to say that "if a class A  has property x, 
then all objects of that class have property x" in OOP, at least without 
carefully qualifying what you mean by "property".  For example, suppose that 
class A is a subclass of class C.  That is a property of class A, but objects 
of class A are not subclasses of class C.

If you restate things, then you end up with something like:
   If class A defines a field X,, then all objects of class A have a value for 
field X.  If class B extends X, then all objects of class B also have a value 
for field X.

What causes trouble here is being sloppy in the use of "property".   One 
meaning of property supports a particular inference, other meanings don't.  
"Inheritance" is another of these words, with different meanings when relating 
instances to classes, and a different meaning when relating subclasses to 
superclasses.  (There are also different meanings for inheritance when 
relating subproperties to superproperties and when relating prototypes to clones.)

Sloppy use of words that can be easily misunderstood can result in incorrect 
inferences by people.  This is one reason why many researchers working on 
ontology languages try to avoid the use of "property" and "inheritance".

Peter F. Patel-Schneider

On 01/31/2014 08:21 AM, tim.glover@bt.com wrote:
> Hi,
> (Also speaking from the sidelines, so apologies if this is nonsense).
> As a software engineer, the striking difference is this.  In Java, if a 
> class A  has property x, then all objects of that class have property x. If 
> class B extends A, then all objects of class B also have property x.
> In OWL the logical direction  is completely different. In OWL, if property x 
> has domain A, that does NOT mean that all objects of class A have property 
> x. It means that IF an object has property x, it must belong to class A 
> (very roughly speaking -  I am aiming for conceptual intuition of the 
> difference here, rather than strict accuracy). IF B is a subclass of A, and 
> IF I can deduce that object b is a B, then it must also be an A.
> Inheritance in programming languages allows one to deduce properties of an 
> object  from a description of a class.  In OWL, the idea is to deduce the 
> class of an object from a description of its properties.
> The OWL specs do not talk about inheritance because inheritance in the usual 
> sense does not apply to OWL. Other people believe that OWL has something to 
> do with inheritance because the terminology of classes and subclasses is the 
> same. But the meaning is quite different.
> Tim.
Received on Friday, 31 January 2014 18:27:21 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:47 UTC