- From: Pavel Klinov <pavel.klinov@uni-ulm.de>
- Date: Fri, 31 Jan 2014 12:15:13 +0100
- To: Aidan Hogan <aidan.hogan@deri.org>
- Cc: Enrico Franconi <franconi@inf.unibz.it>, PAUL WARREN <paul.w.warren@btinternet.com>, Dave Reynolds <dave.e.reynolds@gmail.com>, "semantic-web@w3.org" <semantic-web@w3.org>
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