W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > March 2002

Re: A very short list of residual datatyping issues (just one ;-)

From: Patrick Stickler <patrick.stickler@nokia.com>
Date: Tue, 12 Mar 2002 15:58:09 +0200
To: ext Brian McBride <bwm@hplb.hpl.hp.com>, RDF Core <w3c-rdfcore-wg@w3.org>
Message-ID: <B8B3D611.1086A%patrick.stickler@nokia.com>
On 2002-03-12 15:01, "ext Brian McBride" <bwm@hplb.hpl.hp.com> wrote:

> At 13:03 12/03/2002 +0200, Patrick Stickler wrote:
> [...]
>> Given
>> 
>>    age rdfs:range xsd:integer .
>> 
>> Then
>> 
>>    Bob age [ a xsd:integer; xsd:integer "35" ] .
>> 
>> works OK, since the bNode is a member of the value
>> space of xsd:integer; but
>> 
>>    Bob age "35" .
>> 
>> generates a range constraint conflict since "35" is
>> a member of the lexical space, not value space of
>> xsd:integer.
>> 
>> This problem does not exist with a union interpretation.
> 
> If that is what you want, wouldn't one say:
> 
>  age rdfs:drange xsd:integer?

The point I am trying to make here is that with the
present treatment of datatype URI's denoting only the
value space rather than the entire datatype, there is no
way to employ generic RDFS range mechanisms without barring
use of the inline idiom.

The rdfs:drange property defines an extra-RDF testable
constraint, not a constraint that can be tested "below
the line".

This is because rdfs:drange requires complete knowledge
of the specific datatype in order to determine if the
constraint is satisfied. The rdfs:drange property does
not assert any rdfs:range like constraint based on
rdf:type assertions.

The rdfs:range property, however, is fully generic, being
based solely on rdf:type assertions.

In the context of needing to validate locally/explicitly
typed values in terms of rdfs:range constraints, we can
define the following implication for any datatype triple:

   {
      ?x ?d ?l .
      ?d rdf:type rdfs:Datatype .
      ?l rdf:type rdfs:Literal .
   }
   log:implies
   {
      ?x rdf:type ?d .
   } 

and then define an rdfs:range constraint, e.g.

   age rdfs:range xsd:integer .

to constrain locally/explicitly typed values to nodes
of rdf:type xsd:integer.

Then, a generic RDF Schema validator, testing range
constraints against local type assertions can test
the validity of all datatype triples without having
to know anything at all about the actual datatypes.

BUT, doing so means that the inline idiom is not
allowed, since the datatype URI denotes only the value
space, and lexical forms are not members of the value
space.

If, however, the URI denotes the union of the lexical
and value spaces, there is no problem. Both idioms
define members of the datatype class and thus either
idiom is compatable with the use of rdfs:range.

Finally, there is then no need for rdfs:drange,
since rdfs:range can then do the job just fine by
itself, and we can save users the need to learn any
new vocabulary.


Patrick

--
               
Patrick Stickler              Phone: +358 50 483 9453
Senior Research Scientist     Fax:   +358 7180 35409
Nokia Research Center         Email: patrick.stickler@nokia.com
Received on Tuesday, 12 March 2002 08:56:10 EST

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 09:46:16 EDT