- From: Swanson, Tim <tim.swanson@semanticarts.com>
- Date: Mon, 8 Oct 2007 14:39:45 -0600
- To: "John McClure" <jmcclure@hypergrove.com>, "Owl Dev" <public-owl-dev@w3.org>
John, The problem here is with the way that subproperties work. If A is a subproperty of B, then A implies B but not vice versa. In your example below, 'brother' is a subproperty of 'sibling', yet you assert (:John :sibling :Paul). The reasoner can make no inference from this. The fact that 'Paul' satisfies the range of 'brother' is not reason enough to assert the object property relationship. In the simplest terms I can think of, the problem with the example you gave is that an OWL reasoner can only infer "up" the property hierarchy (i.e. from subproperties to superproperties) and not "down" (i.e. from superproperties to subproperties). Ideally, what you would want in this situation is some sort of "property union". This would allow you to assert that that 'siblingOf' is the union of 'brotherOf' and 'sisterOf'. That would allow you to infer one property when the other has been ruled out (assuming the superproperty is present). In this situation, if you had the following facts: :sisterOf rdfs:domain :Female :Male owl:disjointWith :Female :Paul rdf:type :Male :Paul :siblingOf :John Then you could infer (:Paul :brotherOf :John) because (1) they are known to be siblings, and (2) Paul does not belong to the domain of 'sisterOf'. Unfortunately, things are not so simple. Just a thought, Tim Swanson Semantic Arts, Inc. Fort Collins, Colorado > -----Original Message----- > From: public-owl-dev-request@w3.org [mailto:public-owl-dev- > request@w3.org] On Behalf Of John McClure > Sent: Monday, October 08, 2007 1:01 PM > To: Owl Dev > Subject: RE: Inferring Properties based on Types > > > >>> (?x :hasSibling ?y) > >>> :Male(?y) > >>> => > >>> (?x :hasBrother ?y) > > > >It isn't possible in either OWL or OWL 1.1. > > What? I must not understand WHY this is being said, because I'm now > hearing that > this simple requirement is somehow ambiguous enough that a special, > exceedingly > complicated set of axioms is required using OWL 1.1 keywords! Can > someone > explain the problems in more layman terms? With RDF/XML as below, a > reasoner > should identify Paul as brother of John -- if it can't, without all the > rigamorol outlined in recent posts (manman?), then SOMETHING seems > terribly > wrong here. If you know a link that provides layman explanation(s) > that would > be great too. Thanks. > > <owl:Class rdf:ID="HumanBeing"/> > <owl:Class rdf:ID="HumanMale"> > <rdfs:subClassOf rdf:resource='#HumanBeing'/> > </owl:Class> > <owl:ObjectProperty rdf:ID='sibling'> > <rdfs:domain rdf:resource='#HumanBeing'/> > <rdfs:range rdf:resource='#HumanBeing'/> > </owl:ObjectProperty> > <owl:ObjectProperty rdf:ID='brother'> > <rdfs:domain rdf:resource='#HumanBeing'/> > <rdfs:range rdf:resource='#HumanMale'/> > <rdfs:subPropertyOf rdf:resource='#sibling'/> > </owl:ObjectProperty> > > <HumanBeing rdf:ID='John'/> > <sibling> > <HumanMale rdf:ID='Paul'/> > </sibling> > </HumanBeing> > >
Received on Monday, 8 October 2007 20:37:10 UTC