On 20 Jun 2011, at 12:15, Reto Bachmann-Gmuer wrote:

> Currently the literal factory returns xsd:String-literals for strings (the
> literal factory only produces typed literals). By contrast EasyGraph (which
> is imported by default on the shell converts to Plain Literals as the
> following Tests shows:
> 
> @Test
>    def useStringAsObject {
>        val t = new TripleImpl(new UriRef(("http://example.org/subject";)),
> new UriRef(("http://example.org/predicate";)), "a value")
>        Assert.assertEquals(new PlainLiteralImpl("a value"), t.getObject)
>    }
> 
> I think for strings that are not natural language it is better to use
> xsd:String, so I suggest only to convert literals with a specified language
> implicitly to plain literals and use xsd:String otherwise.
> 
> Any other opinion on this?

Is there a semantic difference between "hello" and "hello"^^xsd:string ?

I think there is not, and I'd hope that in the RDF DBs all sss^^xsd:string get 
converted
to pure sss strings . In the syntax I can see that there is a difference, in 
that if in rdfa someone
puts the language tag somewhere, then, when someone writes "hello" it will be 
parsed as
"hello"@en, which is different. But then that would be an issue for parsers.

I suppose one should be consistent, but I am not sure which way one should be 
consistent in.
I doubt we have very good reason either way, so whatever is chosen I'd flag it 
as arbitrary, until
we have a good reason for why we think a choice is necessary.

Henry


> 
> Cheers,
> Reto

Social Web Architect
http://bblfish.net/

Reply via email to