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

Re: literals, again.

From: Patrick Stickler <patrick.stickler@nokia.com>
Date: Fri, 28 Jun 2002 19:22:51 +0300
To: Pat Hayes <phayes@ai.uwf.edu>
CC: RDF Core <w3c-rdfcore-wg@w3.org>
Message-ID: <B942680B.1799B%patrick.stickler@nokia.com>

On 2002-06-28 18:56, "ext pat hayes" <phayes@ai.uwf.edu> wrote:

> 
>> Pat,
>> 
>> I support the "gist" of essentially all that you are saying
>> below, but would offer an even more simplified proposal.
>> 
>> Rather than
>> 
>>>  Jenny ex:age _:y "10" .
>>>  _:y "10" xsd:number _:x .
>>>  Jim ex:age _:x .
>> 
>> simply
>> 
>> Jenny ex:age _:y"10" .
>> _:y rdf:type xsd:integer .
>> Jim ex:age _:y .
> 
> OK, but bear in mind that the subject of the second triple is the
> very same node as the object of the first triple, and so it still has
> the "10" literal label, even though you didn't mention it. So this is
> exactly the same graph as:
> 
> Jenny ex:age _:y "10" .
> _:y "10" rdf:type xsd:integer .
> Jim ex:age _:y "10".

Right.

> Now, that would be nice, but...

I agree.
 
>> so that datatyping is no different than "normal" RDF
>> typing, and the above works perfectly in conjuction
>> with rdfs:range. E.g.
> 
> ....seems to me that it doesn't work, and that we have been here
> before. In fact this is very much like the old P++ proposal that you
> shot down, on the excellent grounds that mere membership in the value
> space cannot be the trigger of a datatype check since two datatypes
> with different lexical2value mappings can have exactly the same value
> space. Which is why we decided to make the actual range itself be the
> trigger, rather than an rdf:type conclusion from the range. (Have you
> changed your mind on that point??)

We discussed this in Bristol. The rdfs:range constraint is indeed
only on the value space of the datatype class, and thus, the
literal node denotes a datatype value, but because we also
know that it is of type rdfs:Datatype, there is the additional
constraint that the value denoted by the literal node is the
specific value to which the lexical form embodied in the label
maps, according to the lexical to value mapping of that datatype.

The rdfs:range semantics tells us the literal node denotes the value.
The rdfs:Datatype semantics tells us the label is the lexical
representation of the value.

The fact that the class extension of the datatype is only its value
space is only a problem for query engines or similar applications
which might separate a lexical form from its original datatype
context, based on the original triple in which it occurs (by e.g.
applying subPropertyOf relations, etc.)

As long as implementers are aware that subPropertyOf and subClassOf
relations are valid for datatype values but not mappings, and
that the original context must be preserved, then we're fine.

>>    ex:age rdfs:range xsd:integer .
>> 
>> Likewise, rather than
>> 
>>>  _:x"10"  rdf:sourceDeclaration  "xml version="1.0"" .
>>>  _:x"10"  rdf:xmlLang  "FR"  .
>> 
>> simply
>> 
>> _:x"10" rdf:type rdf:XML .
>> _:x"10" xml:lang  _:z"fr"  .
> 
> Yes, that is better.
> 
> Pat
> 

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 Friday, 28 June 2002 12:29:32 EDT

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