I was reading what I think is a good introductory book, "A Semantic Web Primer" at the same time reading "OWL and Cardinality".
In the Primer book it states: "...the non-unique-names assumption is the most plausible one to make on the World Wide Web..." Which I didn't think made sense.
In Cardinality: "The difficulty in checking this for consistency is that an <owl:sameAs> statement can make it all valid:
<ns:firstPropertyObject> <owl:sameAs> <ns:secondPropertyObject>" Which did make sense.
The thing that eventually struck me was that the assumption Paul makes, and I have made, is something very common - names are unique. However, this is not the case in OWL: "Just because two names are different does not mean they refer to different individuals."
So using cardinality restrictions, systems can infer that if you have two values for a property when the ontology defines you should have one, it's not that you've broken cardinality, it's that those values are actually the same/equal. In Paul's example sameAs isn't required - firstPropertyOne and firstPropertyTwo are the same. This seems weird, completely backwards and very non-intuitive.
Looking around I found Pellet: An OWL DL Reasoner which says: "In general, a Semantic Web reasoner should handle individuals (provide ABox reasoning), should not make the Unique Name Assumption..."
It doesn't really say, though, why you need non-unique names. It does seem perverse that the basis for this, the URI, is unique.
In fact, the opposite case seems to be well stated in "OWL Flight vs. OWL DL": "We argue that very few equalities can actually be resolved with reasoning and that many derived equalities are actually faulty. Thus, it makes more sense in our opinion to either resolve equalities beyond the logical language or to make strong assumptions on the available knowledge, i.e. assume that each identifier in the knowledge base uniquely identifies an individual..."
It was resolved as an issue by the Web Ontology group by having to use AllDifferent. Where a collection is used hold all your distinct items. This seems like a decision to make the usual case more difficult and less scalable.
3 comments:
Nice round-up of the issues, thanks.
Henry - watch out, you might get called something else ;-)
First, I would like to point out that the paper cited on Pellet is a poster, not a full paper.
Second, and this was unclear, we weren't arguing for general design principles, but simply what was appropriate for being a Semantic Web DL reasoner supporting OWL. Since OWL does not enforce the UNA, a conforming reasoner should work without it. (Note that not all the requirements listed were derived from the nature of OWL; just that this one was primarily).
Third, this is wrong: "It doesn't really say, though, why you need non-unique names. It does seem perverse that the basis for this, the URI, is unique." URIs do not have to be unique. They are encouraged to be, but they need not. Some people think that they are inherently *unambiguous* (i.e., they have only one denotation) but I think that's nonsense too :) (Uniqueness means there's only one name for the thing. Clearly URI's don't require that.) Historically, the lack of UNA was *driven* by the fact that URIs are not unique. Now, whether this is sensible to handle at the logic level is a completely different issue.
Notice also that one might want to distinguish between the UNA and a default uniqueness assumption.
Great postt thankyou
Post a Comment