W3C home > Mailing lists > Public > www-rdf-interest@w3.org > September 2003

identifiers and literal semantics

From: Garret Wilson <garret@globalmentor.com>
Date: Sat, 06 Sep 2003 13:51:15 -0700
Message-ID: <3F5A48C3.2040205@globalmentor.com>
To: www-rdf-interest@w3.org

Maybe I'm misunderstanding literals, because I'm having a bit of a 
problem using them and understanding how they work with identifiers. 
Please let me know where I'm going wrong.

As I understand them, a literal is simply a lexical representation of 
some value. The string "5", for instance, stands for the value of the 
fifth counting number, but there could be other lexical representations 
for the same value (e.g. "V" in Roman numerals, or the Urdu character 
for "5").

But isn't this "thing" that the literal represents a resource? How do I 
identify that "thing" so that I can represent it later?

Let me ask a different way: what if I want to represent "5" the Unicode 
character---or better yet, a string of Unicode characters of count==1 
containing one character: '5'. Maybe I could use the lexical value "5" 
to represent the string "5" with a data type of xsd:string. That's fine, 
so far, but how do I *identify* the string of characters I'm talking 
about---"5"?

Here's an example. Let's make an ontology for representing muliple 
choice questions. It might be used like this:

<rdf:Description>
   <q:question>What is the six-letter name used when referring to the 
standard computer keyboard?</q:question>
   <q:choice>ABCDEF<q:choice>
   <q:choice>QWERTY<q:choice>
</rdf:Description>

I want to specify the answer:

<q:answer rdf:resource="...#qwerty">

But I'm not allowed to identify the resource represented by the literal 
"qwerty" (although we know that it's just a string of characters---'Q', 
'W', 'E', 'R', 'T', 'Y').

One might say to simply use the literal again, since that maps to the 
same value:

<q:answer>QWERTY</q:answer>

Do I really have to duplicate the entire lexical identifier, instead of 
using a URI? How would I refer to this choice, for example?

<q:choice>Add two quarts of water to the water that is already starting 
to boil on the stove.<q:choice>

<q:answer>Add two quarts of water to the water that is already starting 
to boil on the stove.<q:answer>

Someone might suggest to use another level of indirection, like this:

<rdf:Description>
   <q:question>
     <rdf:Description>
       <rdf:value>What is the six-letter name used when referring to the 
standard computer keyboard?</rdf:value>
     </rdf:Description>
   </q:question>
   <q:choice>
     <rdf:Description>
       <rdf:value>ABCDEF</rdf:value>
     </rdf:Description>
   <q:choice>
   <q:choice>
     <rdf:Description rdf:about="#qwerty">
       <rdf:value>QWERTY</rdf:value>
     </rdf:Description>
   <q:choice>
   <q:answer rdf:resource="...#qwerty">
</rdf:Description>

Not very pretty, but it does the trick---*syntactically*. But are the 
semantics of this? I'd venture that the second choice is a resource, and 
that resource has a rdf:value property with a value of "QWERTY", and we 
know that because the lexical value of the rdf:value property value is 
"QWERTY", which maps to the xsd:string "QWERTY".

But that's not the semantics I want---I want to say, "The second choice 
is a resource, and that resource is of type xsd:string and has the value 
"QWERTY"? That's what I started out with---but is there no way to 
identify later the object of that statement without simply duplicating 
the entire lexical representation?

Thanks in advance,

Garret
Received on Saturday, 6 September 2003 16:53:26 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:02 GMT