- From: Pavel Klinov <pklinov@cs.man.ac.uk>
- Date: Mon, 4 Oct 2010 23:06:59 +0100
- To: Cristian Cocos <cristi@ieee.org>
- Cc: public-owl-dev@w3.org
Try Markus' solution, I'm quite sure it will work. Others will correct me if I'm wrong, but I think that the universal role isn't allowed to appear on the left hand side of a chain (it breaks the so called regularity conditions which are required for decidability). Cheers, Pavel On Mon, Oct 4, 2010 at 7:41 PM, 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 > > > -- cheers, --pavel http://www.cs.man.ac.uk/~klinovp
Received on Monday, 4 October 2010 22:07:32 UTC