Remember that we are using OWL, which has inheritence. Using an owl hasValue restriction we can have a set of triples specified once, but with the reasoner have be as if each instance has those triples[1]. BTW, I will anticipate the complaint about the OWL reasoner's heaviness. Although we are prototyping with OWL, it may very well be that the constructs we need for this task form a much simpler logic that is tractable[2], or even fairly trivial to work with. For instance, it may be that the run time "reasoner" only has to deal with following subclass, subproperty, and propagating the consequences of hasValue restrictions, and a full fledged reasoner is only used to validate the resolution ontology when it is changed.
I am not sure how owl:hasValue can be used here? The owl:hasValue is intended for a resource, but not the string that IDed the resource right? For instance, if there is an ontology says the rabbit:favoriteFood is ex:carrot. It implies every object of rabbit:favoriteFood is a carrot, but it does not means the property pointing to the same resource, right? There can be two instances of carrots, one at http://example.com/foo and the other one at http://xyz.org/bar. Although both are carrots, but they can have different weights, colors etc., I am not sure how can owl:hasValue help here?

As I replied to David in an earlier email, the only reasonable way to do is to use an ontology to describe the URI's string composition. But the semantics of a string is different from the semantics of the resource identified by the string. To make it work, those statement (or information) must be added somewhere. If it is not added locally (then you would have to rewrite the URI), then it must be added globally. If added globally, it is like put another DNS over existing DNS. If this is the case, shouldn't it be more appropriate done outside of the RDF? Honestly, the more I think about it, the worse I felt about the approach.

Xiaoshu

Xiaoshu

Reply via email to