- From: Aidan Hogan <aidan.hogan@deri.org>
- Date: Fri, 31 Jan 2014 12:12:48 -0300
- To: Pavel Klinov <pavel.klinov@uni-ulm.de>
- 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>
Pavel, Just to clarify, I think we're in violent agreement. :) On 31/01/2014 08:15, Pavel Klinov wrote: > 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. Sure, I get it. But while you say that Enrico's point was different *and* valid, I was saying that Enrico's point was valid *but* different. We had been discussing things like transitivity of properties and I felt that getting into property restrictions on classes was getting into a different matter. But yes, I understand Enrico's point. > 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. Sure. > 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. Sure, but please note that in my previous mail I already briefly acknowledged all of this: "Indeed there's some notion of "inheritance" in an object-oriented sense here (*as well as for the other property-based restrictions on classes*)." To clarify, by "property-based restrictions on classes" I meant things like someValuesFrom, allValuesFrom, hasValue, the cardinalities, hasSelf, hasKey ... > 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. Sure. > 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. +1 ... and yep, I still maintain my original point that it is *not* helpful to talk about OWL subsumption using phrases like inheritance. :) /Aidan > 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 15:13:26 UTC