Re: All humans love (all) cats

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