- 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>
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 UTC