W3C home > Mailing lists > Public > semantic-web@w3.org > August 2007

Re: RDF's curious literals

From: Garret Wilson <garret@globalmentor.com>
Date: Wed, 01 Aug 2007 09:10:13 -0700
Message-ID: <46B0B065.9060507@globalmentor.com>
To: Story Henry <henry.story@bblfish.net>
CC: Jeremy Carroll <jjc@hpl.hp.com>, Tim Berners-Lee <timbl@w3.org>, Semantic Web <semantic-web@w3.org>

Story Henry wrote:
>
> On 1 Aug 2007, at 17:18, Garret Wilson wrote:
>
>> So now that I've agreed with your points, let me say that your points 
>> beg certain questions, which perhaps you can answer:
>>
>>   1. Where in all of this is there a need for the rdfs:Literal class?
>
> You can make up any class of objects you want. rdfs:Literal is useful.

Wait---can't I already make up any class of objects I want? I thought 
that was what rdf:type was for.

I guess I was looking for more of an answer than "rdfs:Literal is 
useful"---you're just affirming the question. Let me state the question 
again: assuming that your N3 processor and SPARQL engine automatically 
turn 123 and "123" into URI references 
<http://www.example.org/integers/123> and 
<http://www.example.org/string/123>, can you give me any real-life 
example in which the existence of an rdfs:Literal class would bring 
functionality you don't already have?

>
>>   2. Where in all of this is there a need for rdf:datatype?
>
> same as above, it's useful.

Please, Henry, I'm being serious. Affirming the question isn't a serious 
answer. Can you give an example of where rdf:datatype can do something 
that I can't already do using URIs as identifiers and the rdf:type 
property I use for all non-literal resources?

>
>>   3. Where in all of this is there a need for a literal to be
>>      identified *in the model* as something other than a URI?
>
> None. You could do all with URLs but people would balk at you, and it 
> would make writing things down really
> difficult.

Please, Henry, you apparently didn't even read my message! I'm 
advocating writing 123 and "123"! (Hell, I balk at writing 
"123"^^xsd:integer and "123"^^xsd:string!) Nobody is asking you to write 
out a long URI.

RDF doesn't store "123" in the model for typed literals---it stores 
"123"^^xsd:integer or "123"^^xsd:string. If "123"^^xsd:integer and 
<http://example.org/integers/123> are equivalent, and "123"^^xsd:string 
and <http://example.org/strings/123> are equivalent, why would you 
prefer a non-URI sequence of characters over a URI for identification?

This is not about writing out something short versus writing out 
something long. Something long gets stored in the model anyway. Why do 
we have to use a non-URI for literals? Why is "123"^^xsd:integer better 
than <http://example.org/integers/123> ? That is the question.

> In fact you could write an ontology out to do this if you wished.
>
> <http://unicode.org/char/a> = "a" .
>
> and so on for every character in the unicode.
>
> Then you could write out a new model theory, and prove that your URI 
> only model theory was a simplification of the current one, but that 
> they were equivalent.

Henry, this is jumping from apples to oranges, and it's unfair. Nowhere 
in our discussion were we referring to individual Unicode characters, 
either as subjects or object values.

But sure, let's assume that you want to say that my name eg:startsWith 
the letter "G"? Even you would say that this turns into N3 something 
like this:

<uriForMyName> eg:startsWith "G"^^unicode:char.

That's what you would recommend, right? So how is "G"^^unicode:char more 
ridiculous than <http://unicode.org/char/G> ?

You were trying to make my argument look absurd by talking about 
something I was never talking about: referring to Unicode characters. 
When we *do* talk about referring to Unicode characters individually, 
the RDF literal method looks just as ridiculous as anything else.

Garret
Received on Wednesday, 1 August 2007 16:10:29 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:17 GMT