« Return to Thread: class-specific inverse

Re: class-specific inverse

by Lee Feigenbaum-2 :: Rate this Message:

Reply to Author | View in Thread

Uli Sattler wrote:

>
> 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

Right...

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

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
>>
>
>

 « Return to Thread: class-specific inverse