Re: Some thoughts on the semantics of domain and range (was: Re: RDFS bug "A property can have at most one range property")

This touched a raw nerve for me.  Our current implementation works on the
basis of disjunctive semantics for multiple rdfs:domain and ant:range
properties (the latter is our own specially recognised CostraintProperty to
work around the fact that RDFS states that multiple rdfs:range properties
are illegal).

>On the net, disjunctive semantics for range/domain can be a
>real problem. Lets assume that we know that the domain for
>an arc foo is the Class Bar and that a resource baz has the
>arc foo. With disjunctive semantics, the domain information
>is pretty much useless to us since it does not allow us to
>conclude anything.

It is definately not useless.  It is an essential part of RDF-Schema that
makes assertions about RDF model validity.

Let's try to get something clear here.  Natalya highlighted a very important
point through the person / animal / tangibleThing example.

 [1] http://lists.w3.org/Archives/Public/www-rdf-interest/2000Sep/0142.html

The argument seems to be:
a) certainty when inferring a resource's type from the predicates it
exhibits
vs
b) being able to define model validity constraints in a far more refined and
accurate way.

Arguments:
* b) is fundamental to RDF-Schema and a) is an adjunct
* a resource's type will be given explicitly in alot of cases
* In the absence of an explicit type, and more than one rdfs:domain you can
always infer that the resource is of type rdfs:Resource.

As defining model validity is RDFS's primary purpose, and inferring types is
a secondary concern I strongly feel that b) is the way to go.

>After all, somewhere out there on the web could be another
>domain statement for foo. We could make a CWA and conclude
>that baz is an instance of Bar and if we ever find another
>domain statement for foo, retract our original conclusion.

Indeed.

The point about this is that you can never enforce a single domain (or
indeed range) constraint  on every Property definition with such an open RDF
model (where anything can be said about anything) in such an open
environment as the Web (where anyone can say anything).

From an application perspective, the only thing left to go on is your
current frame of reference, or 'viewpoint', you get from the RDF model
elements available to you.  Your viewpoint may be a single RDF document, it
may be a collection of documents, it may even be a DBMS.

After all, we as humans cope with this fundamental aspect of life in this
way... welcome to the real world!

>The place where the single domain/range requirement hurts
>is when the range or domain of an arc tends to be
>"oddly shaped", i.e., not have a single class corresponding
>to it, but is a conjunct or disjunct of mulitple classes
>where the conjunct/disjunct does not define a
>"natural kind" (as in Quine's use of the term "natural
>kind"). Non-natural kinds are a problem all around.

I'm not sure what you mean.  What is a "natural kind"?


In summary:
* objectivity about all RDF statements on the entire Web is going to be
impossible - subjectivity (relative to a 'frame of reference') is the only
recourse, therefore conclude stuff based on your viewpoint.
* rdfs:domain is _very_ useful as it currently stands for asserting model
validity (albeit based on your current frame of reference).
* although rdfs:range could be restricted to at most one per Property
definition given a frame of reference, it is far more useful to allow
multiple disjunctive semantics here as well for more refined validity
assertions.

Lee

Received on Thursday, 14 September 2000 05:22:05 UTC