- From: Garret Wilson <garret@globalmentor.com>
- Date: Wed, 01 Aug 2007 08:18:25 -0700
- To: Jeremy Carroll <jjc@hpl.hp.com>
- CC: Tim Berners-Lee <timbl@w3.org>, Semantic Web <semantic-web@w3.org>
Jeremy Carroll wrote: > Yes, of course, literals are just another sort of resource. > And yes the design decision to give them a privileged position (i.e. > not requiring the use of the URI namespace), can be questioned. Agreed. > But the basic rationale for having the class rdfs:Literal and some of > the key subclasses such as strings, lang-strings, xsd:integer etc. is > based on engineering utility. Almost all SW applications need to use > strings, and natural-language strings, and integers etc. Thus it is > convenient to standardize on a representation for these. Oh, I agree here as well. I think it's easier to talk about the integer 123 by simply writing 123. (I don't even want to write "123"^^xsd:integer---that's too much for me.) And I want to talk about the string "123" by simply writing "123". (I don't even want to write "123"^^xsd:string---why would I want to do that?) I'd like to simply write 123 and "123" in my RDF/XML and in my N3. I'd like to make my SPARQL queries using 123 and "123". That's a pretty standardized representation, and I'm all for it 100%. Now, how do we represent those thing in the RDF model? Do different sort of things get placed in our RDF data just because we have shortcut representations for them? I don't think so. RDF already uses URIs to identify resources. So what if we all decide that the URI prefix "http://example.com/xsd/integer/" will be used to identify integers, and that the URI prefix "http://example.com/xsd/string/" will be used to identify strings? So you and I can go ahead and write 123 and "123" all day long. In the model, resources identified by URIs <http://example.com/xsd/integer/123> and <http://example.com/xsd/string/123>, respectively, will be created by the processor. I can query for 123 and "123", and the query engine will turn my query syntax into a query for <http://example.com/xsd/integer/123> and <http://example.com/xsd/string/123>, respectively. We're using standardized representations in our serialization and query syntax. We're using consistent representations in the model. The world is happy. 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? 2. Where in all of this is there a need for rdf:datatype? 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? Garret
Received on Wednesday, 1 August 2007 15:18:41 UTC