固有表現マークアップの意義
テキストの中に登場する人名、地名、組織名、日付などの固有表現(named entity)をマークアップすることは、デジタルヒューマニティーズにおいて極めて重要な作業です。固有表現に構造的なタグを付与することで、以下のような研究活動が可能になります。
- テキスト内の人物・場所の出現頻度や共起関係の分析
- 人物間のネットワーク分析
- 地名の地理情報システム(GIS)との連携による空間分析
- 時間軸に沿ったイベントの可視化
- 外部の典拠データ(VIAF、GeoNames、Wikidataなど)との連携によるLinked Open Data化
TEIは namesdates モジュールにおいて、固有表現のマークアップに関する豊富な語彙を提供しています。
筆者はWikidataとの連携に関して実際に試した経験があります。cwrcのwikidata-entity-lookupを試すでは、CWRC(Canadian Writing Research Collaboratory)が提供するWikidata検索機能を試し、TEI編集環境でのエンティティルックアップの実際を紹介しました。また、Japan Search利活用スキーマを使ったentity-lookupの試作では、日本のジャパンサーチを活用した固有表現の同定についても試みています。
人名のマークアップ
persName(人名)
<persName> は、テキスト中に出現する人名をマークアップするための要素です。
<p><persName>光源氏</persName>は、<persName>桐壺帝</persName>の第二皇子である。</p>
人名の構成要素をさらに細かくマークアップすることも可能です。
<persName>
<surname>紫</surname>
<roleName>式部</roleName>
</persName>
<persName xml:lang="en">
<forename>William</forename>
<surname>Shakespeare</surname>
</persName>
ref属性による外部リソースへの参照
固有表現マークアップの価値を大きく高めるのが、外部の典拠データへの参照です。ref 属性を使って、VIAF(Virtual International Authority File)やWikidataなどの識別子を関連付けます。
<persName ref="https://viaf.org/viaf/100218300">紫式部</persName>
<persName ref="https://www.wikidata.org/wiki/Q81438">紫式部</persName>
この参照により、テキスト中の人名が曖昧さなく特定され、同一人物の異なる表記(「紫式部」「Murasaki Shikibu」など)を統合的に扱えるようになります。
筆者はLEAF Writerでのエンティティルックアップについても記事を書いています。LEAF Writer:Japan Searchに対するEntity Lookupでは、Japan Searchを使って人名や地名の典拠データを検索し、TEIドキュメントに参照を付与する方法を紹介しています。
地名のマークアップ
placeName(地名)
<placeName> は地名をマークアップする要素です。
<p><persName>光源氏</persName>は<placeName>須磨</placeName>へ退去した。</p>
地名の構成要素を細分化することもできます。
<placeName>
<country>日本</country>
<region>近畿</region>
<settlement>京都</settlement>
</placeName>
地名にも外部リソースへの参照を付与することが推奨されます。
<placeName ref="https://www.geonames.org/1857910">京都</placeName>
TEI/XMLの地図表示
地名をマークアップし、座標情報と結びつけることで、テキストの地理的な分析が可能になります。筆者はTEI/XMLの可視化例:Leafletを用いた地図表示で、TEI/XML内の地名情報をLeafletの地図上に表示する例を紹介しました。テキスト中に登場する地名を地図上にプロットすることで、テキストの空間的な広がりを視覚的に把握することができます。
また、Knight LabのTimelineJSやStoryMapJSをNext.jsから利用するでは、タイムラインやストーリーマップによる可視化も試みています。
組織名のマークアップ
orgName(組織名)
<p><orgName ref="https://www.wikidata.org/wiki/Q7842">国際連合</orgName>は
<date when="1945">1945年</date>に設立された。</p>
日付と時間のマークアップ
date(日付)
<date> は日付の表現をマークアップし、機械可読な形式で標準化します。
<p>この書簡は<date when="1868-01-03">慶応四年正月三日</date>に書かれた。</p>
日付が曖昧な場合は、以下の属性で範囲を指定できます。
| 属性 | 説明 | 例 |
|---|---|---|
when | 正確な日付 | when="1868-01-03" |
notBefore | これより前ではない | notBefore="1001" |
notAfter | これより後ではない | notAfter="1012" |
from | 期間の開始 | from="1868" |
to | 期間の終了 | to="1912" |
<p>源氏物語は<date notBefore="1001" notAfter="1012">11世紀初頭</date>に成立した。</p>
人物・場所のリスト
テキスト中に出現する人物や場所の情報を、TEIヘッダーや別ファイルでリストとして管理することが推奨されます。
listPerson(人物リスト)
<listPerson>
<person xml:id="genji">
<persName type="standard">光源氏</persName>
<persName type="alias">光る君</persName>
<note>桐壺帝の第二皇子。源氏物語の主人公。</note>
<sex value="M"/>
</person>
<person xml:id="murasaki">
<persName type="standard">紫の上</persName>
<persName type="alias">若紫</persName>
<note>光源氏の正妻。藤壺の姪。</note>
<sex value="F"/>
</person>
</listPerson>
listPlace(場所リスト)
<listPlace>
<place xml:id="kyoto">
<placeName xml:lang="ja">京都</placeName>
<placeName xml:lang="en">Kyoto</placeName>
<location>
<geo>35.0116 135.7681</geo>
</location>
<idno type="geonames">https://www.geonames.org/1857910</idno>
<note>平安時代の都。源氏物語の主要な舞台。</note>
</place>
</listPlace>
<location> 内の <geo> 要素に緯度・経度を記述することで、GISとの連携が可能になります。
テキスト内マークアップとリストの連携
テキスト中の固有表現から、リスト内の詳細情報へ参照を張ります。
<!-- ヘッダー等に定義したリスト -->
<listPerson>
<person xml:id="genji">
<persName>光源氏</persName>
...
</person>
</listPerson>
<!-- テキスト本文 -->
<p><persName ref="#genji">光源氏</persName>は<placeName ref="#suma">須磨</placeName>に移り住んだ。</p>
LEAF Writerでの固有表現マークアップ
LEAF Writer(Linked Editing Academic Framework Writer)は、Web上で動作するTEIエディタであり、固有表現のマークアップを強力にサポートしています。テキスト中の人名や地名を選択し、Wikidata、VIAF、GeoNamesなどのデータベースから該当するエンティティを検索して、参照情報を自動的に付与できます。
筆者はLEAF Writerについて多数の記事を執筆しています。LEAF Writer:Japan Searchに対するEntity Lookupでは、Japan Searchの典拠データとの連携について詳述しています。また、cwrcのwikidata-entity-lookupを試すでは、Wikidataのエンティティ検索機能の仕組みを解説しています。
Odeuropaプロジェクトの事例
固有表現マークアップの応用例として、筆者はOdeuropaに関連するツールを試すでOdeuropaプロジェクトのツールを試しました。Odeuropaはヨーロッパの嗅覚遺産をテーマとしたプロジェクトで、テキストから嗅覚に関連する表現を自動抽出するツールを提供しています。固有表現認識の技術をTEIマークアップに応用する参考になります。
まとめ
本章では、TEIの namesdates モジュールが提供する固有表現マークアップの語彙を学びました。<persName>, <placeName>, <orgName>, <date> といったインライン要素によるテキスト中のマークアップと、<listPerson>, <listPlace> による詳細情報のリスト管理を組み合わせることで、テキストに豊かな構造的情報を付与できます。
VIAF、GeoNames、WikidataなどのLinked Open Dataリソースへの参照を付与することで、TEIドキュメントの価値はさらに高まります。LEAF Writerなどの編集ツールを活用すれば、エンティティルックアップの作業を効率化できます。
次章では、校異情報とテキスト批評のマークアップについて学びます。