diff --git a/spec/index.html b/spec/index.html
index bd59bc3..d40c513 100644
--- a/spec/index.html
+++ b/spec/index.html
@@ -718,7 +718,9 @@
Literals
non-empty language tag as defined by [[!BCP47]]. The
language tag MUST be well-formed according to
section 2.2.9
- of [[!BCP47]].
+ of [[!BCP47]],
+ and MUST be treated consistently, that is, in a case insensitive manner.
+ Two language tags are the same if they only differ by case.
if and only if the datatype IRI is
http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString
,
a non-empty language tag
@@ -729,9 +731,10 @@ Literals
A literal is a language-tagged string if the third element
is present and the fourth element is not present.
- Lexical representations of language tags MAY be converted
- to lower case.
- The value of language tags is always treated as being in lower case.
+ Lexical representations of language tags
+ MAY be case normalized,
+ (for example, by converting to lower case).
+
A literal is a directional language-tagged string
if both the third element and fourth elements are present.
@@ -1813,6 +1816,17 @@
Changes between RDF 1.1 and RDF 1.2
Minor edit
to improve the example about distinguishing literals, IRIs, and blank nodes
in .
+ Implementations were previously allowed to normalize language tags to lower case,
+ which made it ambiguous whether two literals with language tags
+ that differed only by case represented the same literal,
+ or distinct literals.
+ RDF 1.2 requires that language tags be case-insensitively unique
+ but does not specify the common formatting to be used.
+ Two literals with the same lexical form and language tags that differ only by case
+ are the same literal.
+ Implementations can either follow the advice to normalize to lower case,
+ use the recommended BCP47 format,
+ or do something else, as long it is performed consistently.
A detailed overview of the differences between RDF versions 1.0