- From: Adrian Walker <adriandwalker@gmail.com>
- Date: Sat, 2 Oct 2010 09:22:35 -0400
- To: Markus Krötzsch <markus.kroetzsch@comlab.ox.ac.uk>
- Cc: public-owl-dev@w3.org
- Message-ID: <AANLkTimH9tV9MZCtNhAW0npnR3voeu-6AB4cZtHdx+aB@mail.gmail.com>
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