Re: Deduced property

Aidan,

While I do agree that one shouldn't normally explain the OWL semantics
in terms of inheritance, I think that Enrico's point was different and
valid. Confusion arises when one starts mixing properties of
*objects*, which are inherited, and properties of *entities* (classes
and properties), which need not be inherited.

All your examples, e.g., "a sCO b. b equivClass c . ⊬ a equivClass c"
talk about properties of *entities* (a, b, and c). Note that those
aren't necessarily inherited in OOP, either! For example, such
properties of *classes* as access modifiers aren't inherited in Java,
friendship isn't inherited in C++, etc.

However, properties of objects are inherited and there's nothing
specific to owl:someValuesFrom. For example, consider
owl:allValuesFrom: If A is a subclass of B, and for all objects of B
it is true that all R-related objects are instances of C (that is, B
is a subclass of "R only C"), then all objects of A will have the same
property. Any property that is true for all objects of B and is
expressible in OWL will be entailed in OWL for all objects of A.

Now, going back to transitivity of R: it's not inherited but that is
not strange: it's a property of R, not a property of every pair of
R-related objects. Functionality is inherited, while being a property
of a property, but that just happens to be a feature of the semantics
of functional properties.

But again, I 100% agree that one should think in terms of the actual
semantics of OWL when thinking if something holds, rather than apply
analogies.

Cheers,
Pavel

On Thu, Jan 30, 2014 at 7:42 PM, Aidan Hogan <aidan.hogan@deri.org> wrote:
> On 30/01/2014 14:55, Enrico Franconi wrote:
>>
>>
>> Not really.
>> "Inheritance" (in the object oriented sense) holds true in DL: a property
>> of all the *objects* of a superclass is inherited to all the *objects* of
>> the subclass.
>> So, if class C is subsumed by class D, then if all the objects in class D
>> have a property P, then all the objects in class C have the property P.
>> This is true in Java, description logics, OWL, Smalltalk, CLOS, etc.
>
>
> Yes but I think this is quite a jump away from the topic of the thread so
> far. We were discussing the (lack of) "inheritance" of transitivity in
> properties.
>
> Your argument specifically relates to one feature of OWL: someValuesFrom.
> Indeed there's some notion of "inheritance" in an object-oriented sense here
> (as well as for the other property-based restrictions on classes). But again
> this is only a subset of the features of OWL (and not the ones we were
> discussing).
>
> Some "features" of OWL are "inherited". Others are not.
>
> a sCO b. b equivClass c . ⊬ a equivClass c .
> a sPO b . b inverseOf c . ⊬ a inverseOf c .
> a sPO b . b equivProp c . ⊬ a equivProp c .
> a sPO b . b type SymProp . ⊬ a type SymProp .
> a sPO b . b type TransProp . ⊬ a type TransProp .
> ...
>
> ... I still maintain my original point that it is *not* helpful to talk
> about OWL subsumption using phrases like inheritance. :)
>
>
> Cheers,
> Aidan
>
>
>> cheers
>> —e.
>>
>>
>>>
>>> Hence why the "inheritability" of different OWL features isn't documented
>>> (and nor should it be).
>>>
>>> If you want a non-technical means of introducing the features of OWL,
>>> examples using IF -- THEN -- (i.e., rules) will give a sound but incomplete
>>> picture. Studying the rules in OWL 2 RL/RDF is a great starting point for
>>> anyone wanting to learn a bit about what the *key* entailments of the OWL
>>> (2) features are (and without having to get into the formal semantics):
>>>
>>>
>>> http://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules
>>>
>>> The OWL features mean more than what's represented in these rules, but IF
>>> you can understand these rules, THEN you'll have a working knowledge of OWL.
>>>
>>> (Unfortunately though, I feel we're fighting a losing battle with regards
>>> the didactic aspects of OWL in the broader sense of it being a *Web
>>> standard*. Perhaps the battle is even already lost.)
>>>
>>> Best,
>>> Aidan
>>>
>>>
>>> On 30/01/2014 05:43, PAUL WARREN wrote:
>>>>
>>>> I have come across this problem recently in some work I have been doing
>>>> investigating people's understanding of OWL constructs.  You can't
>>>> assume that property characteristics are inherited - some are (e.g.
>>>> functionality), some aren't (e.g. transitivity and symmetry).  But I
>>>> have found no reference in any documentation to this fact.
>>>>
>>>> Cheers,
>>>>
>>>> Paul Warren
>>>>
>>>> ------------------------------------------------------------------------
>>>> *From:* Dave Reynolds <dave.e.reynolds@gmail.com>
>>>> *To:* semantic-web@w3.org
>>>> *Sent:* Wednesday, 29 January 2014, 17:05
>>>> *Subject:* Re: Deduced property
>>>>
>>>> OWL, and the underlying logic, are quite different from object oriented
>>>> modelling so using terms like "inheritance" can trip you up. Especially
>>>> when it comes to property axioms.
>>>>
>>>> In the RDF/OWL way of thinking then a property corresponds to set of
>>>> pairs of things that are related by the property. So saying
>>>>
>>>>      :hasParent rdfs:subPropertyOf :hasAncestor
>>>>
>>>> means, and only means, that the set of pairs of things related by
>>>> :hasParent is a subset of the set of pairs of things related by
>>>> :hasAncestor.
>>>>
>>>> It's sets all the way down :)
>>>>
>>>> Dave
>>>>
>>>> On 29/01/14 16:47, Jean-Claude Moissinac wrote:
>>>>>
>>>>> OK
>>>>> I really thought that the transitivity was inherited. I will try to
>>>>> find
>>>>> where and how the non-inheritance is specified
>>>>> Thank you
>>>>>
>>>>> --
>>>>> Jean-Claude Moissinac
>>>>>
>>>>>
>>>>>
>>>>> 2014-01-29 Matthew Horridge <matthew.horridge@stanford.edu
>>>>
>>>> <mailto:matthew.horridge@stanford.edu>
>>>>>
>>>>> <mailto:matthew.horridge@stanford.edu
>>>>
>>>> <mailto:matthew.horridge@stanford.edu>>>
>>>>>
>>>>>
>>>>>     Hi Jean-Claude,
>>>>>
>>>>>     Asserting
>>>>>
>>>>>     :hasParent rdfs:subClassOf :hasAncestor
>>>>>
>>>>>     and
>>>>>
>>>>>     :hasAncestor rdf:type owl:TransitiveProperty
>>>>>
>>>>>     does not mean that :hasParent is also transitive.  Transitivity
>>>>>     isn’t “inherited” down the property hierarchy, so it’s possible to
>>>>>     have a non-transitive sub property of a transitive super property.
>>>>>
>>>>>     Cheers,
>>>>>
>>>>>     Matthew
>>>>>
>>>>>     On 29 Jan 2014, at 08:30, Jean-Claude Moissinac
>>>>>     <jean-claude.moissinac@telecom-paristech.fr
>>>>
>>>> <mailto:jean-claude.moissinac@telecom-paristech.fr>
>>>>>
>>>>>     <mailto:jean-claude.moissinac@telecom-paristech.fr
>>>>
>>>> <mailto:jean-claude.moissinac@telecom-paristech.fr>>> wrote:
>>>>>
>>>>>
>>>>>>     No, it's not the answer because hasAncestor is transitive and
>>>>>>     hasParent isn't...
>>>>>>     (I've a lot of similar situations)
>>>>>>
>>>>>>     --
>>>>>>     Jean-Claude Moissinac
>>>>>>
>>>>>>
>>>>>>
>>>>>>     2014-01-29 Richard Cyganiak <richard@cyganiak.de
>>>>
>>>> <mailto:richard@cyganiak.de>
>>>>>>
>>>>>>     <mailto:richard@cyganiak.de <mailto:richard@cyganiak.de>>>
>>>>>>
>>>>>>         Jean-Claude,
>>>>>>
>>>>>>         You’re looking for this (in Turtle syntax):
>>>>>>
>>>>>>           :hasParent rdfs:subClassOf :hasAncestor.
>>>>>>
>>>>>>         (Don’t try to read or write RDF/XML directly. You’ll go mad.
>>>>>>         Use the friendly syntaxes such as Turtle, or graphical tools.)
>>>>>>
>>>>>>         Best,
>>>>>>         Richard
>>>>>>
>>>>>>
>>>>>>         On 29 Jan 2014, at 16:18, Jean-Claude Moissinac
>>>>>>         <jean-claude.moissinac@telecom-paristech.fr
>>>>
>>>> <mailto:jean-claude.moissinac@telecom-paristech.fr>
>>>>>>
>>>>>>         <mailto:jean-claude.moissinac@telecom-paristech.fr
>>>>
>>>> <mailto:jean-claude.moissinac@telecom-paristech.fr>>> wrote:
>>>>>>
>>>>>>
>>>>>>         > Sorry if my question is very naive, but I'm stuck on this
>>>>>>         for a while
>>>>>>         > if I go to examples in the document
>>>>>> http://www.w3.org/TR/2009/WD-owl2-primer-20090421/
>>>>>>         > I just want to add the following axiom (expressed here in my
>>>>>>         syntax)
>>>>>>         > if
>>>>>>         > ?s :hasParent  ?f
>>>>>>         > Then
>>>>>>         > ?s :hasAncestor ?f
>>>>>>         >
>>>>>>         > I've checked a lot of documents and I don't figure how to do
>>>>>>         it (directly in XML/RDF or interactively with Protégé)
>>>>>>         >
>>>>>>         > Thank you in adavnace for your help
>>>>>>         >
>>>>>>         > --
>>>>>>         > Jean-Claude
>>>>>>         >
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Received on Friday, 31 January 2014 11:15:46 UTC