Re: "Language-tagged strings Re: Toward easier RDF: a proposal"

Ah, good topic.

So another thing I don't understand (:-)) is why we have to have language tags on strings at all, and indeed datatypes.
(OK, it's because of XML heritage or something, I guess.)
But we have a perfectly good way of representing knowledge about things.
It is a real pain to create these 3 component literals and to query for different languages and datatypes in SPARQL.
And worse still, if you want to query for strings that may or may not have language tags on, you need to do some real messing about.
I often end up adding @en to all the strings, or removing region tags etc., just so I can do things more easily, which is surely a Bad Thing.

Surely languages and datatypes should simply be RDF properties of Literals, which are 1 component things?
Much easier to explain to developers, and for them to use.
(If indeed they want to use raw RDF.)

> On 23 Nov 2018, at 11:48, Andy Seaborne <> wrote:
> The RDF 1.1 WG did spend some time of this - both on putting the langtag into the lexical space and putting the lang tag into the datatype.  Both are not so easy; in the end the rdf@langString at least meant all literals had a datatype.
> With the lexical form is a pair (string, lang) and squeezing that into a single string, it gets a bit unintuitive when strlen("hello@en") is 8, not 5. SeeAlso rdf:plainLiteral.
> For datatypes, language tags have their own structure and hierarchy (lang-script-region-...) for their requirements which does not really fit with datatype subtyping very well.
> I don't think changes would simplify.
> We have what we have and people have been explaining to the wider community (i.e. it's not just people on this list affected). So "technically better" isn't the criterion, it should be "unlocks potential that is currently, provably blocked".
>    Andy
> On 23/11/2018 08:42, Wouter Beek wrote:
>> Dear David, others,
>> As another attempt at simplifying RDF, would it be possible to do away
>> with the special status of language-tagged strings?
>> In RDF 1.1 literals consist of 3 components: lexical form, datatype
>> IRI, and language tag.  The last component is only used in
>> language-tagged strings.  Would it be possible to define
>> `rdf:langString' as a regular datatype IRI and have literals consist
>> of 2 components instead?
>> RDF 1.1 Concepts and Abstract Syntax currently contains many caveats
>> to accommodate the idiosyncratic nature of language-tagged strings,
>> e.g.,:
>>> Language-tagged strings have the datatype IRI No datatype is formally defined for this IRI because the definition of datatypes does not accommodate language tags in the lexical space. The value space associated with this datatype IRI is the set of all pairs of strings and language tags.
>> Would it be possible to define a regular lexical space, e.g.,
>> containing "hello@en"^^rdf:langString, together with a value-2-lexical
>> and a lexical-2-value mapping?
>> The N3 and SPARQL notation "hello"@en will of course still be
>> available, and will be syntactic sugar for "hello@en"^^rdf:langString.
>> ---
>> Best regards,
>> Wouter Beek.
>> Email:
>> WWW:
>> Tel: +31647674624

023 8061 5652

Received on Friday, 23 November 2018 12:04:00 UTC