Re: Proposal for ISSUE-12 language-tagged literals

On 20 Jul 2011, at 19:54, Andy Seaborne wrote:
> On 20/07/11 19:36, Richard Cyganiak wrote:
>> On 16 Jul 2011, at 16:52, Andy Seaborne wrote:
>>> I'd rather make DATATYPE("foo"@en) be honest and say that it
>>> returns datatype rdf:LangString.
>> 
>> You cannot do so without a hack.
> 
> You've lost me.  It puts literals in the RDF graph (old speak: abstract syntax) and they really do have a datatype.  

Datatypes currently are the part of a typed literal that determines how to get from a lexical form to a value.

What you propose is that datatypes should also be used for certain *non-typed* literals, and *without* mapping lexical forms to values.

That's why I call it a hack.

I'm not saying that this makes it a no-go. But if the hack exists only to make DATATYPE("foo"@en) behave more consistently in SPARQL, then I'd rather see the hack in SPARQL.

> It then works for RIF and anything else built to work with RDF.

No, unfortunately it doesn't, at least as far as I can tell. They actually want to have lexical forms for language-tagged literals, so that they can stuff the <string,langtag> pairs into legacy systems that don't support language tags. (Or, perhaps closer to the truth, so that they can be compatible with RDF's data model in their specs without actually supporting language tags in their literal design.)

Thought experiment: If DATATYPE in SPARQL was called something else instead, say, “TYPE” (and it would return some magic constant for IRIs and blank nodes), would you still advocate making rdf:LangString a datatype instead of a class? If yes, then why?

Best,
Richard

Received on Wednesday, 20 July 2011 19:54:03 UTC