[7] [DFN[[RUBYB[[[言語タグ付き文字列]]]@en[language-tagged string]]]]は、[[言語タグ]]が指定されている[[リテラル]]です。

* 仕様書

[REFS[
- [1] [CITE@en[RDF 1.1 Concepts and Abstract Syntax]] ([TIME[2014-04-26 06:01:57 +09:00]] 版) <https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#dfn-language-tagged-string>
]REFS]

* 定義

[3] [[言語タグ]]が含まれる[[リテラル]]を、[DFN[[RUBYB[[[言語タグ付き文字列]]]@en[language-tagged string]]]]といいます [SRC[>>1]]。

* 言語タグ

[2] [[データ型IRI]]が [DFN[[CODE(URI)@en[[[http://www.w3.org/1999/02/22-rdf-syntax-ns#langString]]]]]]
の[[リテラル]]に(だけ)は、[[言語タグ]]を指定できます [SRC[>>1]]。

[4] [[言語タグ]]は[[空文字列]]でない文字列で、 [[BCP47]] [[整形式]]でなければ[['''なりません''']] [SRC[>>1]]。

[5] [[言語タグ]]の[[字句表現]]は[[小文字]]に変換して[['''構いません''']]。[[言語タグ]]の[[値空間]]は常に[[小文字]]です。 [SRC[>>1]]

;; [6] いつ誰が変換して構わないのか定かではありませんが・・・。

[14] 関連: [[日本語言語タグ]]

* リテラル値

[8] [[言語タグ付き文字列]]の[[リテラル値]]は、[[字句形]]と[[言語タグ]]をこの順で並べた組です [SRC[>>1]]。 

* SPARQL における言語タグ付きリテラル


[15] [CITE@ja[RDFまたはSPARQLの問題点・疑問に関するポエム - crssnkyの。]], [TIME[2024-05-17T06:09:09.000Z]] <https://crssnky.hatenablog.jp/entry/2019/04/30/172716>

[16] 
>>15 [[RDFデータモデル]]的にはこれが簡単に出来ないべき理由がないので、たぶん [[SPARQL]]
の設計がびみょーってことになるんだろうなあ。

[17] 
結局のところ [[RDF]] の世界を設計してる人が[[言語タグ]]をどう扱うべきかわかってないままやってた結果がこれだ、ってことだろうねえ。
そして[[国際化]]の専門家を名乗ってる人達はこういう実用的な不便のことはなぜか問題的してくれないんだよねえ。。。


* 歴史

[9] [[RDF 1.0]] では[[言語タグ付き文字列]]に相当するものは、[[データ型IRI]]のない[[平リテラル]]の一種でした。

[REFS[
- [10] [CITE@en[What’s New in RDF 1.1]] ([TIME[2014-02-21 12:31:39 +09:00]] 版) <http://www.w3.org/TR/rdf11-new/#h3_literals>
]REFS]

[11] [[RDF 1.0]] では[[言語タグ]]が[[整形式]]であることは要求されていなかったようです [SRC[>>10]]。

[12] [CITE@en[RDF Schema 1.1]]
( ([TIME[2014-02-27 21:42:23 +09:00]] 版))
<https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-schema/index.html#h3_ch_langstring>

[13] [CITE@en[Activity Vocabulary]]
([TIME[2017-05-21 23:50:36 +09:00]])
<https://w3c.github.io/activitystreams/vocabulary/>