class-specific inverse

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. :-)

thanks,
Lee

Received on Monday, 1 June 2009 07:28:00 UTC