Re: All humans love (all) cats

Hi Markus & All --

As mentioned off-list to Markus, one can do this rather simply in the system
online at the site below as follows:

*some-person is a human being
some-animal is a cat
------------------------------------------------
that-person loves that-animal
*

So my question is please, what advantages does does the more complicated
method in OWL have?

Please note that I'm a newbie where OWL is concerned, and just a bit puzzled
about what the conceptual complexity overhead may buy.

                                -- Adrian

Internet Business Logic
A Wiki and SOA Endpoint for Executable Open Vocabulary English Q/A over SQL
and RDF
Online at www.reengineeringllc.com
Shared use is free, and there are no advertisements

Adrian Walker
Reengineering

On Fri, Oct 1, 2010 at 2:44 PM, Markus Krötzsch <
markus.kroetzsch@comlab.ox.ac.uk> wrote:

> On 01/10/2010 16:51, Cristian Cocos wrote:
> > How would I write "All humans love all cats" in OWL2 please ? (I'd
> > appreciate a Manchester syntax rendering.) I know how to trick OWL2
> > to say that some fixed specified individual loves all cats, though
> > not the former.
>
> Note that there is a not-so-differently titled research paper on the same
> issue: "All Elephants are Bigger Than All Mice" [1]. The feature used here
> is generally known as a "concept product" (or "class product" in OWL terms).
>
> 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. 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
>>
>>
>
>
> --
> Markus Krötzsch
> Oxford  University  Computing  Laboratory
> Room 306, Parks Road, Oxford, OX1 3QD, UK
> +44 (0)1865 283529    http://korrekt.org/
>
>
>

Received on Saturday, 2 October 2010 13:23:07 UTC