- From: Cristian Cocos <cristi@ieee.org>
- Date: Mon, 4 Oct 2010 15:41:03 -0300
- To: <public-owl-dev@w3.org>
> 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
Received on Monday, 4 October 2010 18:44:16 UTC