
2026/01/18 19:37
重なり合うマークアップ
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
要約
この記事では、マークアップの重複―テキストが階層的でない複数構造に同時に参加する場合―は単純なツリーモデルで表現できないことを説明しています。この問題は1988年に初めて認識され、2008年にジェニ・テンニソンによってマークアップ技術者にとって残された主要課題として指摘されました。
重複の扱い方はスキームごとに異なります:
- 連続重複は、開始/終了点をIDで示す milestone(空要素)でマークできますが、ミルストーンは追加属性なしでは再順序付けや自己重複をサポートしません。
- 非連続重複には文書の分割または join‑based アプローチが必要です。これらは特権階層フラグメントをリンクして非特権構造を再構築します。部分セグメントは可能ですが、要素を本当に再順序付けすることはできず、循環を生むリスクがあります。
このような制限のため、多くのコミュニティは神学テキスト用にTEIから離れ(OSSi と TML の採用を促進)、スタンドオフマークアップへ移行しました。スタンドオフXMLは、識別子やオフセットを使用して注釈をソーステキストから分離し、読み取り専用ドキュメントの共同注釈を可能にします。2017年までには、言語学注釈で最も広く受け入れられる手法となり、ISO規格とTEI開発の基盤となっています。
しかし、スタンドオフXMLは実用的な障壁が伴います:スキーマに対する検証が難しく、リレーショナルデータベースはネイティブにサポートしておらず、多くのプロジェクトでは複雑な変換パイプラインやグラフベースのデータベースを必要とします。これに対応するために、RDF/OWL などのグラフベース形式が採用されつつあります。これらは重複構造を有向多重グラフとして自然にモデル化し、リンクドデータクエリもサポートします。
既存の専門言語(LMNL、CLIX、MECS、TexMECS、XCONCUR)はほぼメンテナンスされておらず、コミュニティは現在スタンドオフXMLまたはグラフベースモデルを好みます。アクティブなスタンドオフ形式には GrAF‑XML、LAF、PAULA‑XML、NAF、およびバリアントドキュメント用の MVD があり、多くは外部ツールや専門ビューアに依存しています。
示唆:言語学と神学の研究者はスタンドオフまたはグラフワークフローを採用しなければならず、検証やデータベース統合が複雑になる可能性があります。ツール開発者は変換パイプラインやグラフデータベースの提供が求められ、規格機関もこれらの表現に関するガイダンスを拡充していくと予想されます。
本文
重複マークアップ(Overlap)
マークアップ言語とデジタル人文学の分野では、文書内に二つ以上の構造が階層的でない形で相互作用するとき、「overlap」―重複 ― が発生します。重複マークアップを持つ文書は単純な木構造として表現できず、別名「並行マークアップ(concurrent markup)」とも呼ばれます。
典型的な例:
- 詩:詠み方の格(feet)と行(lines)の重複
- 言語学テキスト:文(sentences)と引用(quotations)の重複
- 実際の書籍:巻、ページ、および編集注釈の重複
歴史的背景と認識
- 1988 年から重複は認知されている。
- 2008 年にジェニ・テニソン(Jeni Tennison)が「マークアップ技術者に残る主要な問題領域」と呼んだ。
- 2019 年には神学文書で依然として主な課題とされ、Open Scripture Information Standard や Theological Markup Language といった専門フォーマットの基盤となっている。
特性・種類
| 種類 | 説明 |
|---|---|
| 連続重複(Contiguous overlap) | 要素が同じ位置で開始と終了を共有。マイルストーンで表現可能。 |
| 非連続重複(Non‑contiguous overlap) | 文書全体に要素を分割して配置する必要あり。 |
| 自己重複(Self‑overlap) | 同じ種類の要素同士が重なることもある。 |
スキームは階層構造を優先させる場合と、すべての構造を等しく扱う場合がある。
アプローチ・実装
1. マイルストーン(Milestones)
- 空要素で開始/終了タグ(例:
)を用い、ID を介して相互参照する。<sentence-start/> - 連続重複に適し、より複雑なマイルストーンは非連続・自己重複もエンコードできる。
行の例:
<line>I, by attorney, bless thee from thy mother,</line> <line>Who prays continually for Richmond's good.</line>
文とマイルストーンの例:
<line><sentence-start/>I, by attorney, bless thee from thy mother,</line> <line>Who prays continually for Richmond's good.<sentence-end/></line>
2. ジョイン(Joins)
- 優先階層内でポインタを用い、他のコンポーネントを参照して非優先構造を再構築。
- 要素の順序変更はできず、循環が生じる可能性もある。
例:
<line><sentence id="a">I, by attorney, bless thee from thy mother,</sentence></line> <line><sentence continues="a">Who prays continually for Richmond's good.</sentence></line>
3. スタンドオフマークアップ(Stand‑off Markup)
- テキストとマークアップを別々に保持し、位置(オフセットや ID)で注釈が参照される。
- ソーステキストを変更せずに協働アノテーションが可能。
例:
<span id="a">I, by attorney, bless thee from thy mother,</span> <span id="b">Who prays continually for Richmond's good.</span> ... <line contents="a" /> <sentence contents="a b" />
スタンドオフとグラフベースの形式
| 言語 / 標準 | 備考 |
|---|---|
| GrAF-XML | Linguistic Annotation Framework のスタンドオフシリアリゼーション。 |
| PAULA-XML | ANNIS コーパスシステムの基盤。 |
| NAF | FreeLing、EusTagger 等で使用される NLP アノテーションフォーマット。 |
| EARMARK | GODDAG(General Ordered‑Descendant DAG)を RDF/OWL で表現。 |
これらは有向グラフに自然にマッピングできるため、RDF(RDF/XML, RDFa, JSON‑LD)が直線化に依存しないモデルとして問い合わせや検証に適している。
実務上の留意点
- 検証:スタンドオフ形式は構造が外部にあるため、スキーマによる検証が難しい。
- ツールサポート:多くの既存 XML ツールはマイルストーンを扱えるが、スタンドオフやグラフモデルには直接対応していない。
- 保守性:複数文書やスタンドオフ注釈は冗長性と複雑さを増す可能性がある。
重要ポイント
重複マークアップに対しては、単純な連続重複ならマイルストーンベースの XML が有効。より複雑なケースではジョインまたはスタンドオフアプローチが必要になる。相互運用性と意味的問い合わせを重視する場合は、RDF や EARMARK などのグラフベーススタンドオフ形式が最も柔軟だが、追加ツールが要求される。