Re: All humans love (all) cats

Thanks Markus, that's a nice summary of alternatives (best if you explain that by "anIndividual" you mean any individual that creates a coreference between the rolified classes :)).

Moreover, it'd be great if you publish these (logical) design patterns into the ODP repository [1] for the common good.

Cheers
Aldo

[1] http://ontologydesignpatterns.org/wiki/Submissions:LogicalODPs

On 1 Oct 2010, at 20:44, Markus Krötzsch 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/
> 
> 



_____________________________________

Aldo Gangemi
Senior Researcher
Semantic Technology Lab (STLab)
Institute for Cognitive Science and Technology,
National Research Council (ISTC-CNR) 
Via Nomentana 56, 00161, Roma, Italy 
Tel: +390644161535
Fax: +390644161513
aldo.gangemi@cnr.it
http://www.stlab.istc.cnr.it
http://www.istc.cnr.it/createhtml.php?nbr=71
skype aldogangemi
okkam ID: http://www.okkam.org/entity/ok200707031186131660596

Received on Sunday, 3 October 2010 15:50:24 UTC