Re: Range interpretation question.

From: Ian Horrocks (
Date: 04/25/01

On April 25, pat hayes writes:
> >Wolfram Conen <> wrote:-
> >
> > > (a) P may be applied to any resource that belongs to class C
> > > (b) If P is applied to a resource r, r will belong to C
> >
> >I'd say that it depends on the application;
> It can't depend on the application. The language needs to have a 
> clear meaning. If we want both meanings, then the language should 
> provide two different constructions for saying each one unambiguously.
> I also want to know which is meant.
> Pat Hayes

As far as RDFS is concerned, this was discussed some time ago (on this
list and/or rdf-interest) and it was widely agreed that both range and
domain should have (b) style semantics, that is:

Range(P,C) and P(x,y) -> C(y)
Domain(P,C) and P(x,y) -> C(x)

In fact, as I recall it, persons who could best be described as
"influential in W3C" stated that these are the "correct" semantics for
range and domain and that the semantics/restrictions expressed in the
current RDFS specification are simply a mistake.

As far as DAML+OIL is concerned, the above semantics are clearly
specified in the formal description(s) of the language (even if there
is currently some error/ambiguity in the reference document).

I'm not sure that (a) style semantics really expresses anything - by
default we may apply P to any resource we like, so a statement of the
form (a) doesn't place any additional restriction on the set of valid
domain models. If you mean that P may ONLY be applied to a resource
that belongs to class C, then this is rather problematical as it can
lead to non-monotonic reasoning (in a 2 valued logic). e.g., if in my
current KB I am not able to infer that that C1->C, then I can't apply
P to instances of C1, so C1 will be classified as a subclass of the
class "Restriction onProperty P toClass Nothing", i.e., the class of
things that don't have any P property. Now if I add a fact to the KB
that allows me to infer that C1->C, then I have to withdraw my
inference that C1->(Restriction onProperty P toClass Nothing).

This is not to say that this kind of information is not useful in
building ontologies - in fact frame systems/editors often use this
kind of restriction (without worrying about the semantic
implications). While I hate to engage in shameless self-promotion, I
can't resist drawing your attention to a paper I wrote that describes
a principled mechanism for capturing (and exploiting) this kind of
knowledge by tagging concepts with additional information that can
express e.g. what kinds of property may be considered "reasonable" to
be used with a given class:

Finally, it might be worth pointing out that as far as DAML+OIL is
concerned, range and domain restrictions can simply be seen as
"syntactic sugar" - a shorthand for subClassOf axioms of the form:

Thing -> (Restriction onProperty P toClass C)   [Range(P,C)]
(Restriction onProperty P hasClass Thing) -> C  [Domain(P,C)]

Alternative/additional kinds of restriction can be expressed via the
same mechanism, e.g.:

C -> (Restriction onProperty P hasClass Thing)

expresses an existential style of domain constraint, i.e.:

Domain(P,C) and C(x) -> for some y, P(x,y)


This archive was generated by hypermail 2.1.4 : 04/02/02 EST