- From: Alan Ruttenberg <alanruttenberg@gmail.com>
- Date: Wed, 21 May 2008 22:56:10 -0400
- To: "Johnson, Matthew C. (LNG-HBE)" <Matthew.C.Johnson@lexisnexis.com>
- Cc: <semantic-web@w3.org>
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