日本語テキスト処理基礎講座2023
XMLの基礎†
- XML形式もテキストデータの一種
- CSVで決まっていたようなお約束がはるかに詳細に仕様として決められ、いろんな表現が可能になっている。
- HTMLと同じくテキストのマークアップ言語の一つだが、特定目的ではなく汎用
- VS Codeに次の拡張をインストールしておく
- VSCode XML※XMLのタグのチェックや検証などができる
TEI (Text Encoding Initiative)†
XMLの基礎†
理解しておくべき用語†
- XML文書 XML Document
- ルートが一つの木構造(入れ子型構造)を表現するものでタグの交差は許されない
- 整形式 well-formed
- 整形式でなければXML文書ではないので、XMLアプリケーションはエラーを返す(HTMLのようによしなに表示したりしない)
- 妥当な valid
<tag att1="value1" att2="value2">ほげ</tag>
- タグ Tag
- タグ名 tagの部分。日本語でも可。数字などで始まるタグ名は不可
- 開始タグ <tag>
- 終了タグ </tag>
- 空要素タグ <tag/> (<tag></tag>と等価)
- 属性 Attribute (開始タグ*2に複数付けられる att1="value1"の部分)
- 属性名 att1, att2の部分
- 属性値 value1, value2の部分 ""または''で囲まれたところ
- 要素 Element
- ルート要素:必ず一つだけ
- 子要素 ある要素の内側に含まれる要素
- 空要素 内側に要素もテキストも含まない要素
- テキストノード ほげ
実体参照 Entitiy reference†
- XML文書の記述に使われている文字*3
- &=& <=< >=> "=" '=' 普通に書くとXML文書が壊れてしまう。
- その他
- スペース、©=©、¥=¥など
- 文字参照 Unicodeで指定(&#x十六進数;または&#十進数;)
- 橧 橧 =橧
- 🦭 🦭 =🦭
文書定義と検証†
理解しておくべき用語†
- 文書型定義 Document Type Definition
- 検証 validation
名前空間 namespace†
- タグセットにユニークな名前空間を設定、同じタグ名の衝突を避ける
XML文書の例†
XPath†
- XPathの構文 /軸::ノードテスト[述語]/~
- 例1:/A/child::B/child::*/child::C[position()=1]
- 例2:/雑誌/child::記事[@著者名="上田万年"]/descendant-or-self::node()/child:注[@種類='誤字']
- 省略構文 ファイルのPathに似た書き方になる。普通は省略構文で書く
- 例1:/A/B/*/C[1]
- 例2:/雑誌/記事[@著者名="上田万年"]//注[@種類='誤字']
- 軸 axis
- 基準点(コンテクストノード)からみた方向・親子関係を指定する(child, descendant, parent, descendant-or-self, preceding-sibling...)
- ノードテスト node test
- 名前またはノードの種類を指定する(要素名, *, text(), node())
- 述語 predicate
- []の中に条件を記述して対象を絞り込む。条件式や簡単な関数*4が使える
XMLの限界とスタンドオフアノテーション†
- 複雑なコーパスはタグの交差や検索性の面でXMLだけでの表現に限界がある
- 言語の構造と紙面情報、パラ言語情報(イントネーションなど)は奇麗に構造化できない
- XMLファイル+文字位置を使った表形式データで扱っている
XSLT(省略)†
Himawari†
- 全文検索システム「ひまわり」
- XMLファイルにインデックスを付けて利用する検索用アプリケーション
- 設定ファイルもXML
- コーパスのXMLファイルはUTF-16LE(LF改行)で保存しておく
XMLエディタ†