You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Bardo Nelgen <ma...@bnnperformances.de> on 2020/01/26 11:17:22 UTC

Launguage type in SPARQL

Hi everyone,

just ran into a more general question.

When using the following construct in SPARQL:

langMatches(lang(?I18nString),?language)

Why MUST ?language be a simple string and MUST NOT be of type 
xsd:language according to 
https://www.w3.org/TR/rdf11-concepts/#h3_xsd-datatypes (which may by 
somebe perceivedas the natural type for a language definition) ?

As always, thanks for any hint.

Best,
Bardo


Re: Launguage type in SPARQL

Posted by Andy Seaborne <an...@apache.org>.
The language tag itself is part of RDF syntax and not an RDF literal.

"foo"@en is an rdf:langString with language component the characters 
'e'-'n' defined by BCP47.

https://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal

Or

Because that is how it works in XML.  xml:lang="fr"

Because that is what BCP47 defines - strings.

     Andy

c.f. xsd:anyURI.

On 26/01/2020 11:17, Bardo Nelgen wrote:
> 
> Hi everyone,
> 
> just ran into a more general question.
> 
> When using the following construct in SPARQL:
> 
> langMatches(lang(?I18nString),?language)
> 
> Why MUST ?language be a simple string and MUST NOT be of type 
> xsd:language according to 
> https://www.w3.org/TR/rdf11-concepts/#h3_xsd-datatypes (which may by 
> somebe perceivedas the natural type for a language definition) ?
> 
> As always, thanks for any hint.
> 
> Best,
> Bardo
> 
>