- From: Ivan Herman <ivan@w3.org>
- Date: Tue, 02 Jun 2009 14:47:19 +0200
- To: Rinke Hoekstra <hoekstra@uva.nl>
- CC: Lee Feigenbaum <lee@thefigtrees.net>, Uli Sattler <sattler@cs.man.ac.uk>, public-owl-dev@w3.org
- Message-ID: <4A251F57.4030403@w3.org>
This looks like a nice and cute solution... Pity it cannot be expressed in OWL 2 RL (RL does not have a self restriction...). Oh well, one cannot get it all... Ivan Rinke Hoekstra wrote: > Hi, > > On 1 jun 2009, at 16:44, Lee Feigenbaum wrote: >>> But, if you have >>> Springer publishes YourBook and YourBook is an instance of Book, >>> then this does *not* entail Springer publishesBook YourBook >> >> ...But this is the part I'm asking how to do :-) > > You can do this using complex role inclusion axioms (role chains) and > marker properties [1]: > > - add an object property 'isBook' > - put a self restriction on isBook on Book: Book subClassOf isBook some > self > - add a role chain definition to publishesBook: publishes o isBook -> > publishesBook > - (publishesBook does not have to be a subproperty of publishes) > > What happens is that any individual of type Book (e.g. YourBook) will > 'get' an isBook relation with itself. Given a publisher individual > (Springer) that has a publishes relation with YourBook, these properties > will form a chain publishes, isBook... which is a sub property of > publishesBook, and therefore the relation publishesBook will relate > Springer to YourBook. > > Obviously you can easily do the same for publishesNewspaper &c. > > Alternatively, you can do the same for just the inverse (without a > 'publishes' property): isBook o publishedBy -> bookPublishedBy > Add publishesBook as inverse of bookPublishedBy to get the relation you > wanted. > > Oh, and [2] > > -Rinke > > [1] shameless self-advertisement: > http://www.amazon.com/Ontology-Representation-Intelligence-Applications-Dissertations/dp/1607500132/ref=sr_1_1?ie=UTF8&s=books&qid=1243929407&sr=8-1 > > > [2] http://www.webont.org/owled/2009/ > >> >> >> Alan gave me a pointer that I'll dig through a bit later. >> >> Lee >> >>> (the "range" only works in one direction, i.e., if Springer >>> publishesBook YourBook and the range of publishesBook is Book, >>> *then* YourBook is an instance of Book --- but not the other way round) >>> Did this answer your question? Cheers, Uli >>>> thanks, >>>> Lee >>>> > > > > --- > Drs Rinke Hoekstra > > Leibniz Center for Law | AI Department > Faculty of Law | Faculty of Sciences > Universiteit van Amsterdam | Vrije Universiteit > Kloveniersburgwal 48 | De Boelelaan 1081a > 1012 CX Amsterdam | 1081 HV Amsterdam > +31-(0)20-5253499 | +31-(0)20-5987752 > hoekstra@uva.nl | hoekstra@few.vu.nl > > Homepage: http://www.leibnizcenter.org/users/rinke > > > > > > -- Ivan Herman, W3C Semantic Web Activity Lead Home: http://www.w3.org/People/Ivan/ mobile: +31-641044153 PGP Key: http://www.ivan-herman.net/pgpkey.html FOAF: http://www.ivan-herman.net/foaf.rdf
Received on Tuesday, 2 June 2009 12:48:04 UTC