W3C home > Mailing lists > Public > public-owl-dev@w3.org > October to December 2010

Re: All humans love (all) cats

From: Jie Bao <baojie@gmail.com>
Date: Mon, 4 Oct 2010 17:37:35 -0400
Message-ID: <AANLkTikwFsAJv20GPJk3c2FsgUC8N8XqWOM60x31=85k@mail.gmail.com>
To: Cristian Cocos <cristi@ieee.org>
Cc: public-owl-dev@w3.org
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
>
>
>


Received on Tuesday, 5 October 2010 03:10:12 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:58 GMT