[7] [DFN[LTSV]] は、[[ログファイル]]などで用いられる[[データ形式]]です。

* 仕様書

[REFS[
- [1] [CITE[Labeled Tab-separated Values (LTSV)]]
([TIME[2013-02-07 15:03:21 +09:00]] 版)
<http://ltsv.org/>
]REFS]

* MIME型

[6] [[MIME型]]は不明です。 [[TSV]] の [[MIME型]] [CODE(MIME)@en[[[text/tab-separated-values]]]]
は[[文字列]]で構成されると定義されていますが、 [[LTSV]] は[[バイト列]]ですから、
[CODE(MIME)@en[[[text/tab-separated-values]]]] を使うのは必ずしも正しくありません。

* 歴史

[8] [[株式会社はてな]]の社内で使われていた[[ログファイル]]のデータ形式を一般化し、
名前を与えたものです。

[9] [CITE@en[GitHub - stanaka/ltsv]], [TIME[2023-04-17T09:46:44.000Z]] <https://github.com/stanaka/ltsv>

* メモ

[2] [CITE[LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー]]
( ([TIME[2013-02-10 13:34:37 +09:00]] 版))
<http://d.hatena.ne.jp/naoya/20130209/1360381374>

[3] [[LTSV]] の [[ABNF]] 構文には [[0x00]] ([[NULL]]) を含まない任意の[[バイト列]]が[[一致]]するようになっています。

[4] その趣旨からすると一つの行に含まれるラベルはすべて互いに異なるものであるべきでしょうが、
構文上は敢えてそのような制約は設けていません。 ([[ABNF]] ではそのような制約は記述できないというのもありますが。)
実用上 [[LTSV]] は単独で用いるのではなく、応用分野ごとに何らかのラベル集合を定義する必要がありますから、
衝突するラベルが存在するときの解釈や処理方法は、応用次第で定めるべきものです。

[5] [[LTSV]] は構文上、ラベルに「:」を含められない、ラベルや値にタブや改行や NULL を含められないといった制約があります。
それらを[[エスケープ]]する方法も [[LTSV]] としては敢えて用意されていません。
これも応用分野ごとに既存の慣習等に基づき定めるべきものです。


[10] [CITE@en[ltsv - Fluentd]], [TIME[2023-04-17T09:50:40.000Z]] <https://docs.fluentd.org/parser/ltsv>
