RE: All humans love (all) cats

> 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