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

>Thanks for the feedback.

you're welcome.

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

>Can you walk us through an example of how rdfs:domain as currently
>defined allows you to validate some RDF model?

I am not sure how much use it would be to the group in general.  We have
defined an RDF compliant mini language (akin to RSS) called the 'Resource
Navigation Framework' (RNF), which uses multiple disjunctive domain and
range predicates mostly to define the vocabulary but in one instance to
allow association of multiple resource types as potential values of a single
Property.  The validity checking is not currently done by the parser, but by
the DBMS (sorry).

We are currently utilising it to implement shrink-wrap web site software
working from metadata.  Further more adventurous applications are also in
the pipeline.  I would like to formally announce the existence of this
technology to the group and go into more details once it is more mature, but
this is currently some way off.

<plug> We are a small company and are always on the lookout for sponsors /
partners if anyone would like to help develop this technology.  See and please talk to us. </plug>

>> 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
>> 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
>> always infer that the resource is of type rdfs:Resource.
>Yes, a resources type (or one of its types) will often be given. The Web
>has a single space of resource identifiers (URIs) but allows many
>different ways of carving that space up into classes. Correspondingly,
>RDFS allows a resource to be described as being a member of many
>classes; not necessarily from the same hierarchy.


>So there are likely to
>be more rdf:type statements inferrable than explicitly represented when  a
>resource is mentioned.

Individual documents are likely to have a singular view of the world
(possibly formed from several schemas) => a singular way of carving up
resources.  This is not to say that the same document cannot assign (and
explicitly state) more than one type for the same resource - ours do.

Yes, the Description tag allows several documents to amalgamate extra
meaning to an individual resource.  However, I would like to think that each
individual document will be true to its own ontology - associating types and
predicates in ways that their ontology states is valid.  Hence I believe you
would get more types explicitly stated than you imply (for each resource it
is likely to be one per description tag).

>> * b) is fundamental to RDF-Schema and a) is an adjunct
>> As defining model validity is RDFS's primary purpose, and inferring types
>> a secondary concern I strongly feel that b) is the way to go.
>RDFS does address this (validity; constraint checking), but the spec
>doesn't make this its sole concern.
>	RDFS CR Abstract:
>	This specification describes how to use RDF to describe RDF
>	vocabularies. The specification also defines a basic vocabulary for this
>	purpose, as well as an extensibility mechanism to anticipate future
>	additions to RDF.

No, not its sole concern, its *primary* concern.

Where does it say RDFS is designed to facilitate inference?  I assume it is
there and left intentionally vague to future proof the spec.  From the
context of the spec I got the impression it referred to extending constraint
semantics and datatypes for Literals.

>> >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
>> model (where anything can be said about anything) in such an open
>> environment as the Web (where anyone can say anything).
>IMHO it's not about enforcing in the sence of policing and punishment
>while believing any and all RDF statements found on the Web. More about: if
>believe the RDF statements I find in Schema s1 and Schema s2, what can I
>conclude about this heap of instance data.

Ok, *enforce* was the wrong word to use (appologies for my sloppiness).  I
am not suggesting you would want to police RDF statements, far from it.  The
point I am trying to make is that you cannot rely on only encountering a
single rdfs:domain (or rdfs:range) for any Property definition.  What do you
do if s1 defines rdfs:range r1 for Property p1 and s2 defines rdfs:range p2
for Property p1?  Individually, s1 & s2 are valid - when combined they are

Two possible (workable) solutions I can think of are (and I am not stating
which I prefer):

1) Amalgamate RDFS semantics - both r1 and r2 apply.
2) Make RDFS definitions closed - you can only define semantics for RDFS
definitions you 'own'.  If p1 mapped to
only s1 ( could define constraints and s2 is

[<snip> stuff about "natural kinds" </snip>]

>Um... dunno if that helped.

Yes, thanks.

>> 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
>> recourse, therefore conclude stuff based on your viewpoint.
>But... this notion of a viewpoint conflates 'all the rdf statements I have
>to hand and that I believe' with a subjective frame of reference that is
>independent of the current set of statements one knows about. We all agree
>that we won't believe all possible RDF statements at once, nor that we'll
>have them loaded into a local database at once. But we want to reason
>about some local collection of data while bearing in mind that there are
>more facts out there that we'd believe given half the chance.

I'm not altogether sure of your point here.  The frame of reference *is*
'all the rdf statements I have to hand and that I believe'.  The subjective
part comes in because you only ever have partial information and you can
only infer based on your current knowledge - another RDF application with a
different set of statements will infer different things.  Also you must
decide which statements to believe and which to reject based on some
arbitrary critieria that will not be consistent between RDF applications.
Both aspects lead to different applications working from different semantic
models - i.e. subjective views of the total semantics available on the web.



Received on Thursday, 14 September 2000 13:42:56 UTC