マークアップ言語やデジタル人文科学では、文書に非階層的な方法で相互作用する 2 つ以上の構造がある場合にオーバーラップが発生します。マークアップがオーバーラップしている文書はツリーとして表現できません。これは同時マークアップとも呼ばれます。オーバーラップは、たとえば詩で発生します。詩には、韻律構造(音節と行)、言語構造(文と引用)、物理構造(巻とページと編集注釈)が存在する場合があります。 [ 1 ] [ 2 ]

文書における非階層構造の問題は1988年から認識されており、テキストを単一の階層(コンテンツオブジェクトの順序付き階層またはOHCO)として扱う支配的なパラダイムに対抗してこれを解決することは、当初は単なる技術的な問題と考えられていましたが、実際にははるかに困難であることが判明しました。[ 4 ] 2008年、ジェニ・テニソンはマークアップの重複を「マークアップ技術者にとって残された主な問題領域」として特定しました。[ 5 ] マークアップの重複は2019年現在も神学テキストのデジタル研究における主要な問題であり、この分野がデジタル人文科学の他の分野で一般的な相互運用可能なテキスト符号化イニシアチブベースの形式ではなく、 Open Scripture Information StandardやTheological Markup Languageといった特殊なマークアップ形式を維持している主な理由となっています。[ 6 ]
非連続オーバーラップを許容するスキームと、連続オーバーラップのみを許容するスキームには区別があります。多くの場合、「マークアップオーバーラップ」は厳密には後者を意味します。連続オーバーラップは、(論理) コンポーネントを複数の物理的コンポーネントに分割する必要なく、マイルストーン (通常は共索引の開始マーカーと終了マーカー) を持つ線形ドキュメントとして常に表現できます。非連続オーバーラップでは、ドキュメントの分割が必要になる場合があります。オーバーラップ マークアップ スキームのもう 1 つの区別は、要素が同じ種類の他の要素とオーバーラップできるかどうか (自己オーバーラップ) です。[ 2 ]
スキームには特権階層が存在する場合があります。たとえば、 XMLベースのスキームの中には、1 つの階層を XML ドキュメント ツリーに直接表現し、他の重複する構造を別の方法で表現するものがあります。これらは非特権的であると言われます。
Schmidt (2012) は、重複の事例を次の 3 つのカテゴリーに分類しています。1.「コンテンツと構造のバリエーション」、2.「複数の視点またはマークアップ セットの重ね合わせ」、3.「単一のマークアップ パースペクティブ内の個々の開始タグと終了タグの重複」。さらに、重複のように見える事例の中には、実際にはスキーマ定義の問題であり、階層的に解決できるものもあります。彼は、タイプ 1 はマークアップとは別の複数のドキュメント システムで解決するのが最適であるが、タイプ 2 と 3 は内部的に処理する必要があると主張しています。
デローズ(2004年、評価基準)は、重複問題の解決策を判断するためのいくつかの基準を挙げている。
タグスープは厳密に言えば重複マークアップではなく、重複しない言語である不正な形式のHTMLであり、定義が不適切である可能性があります。一部のWebブラウザは、重複する開始タグと終了タグを非階層的なドキュメントオブジェクトモデル(DOM)で表現しようとしましたが、これはすべてのブラウザで標準化されておらず、DOMの本来の階層的な性質と互換性がありませんでした。[ 7 ] [ 8 ] HTML5は、プロセッサがHTML構文内のこのような誤ったネストされたマークアップをどのように処理し、単一の階層に変換するかを定義しています。[ 9 ]しかし、 XHTMLおよびSGMLベースのHTML では、誤ったネストされたマークアップは厳密なエラーであり、標準に準拠したシステムによる処理を不可能にします。[ 10 ] HTML標準は、他の要素と重複する可能性があり、連続しない段落の概念を定義しています。 [ 11 ]
HTMLの初期バージョンが基づいていたSGMLには、複数の独立した階層が優先されることなく共存できるCONCURと呼ばれる機能があります。DTD 検証はCONCURを使用する各階層ごとにのみ定義されています。階層間の検証は標準では定義されていません。CONCURは自己重複をサポートできず、SGMLの省略機能の一部とうまく連携しません。この機能はツールで十分にサポートされておらず、実際に使用された例はほとんどありません。標準の編集者の解説によると、ドキュメントの重複を表すためにCONCURを使用することは推奨される使用例ではありませんでした。[ 12 ] [ 13 ]
重複しない言語で重複を表現するにはいくつかの方法があります。[ 14 ] XML ベースのマークアップ スキームである Text Encoding Initiative は、重複するマークアップを直接表現することはできません。以下の 4 つの方法すべてが提案されています。 [ 15 ] Open Scripture Information Standardは、聖書をマークアップするために設計された別の XML ベースのスキームです。特権のないコンポーネントをエンコードするために空の milestone 要素を使用します。[ 16 ]
これらの手法を説明するために、ウィリアム・シェイクスピアの『リチャード三世』の断片から、文や行に注釈を付けていく例を用いて解説します。特に、文格が明確に区別されている箇所では、行単位で注釈を付けます。
複数のドキュメントはそれぞれ、内部的に一貫性のある異なる階層を提供できます。このアプローチの利点は、各ドキュメントがシンプルで既存のツールで処理できることですが、冗長なコンテンツの維持が必要であり、異なるビュー間で相互参照するのが難しい場合があります。[ 17 ]複数のドキュメントの場合、重複はデータ比較とデルタエンコーディング技術で分析でき、XML のコンテキストでは、特定の XML ツリー差分アルゴリズムが利用可能です。[ 18 ] [ 19 ]
シュミット(2012、3.5バリエーション)は、単一のテキストの複数のバリエーションをエンコードし、存在するすべてのバリエーションを表す構造を作成しようとするのではなく、変化しない部分の重複を受け入れるこのアプローチを推奨しています。さらに、彼はこのアライメントは自動的に実行されるべきであり、実際にはアライメントのずれはまれであると示唆しています。[ 20 ]
例:線が引かれた状態。
<line>私は代理人を通じて、あなたの母からあなたを祝福します。 </line> <line>彼女はリッチモンドの繁栄を絶えず祈っています。</line> <line>それでおしまい。静かな時間が忍び寄り、</line> <line>東の空に薄暗い闇が訪れる。</line>文に注釈を付けて:
<文>私は代理人を通じて、リッチモンドの繁栄を絶えず祈る母から、あなたに 祝福を授けます。</文> <文>以上です。< /文><文> —静かな時間が忍び寄り、 東の空に薄暗い闇が訪れる。</文>マイルストーンは、コンポーネントの開始と終了を示す空の要素であり、通常は XML ID メカニズムを使用して、どの「開始」要素がどの「終了」要素に対応するかを示します。マイルストーンは、階層言語内に非特権構造を埋め込むために使用できます。基本的な形式では、連続した重複のみを表すことができます。一般的な XML は当然マイルストーン要素を解析できますが、その特別な意味を理解しないため、非特権構造を簡単に処理または検証することはできません。[ 21 ] [ 22 ]
マイルストーンには、他のマークアップと同様に、重なり合う要素のマークアップが関連する境界に正確に配置されるという利点があります。これは保守性と可読性にとって有利です。[ 23 ] CLIX (DeRose 2004 )はそのようなアプローチの一例です。
例:
<line><sentence-start />私は代理人を通じて、あなたの母からあなたを祝福します。 </line> <line>母はリッチモンドの繁栄を絶えず祈っています。 <sentence-end /></line> <line><sentence-start />それでおしまいです。< sentence -end /><sentence-start /> —静かな時間が忍び寄り、</line> <line>そして東の空に薄暗い闇が訪れます。<sentence-end /></line>句読点とスペースは、単語、節、文などの境界が必ずしも正式なマークアップの境界と階層的に一致するとは限らないため、マイルストーン型の「暗号化オーバーラップ」または「擬似マークアップ」の一種として認識されています。[ 24 ] [ 25 ]
非連続構造を表すために、より複雑なマイルストーンを使用することも可能です。たとえば、TAGMLの「中断」と「再開」の意味[ 26 ]は、マイルストーンを使用して表現できます。たとえば、各マイルストーンが開始点、中断点、再開点、または終了点のいずれを表すかを示す属性を追加します。各マイルストーンに「次のチャンク」参照を注釈として付けることで、並べ替えや自己重複も同様に実現できます。
結合は、特権階層内の他のコンポーネントへのポインタであり、リンク リストをたどるのと同様に、非特権コンポーネントを再構築するために使用できます。単一の非特権要素は、特権階層内で複数の部分要素に分割されます。部分要素自体は、非特権階層内の単一の単位を表すものではないため、誤解を招き、処理が困難になる可能性があります。[ 27 ] [ 28 ]このアプローチは、一部の不連続な構造をサポートできますが、要素の順序を変更することはできません。[ 29 ]ただし、少し異なるアプローチでは、直接性と保守性を犠牲にして、結合をコンテンツから離して表現することで、順序の変更を表現できます。[ 30 ]
結合ベースの表現では、要素間に循環が生じる可能性があり、これを検出して拒否すると実装が複雑になります。[ 31 ]
例:
<line><sentence id= "a" >私は代理人を通じて、あなたの母からあなたを祝福します。 </sentence></line> <line><sentence continues= "a" >彼女はリッチモンドの繁栄を絶えず祈っています。</sentence></line> <line><sentence id= "b" >それでおしまい。</sentence> <sentence id= "c" > —静かな時間が忍び寄り、</sentence></line> <line><sentence continues= "c" >そして東の空に薄暗い闇が訪れる。</sentence></line>スタンドオフマークアップは、特権階層がないことを除けば、結合の使用に似ています。ドキュメントの各部分にはラベルが付けられ(またはオフセットで参照される場合もあります)、ドキュメント構造は、コンテンツから「離れた」マークアップ(場合によってはまったく別のファイル)からコンテンツを指すことによって表現され、それ自体にはコンテンツが含まれていない場合もあります。TEI ガイドラインでは、要素の統一性が、結合に対するスタンドオフマークアップの主な利点であるとされています。加えて、テキストとは別に注釈を作成および配布できること、場合によっては読み取り専用ドキュメントにマークアップを適用する異なる著者によって作成および配布できることも利点として挙げられており、[ 32 ]分割統治戦略によるマークアップへの共同アプローチが可能になっています。[ 33 ]
例:
<span id= "a" >私は代理人を通じて、あなたの母からあなたを祝福します。 </span> <span id= "b" >彼女はリッチモンドの繁栄を絶えず祈っています。</span> <span id = "c" >それでおしまい。</span><span id= "d" > —静かな時間が忍び寄り、</span> <span id= "e" >そして東の空に薄暗い闇が訪れる。</span> ... <line contents= "a" /> <line contents= "b" /> <line contents= "c d" /> <line contents= "e" /> <sentence contents= "a b" /> <sentence contents= "c" /> <sentence contents= "d e" />マークアップとテキストを分離することで、全体的な簡素化と保守性の向上につながると主張されており、[ 34 ] 2017 年までに「言語的に注釈が付けられたデータを [表現] するための現在の最先端技術は、ピボット フォーマットとして standoff XML としてシリアル化されたグラフベースの表現を使用することである」[ 35 ]、つまり、マークアップの重複という課題に対処するための最も広く受け入れられたアプローチは standoff であった。
スタンドオフ形式は、言語注釈の ISO 標準の基礎となっており、[ 36 ]コーパス管理システムの開発に成功裏に適用されており、[ 37 ](2020 年 4 月現在)TEI で積極的に開発されています。[ 38 ]成功したスタンドオフ注釈スキームの公開例の 1 つは、リソースの少ない言語や絶滅の危機に瀕している言語の保存に焦点を当てたバイテキスト自然言語ドキュメント プロジェクトの一部として開発されました。[ 39 ]
階層言語内で重複するマークアップを表現することは、冗長性や複雑さの理由から困難です。2000 年代から 2010 年代にかけて、スタンドオフ形式がこの点で最も有望なアプローチとして一般的に受け入れられていましたが、[ 35 ]スタンドオフの欠点は検証が非常に困難であることです。[ 40 ] スタンドオフ形式はデータベース管理システムでネイティブにサポートされていないため、(2017 年までに)「スタンドオフ XML をピボット形式として使用し、リレーショナルデータベースをクエリに使用する」ことが提案されました。[ 35 ]実際のアプリケーションでは、これには複雑なアーキテクチャや、ピボット形式と内部表現間の労力を要する変換が必要です。結果として、保守が問題となります。[ 41 ]これが、グラフデータベースに基づいてコーパス管理システムを開発し、確立されたグラフベースの形式をピボット形式として使用する動機となっています。
上述の戦略を実行するためには、既存のマークアップ言語(TEIなど)を拡張するか、あるいは専用の言語を設計することができる。
これらの形式体系はどれも現在では維持されていないようだ。コミュニティの共通認識としては、スタンドアロン型のXMLまたはグラフベースの形式体系を採用することのようである。
スタンドオフアプローチには、一般的に「コンテンツ」と「アノテーション」と呼ばれる2つの部分があります。これらは、互いに関連性のない表現で表すことができます。単純なスタンドオフアノテーション自体は、(場所、タイプ)のペアのリストのみを含みます。そのため、いくつかのアプリケーションでは、スタンドオフアノテーションはCSV、 JSON (- LD)、またはその他の表現 (たとえば、Web Annotation [ 60 ] )、または文字列URIに基づくグラフ形式(下記参照)で表現されます。ただし、このような表現でコンテンツを表現および検証することははるかに難しく、はるかに一般的ではありません。
Standoff マークアップは、有向グラフに基づくデータ モデルを採用しているため、[ 61 ]マークアップ情報をツリーに落とし込むと表現が複雑になります。重複する階層をグラフで表現すると、この課題は解消されます。Standoff アノテーションは、一般化された有向マルチグラフとしてより適切に表現でき、この目的のために開発された形式と技術、特にResource Description Framework (RDF)に基づくものを使用できます。[ 62 ] [ 63 ] EARMARK は、General Ordered-Descendant Directed Acyclic Graphs (GODDAGs) を包含する初期のRDF / OWL表現です。[ 14 ] GODDAGs の理論は、厳密にはマークアップ言語ではありませんが、非階層型マークアップの一般的なデータ モデルです。
RDF は、線形化に依存しない意味論的データ モデルであり、スタンドオフ XML を反映するようにモデル化できるXML 形式 ( RDF/XML )、RDF を XML 属性で表現できる線形化 ( RDFa )、JSON 形式 ( JSON-LD )、クエリや処理を容易にするように設計されたバイナリ 形式 ( RDF-HDT、[ 64 ] RDF-Thrift [ 65 ] ) など、さまざまな線形化を提供します。RDF は、スタンドオフ マークアップの基盤となるグラフ ベースのデータ モデルと意味的に同等であり、保存、解析、クエリに特別な目的の技術を必要としません。文書またはコーパスを表す複数の相互リンクされた RDF ファイルは、言語リンク オープン データの例を構成します。
任意のグラフを注釈付きドキュメントにリンクするための確立された手法は、URIフラグメント識別子を使用してテキストやドキュメントの一部を参照することです(Web アノテーションの概要を参照) 。Webアノテーション標準では、オフセット、文字列一致、または XPath ベースのセレクタなど、フォーマット固有の「セレクタ」を別の手段として提供しています。[ 66 ]
言語注釈を表現できるネイティブRDF語彙には以下が含まれます。[ 67 ]
関連語彙には以下が含まれます
2020年初頭、W3CコミュニティグループLD4LTは、これらの語彙を調和させ、ウェブ上の言語注釈のための統合RDF語彙を開発するイニシアチブを開始しました。[ 73 ]