Re: stating that something doesn't exist

On May 21, 2008, at 5:10 PM, Johnson, Matthew C. (LNG-HBE) wrote:

> Hi,
>
> I’m slowing soaking in what OWL can and cannot do and after reading  
> the “Lessons For Ontology Writers” post [1] by Ian Davis, I thought  
> I’d go ahead and ask this capabilities question here.

I'd be interested in your (and others students of OWL) opinion on the  
document that is being produced by the OWL Working group: http:// 
www.w3.org/2007/OWL/wiki/Primer

The document is a work in progress and frank and constructive reviews  
would be tremendously useful towards the end of having useful  
documentation produced by our team.

>  In OWL, can you directly define a property that says that  
> something does not occur.  My current use-case is in determining  
> hyper-linking relationships between various publications.  The  
> following:
>
> mysch:Pub a rdfs:Class .
> mysch:linksTo a rdf:Property .
>
> mypubs:p1 a mysch:Pub .
> mypubs:p2 a mysch:Pub .
> mypubs:p3 a mysch:Pub .
>
> mypubs:p1 mysch:linksTo mypubs:2 .
> mypubs:p3 mysch:linksTo mypubs:2 .
>
> Lets me say that pub 1 links to pub 2 and that pub 3 links to pub  
> 2.  However, if I understand the open-world assumption, I cannot  
> assume that pub 2 does not link to pub 3.  I would need to define  
> something like:
>
> mysch:notLinksTo a rdf:Property .
>
> to explicitly state this fact that pub 2 does not link to pub 3.

Just to check: How do you intend that we know this? Is it because you  
are asserting that
a) Everything you have said is every positive fact there is?
b) Because if you produce a document in which you assert mypubs:p2 a  
mysch:Pub. without asserting any links in that document, we should  
assume there is no further mysch:linksTo relations that it is the  
subject of?
c) ?

> My question is whether it is possible in OWL to define a property  
> whose range of acceptable instances is the list of instances that  
> do not exist as an object in a mysch:linksTo statement (for a given  
> publication)?

You can use cardinality restrictions to locally close off  
possibilities. If you mean to say that mypubs:p2 doesn't have any  
values for mysch:linksTo, then you can say:

Individual(mypubs:p2 type(Restriction(mysch:linksTo maxCardinality(0)))

Similarly, you can assert that p1 and p3 each have has one  
mypubs:linksTo value.

I'm not completely clear on your question. You want a mypubs:p1 have  
a property mysch:notLinksTo whose values are (the continually growing  
set) of publications except for mypubs:2?

I think you might think you want this, but I'm sure you don't. It  
means that you will have N^2 relations, if N is the number of  
publications. Rather, you want to ask, for a given publication ?P,  
whether mypubs:p1 mysch:LinksTo ?P and get a definitive answer. Using  
the cardinality restriction as I show, and an OWL reasoner, the  
answer is yes.


-Alan

Received on Thursday, 22 May 2008 02:56:59 UTC