- From: Jie Bao <baojie@gmail.com>
- Date: Mon, 4 Oct 2010 17:37:35 -0400
- To: Cristian Cocos <cristi@ieee.org>
- Cc: public-owl-dev@w3.org
- Message-ID: <AANLkTikwFsAJv20GPJk3c2FsgUC8N8XqWOM60x31=85k@mail.gmail.com>
Hi Cristian I created a toy ontology (attached) using Protege 4.1 beta with the built-in HermiT 1.3.0 reasoner. It indeed infers that "Popeye love Tom" (Peopey is a Human and Tom is a Cat) I'm not sure why Pellet can't recognize complex subproperty axioms, maybe some Pellet expert on the list can help? Jie On Mon, Oct 4, 2010 at 14:41, Cristian Cocos <cristi@ieee.org> wrote: >> Jie's below explanation shows a workaround that can be used for OWL 2. >> This indirect encoding may not work well in practice, since tools for >> modelling and reasoning will not recognise that you only want to make a >> very simple statement when using the below axioms. > > I tried implementing Jie's suggestion and, surely enough, Pellet slapped me > with an "UnsupportedFeatureException: Unsupported axiom: Ignoring > transitivity and/or complex subproperty axioms for love" error message. Is > this why you think this type of encoding may not work well? Why is it that > Pellet and the other reasoners I tried balk at this? By the looks of it, > your suggestion might not either, would it? > > Thanks, > > C > >> There are other >> possible encodings that may or may not work better in specific >> situations. Here is one more: >> >> EquivalentClasses( :Human ObjectHasValue( :pHuman :anIndividual ) ) >> EquivalentClasses( :Cat ObjectHasValue( :pCat :anIndividual ) ) >> SubObjectPropertyOf( ObjectPropertyChain( >> :pHuman >> ObjectInverseOf ( :pCat ) >> ) :love) >> >> Here :pCat, :pHuman, and :anIndividual are auxiliary entities not used >> anywhere else. Manchester Syntax would be something like this: >> >> ObjectProperty: love SubPropertyChain: pHuman o inv(pCat) >> Class: Cat EquivalentTo: pCat value anIndividual >> Class: Human EquivalentTo: pHuman value anIndividual >> >> Regards, >> >> Markus >> >> [1] http://korrekt.org/page/Elephants >> (this is a special case of DL Rules; see my dissertation for an >> extended >> discussion: http://korrekt.org/page/PhD_thesis) >> >> >> >> On 01/10/2010 17:13, Jie Bao wrote: >> > Cristian >> > >> > I guess you need a rule like Human(x),Cat(y) -> love(x,y) >> > >> > The trick is to use self restrictions, the top property and property >> > chains to connect all x and y. >> > >> > in Functional-Style Syntax >> > >> > EquivalentClasses( Human ObjectHasSelf( ex:pHuman ) ) >> > EquivalentClasses( Cat ObjectHasSelf( ex:pCat ) ) >> > SubObjectPropertyOf( ObjectPropertyChain( ex:pHuman >> owl:topObjectProperty >> > ex:pCat ) ex:love) >> > >> > or in Manchester Syntax >> > >> > Class: Human EquivalentTo: ex:pHuman Self >> > Class: Cat EquivalentTo: ex:pCat Self >> > ObjectProperty: ex:love SubPropertyChain: ex:pHuman o >> > owl:topObjectProperty o ex:pCat >> > >> > Wish that helps >> > >> > Jie > > >
Attachments
- application/octet-stream attachment: Ontology1286226582906.owl
Received on Tuesday, 5 October 2010 03:10:12 UTC