- From: Uli Sattler <sattler@cs.man.ac.uk>
- Date: Mon, 1 Jun 2009 12:06:15 +0100
- To: Lee Feigenbaum <lee@thefigtrees.net>
- Cc: public-owl-dev@w3.org
On 1 Jun 2009, at 08:27, Lee Feigenbaum wrote: > OK, so I always feel very ignorant asking OWL questions, so > apologies in advance. The subject of the email is probably pretty > poor also. :-) > > I'm wondering if there's anyway to assert the following in OWL. > (very contrived example, since it's 3am and off the top of my head) > > Book, Magazine, Newspaper are each a subclass of Publication. > > Publication is the domain of a property published_by which relates a > publication to its publisher. > > I have 3 other properties as well: > > * publishes_book relates a publisher to a book that the publisher > publishes. > * publishes_magazine relates a publisher to a magazine that the > publisher publishes. > * publishes_newspaper relates a publisher to a newspaper that the > publisher publishes. > > I'd like X published_by P to entail P publishes_book X iff X > rdf:type Book, and similarly for magazine and newspaper. > > That is, I'm wondering if there's a way to say that published_by is > the inverse of the other 3 properties in (and only in) the context > of the appropriate subclass. > > (I know this particular example would make a lot more sense with a > reusable "publishes" property instead of the specific ones, but then > I don't get to ask this question.) > > Anyway, please let me know if this makes no sense and I'll either > try to clarify it or wander meekly back into the corner of my OWL > ignorance. :-) > ok, let's see: you have classes Publisher, Publication, with subclasses Books and Newspaper, etc. Then you can have properties publishes with - domain Publisher (if you like) and - range Publication (if you like) and - inverse publishedBy (if you like) and - subproperties publishesBook (with range Book) and publishesNewspaper (with range Newspaper)... thus you have that, if Springer publishesBook YourBook, then this entails (due to subproperty) Springer publishes YourBook and thus also YourBook publishedBy Springer (due to inverse) and YourBook being an instance of Book and Publication and Springer being an instance of Publisher But, if you have Springer publishes YourBook and YourBook is an instance of Book, then this does *not* entail Springer publishesBook YourBook (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 >
Received on Monday, 1 June 2009 11:05:16 UTC