日本語テキスト処理基礎講座2023/③XMLの基礎
をテンプレートにして作成
開始行:
[[日本語テキスト処理基礎講座2023]]
*XMLの基礎 [#le34c8ac]
-XML形式もテキストデータの一種
--CSVで決まっていたようなお約束がはるかに詳細に仕様として...
--[[HTML>https://ja.wikipedia.org/wiki/HTML]]と同じくテキ...
-[[Wikipedia Extensible Markup Language>https://ja.wikipe...
--2000年代はじめにはなんでもXMLでやるというくらいに流行っ...
---<冗長性、複雑化
--アプリケーション間のやりとりではJSONが使われるようにな...
-ここでは、コーパスの利用・構築に必要なXMLに関する基礎知...
--基本的に解説記述は他のページへのリンクで済ませる
-参考:https://www.javadrive.jp/xml/
**準備 [#v04c78e0]
-VS Codeに次の拡張をインストールしておく
--VSCode [[XML>https://marketplace.visualstudio.com/items...
--VSCode [[XML Tools>https://marketplace.visualstudio.com...
**実例 [#jd4d94b1]
-BCCWJのタグセット:https://clrd.ninjal.ac.jp/bccwj/c-xml...
-明六雑誌コーパス:https://ccd.ninjal.ac.jp/cmj/meiroku/ ...
-サンプル:[[総研大の授業で作った簡単なXML>https://www.dr...
--[[青空文庫などで使われているXHTML>https://www.aozora.gr...
***TEI (Text Encoding Initiative) [#u02355e5]
-https://tei-c.org/
--参考資料:[[TEI入門に最適なウェブ資料>https://www.dh.ku-...
--[[chapter 8 歴史データのさまざまな応用 -Text Encoding...
**XMLの基礎 [#zd1019d8]
***理解しておくべき用語 [#j807f28f]
-XML文書 XML Document
--ルートが一つの[[木構造>https://ja.wikipedia.org/wiki/%E...
--整形式の(XML文書) well-formed
---整形式でなければXML文書ではないので、XMLアプリケーショ...
--妥当な(XML文書) valid
---文書型定義に合って検証に通るXML
------
<tag att1="value1" att2="value2">ほげ</tag>
-タグ Tag
--タグ名 tagの部分。日本語でも可。数字などで始まるタグ名...
--開始タグ <tag>
--終了タグ </tag>
--空要素タグ <tag/> (<tag></tag>と等価)
-属性 Attribute (開始タグ((空要素タグを含む))に複数付け...
--属性名 att1, att2の部分
--属性値 value1, value2の部分 ""または''で囲まれたところ
-要素 Element
--一つの開始終了タグで囲まれた範囲 (<tag att1="value1" a...
--ルート要素:必ず一つだけ
--子要素:ある要素の内側に含まれる要素
--空要素:内側に要素もテキストノードも含まない要素
-テキストノード テキスト(ほげ の部分)
**実体参照 Entitiy reference [#wfd66910]
-XML文書の記述に使われている文字((&<>は必ずこれで書く。"'...
--&=&amp; <=&lt; >=&gt; "=&quot; ...
-その他
--&nbsp; スペース、&copy;=©、&yen;=¥など
-文字参照 Unicodeで指定(&#x十六進数;または&#十進...
--&#x6a67; &#27239; =橧
--&#x1f9ad; &#129453; =🦭
**文書定義と検証 [#o73b0fed]
***理解しておくべき用語 [#v07f0424]
-文書型定義 Document Type Definition
--文書型宣言
--DTD
--XML schema
-検証 Validation
***名前空間 namespace [#v04969af]
-タグセットにユニークな名前空間を設定、同じタグ名の衝突を...
--参考:[[XML用語事典 > XML名前空間>https://atmarkit.itme...
--『太陽コーパス』では使っているが、コーパスのXML文書では...
**XML文書の例 [#s038620d]
-『明六雑誌コーパス』データ
--https://doi.org/10.15084/00003337
//--サンプル:[[m187401.xml>https://www.dropbox.com/scl/f...
-[[「ひまわり」>https://csd.ninjal.ac.jp/lrc/index.php?%C...
--[[『分類語彙表』パッケージ>https://csd.ninjal.ac.jp/lrc...
//--サンプル:[[corpus.xml>https://www.dropbox.com/scl/fi...
-[[Oxford NINJAL Corpus of Old Japanese (ONCOJ)>https://o...
--[[ダウンロード>https://github.com/ONCOJ/data/releases/t...
**XPath [#we73d7df]
-[[Wikipedia XPath>https://ja.wikipedia.org/wiki/XML_Path...
-参考:https://www.techscore.com/tech/XML/XPath/XPath1/xp...
-参考:[[XPath>https://atmarkit.itmedia.co.jp/aig/01xml/x...
--https://developer.mozilla.org/ja/docs/Web/XPath
-XPathの構文 /軸::ノードテスト[述語]/~
--例1:/A/child::B/child::*/child::C[position()=1]
--例2:/雑誌/child::記事[@著者名="上田万年"]/descendant-o...
-省略構文 ファイルのPathに似た書き方になる。普通は省略構...
--例1:/A/B/*/C[1]
--例2:/雑誌/記事[@著者名="上田万年"]//注[@種類='誤字']
-軸 axis
--基準点(コンテクストノード)からみた方向・親子関係を指...
-ノードテスト node test
--名前またはノードの種類を指定する(要素名, *, text(), no...
-述語 predicate
--[]の中に条件を記述して対象を絞り込む。条件式や簡単な関...
**XMLの限界とスタンドオフアノテーション [#cb87db22]
-複雑なコーパスはタグの交差や検索性の面でXMLだけでの表現...
-言語の構造と紙面情報、パラ言語情報(イントネーションなど...
-国語研の形態論情報データベースではXMLファイル+文字位置...
--[[『現代日本語書き言葉均衡コーパス』形態論情報アノテー...
**XSLT(省略) [#kd8031f0]
-参考:[[XSLT>https://atmarkit.itmedia.co.jp/aig/01xml/xs...
--https://developer.mozilla.org/ja/docs/Web/XSLT
-太陽コーパスでの活用例
-[[「太陽コーパス」>https://clrd.ninjal.ac.jp/cmj/taiyou/...
--[[プリズム(雑誌コーパス用のXSLTスタイルシートとツール...
***Himawari [#k723a65a]
-[[全文検索システム「ひまわり」>http://www2.ninjal.ac.jp/...
-XMLファイルにインデックスを付けて利用する検索用アプリケ...
--設定ファイルもXML
--コーパスのXMLファイルはUTF-16LE(LF改行)で保存しておく
**XMLエディタ [#a0529736]
-[[Oxygen XML Editor>https://www.oxygenxml.com/]]が高機能...
-普通の利用ならVSCodeの拡張で十分かも
終了行:
[[日本語テキスト処理基礎講座2023]]
*XMLの基礎 [#le34c8ac]
-XML形式もテキストデータの一種
--CSVで決まっていたようなお約束がはるかに詳細に仕様として...
--[[HTML>https://ja.wikipedia.org/wiki/HTML]]と同じくテキ...
-[[Wikipedia Extensible Markup Language>https://ja.wikipe...
--2000年代はじめにはなんでもXMLでやるというくらいに流行っ...
---<冗長性、複雑化
--アプリケーション間のやりとりではJSONが使われるようにな...
-ここでは、コーパスの利用・構築に必要なXMLに関する基礎知...
--基本的に解説記述は他のページへのリンクで済ませる
-参考:https://www.javadrive.jp/xml/
**準備 [#v04c78e0]
-VS Codeに次の拡張をインストールしておく
--VSCode [[XML>https://marketplace.visualstudio.com/items...
--VSCode [[XML Tools>https://marketplace.visualstudio.com...
**実例 [#jd4d94b1]
-BCCWJのタグセット:https://clrd.ninjal.ac.jp/bccwj/c-xml...
-明六雑誌コーパス:https://ccd.ninjal.ac.jp/cmj/meiroku/ ...
-サンプル:[[総研大の授業で作った簡単なXML>https://www.dr...
--[[青空文庫などで使われているXHTML>https://www.aozora.gr...
***TEI (Text Encoding Initiative) [#u02355e5]
-https://tei-c.org/
--参考資料:[[TEI入門に最適なウェブ資料>https://www.dh.ku-...
--[[chapter 8 歴史データのさまざまな応用 -Text Encoding...
**XMLの基礎 [#zd1019d8]
***理解しておくべき用語 [#j807f28f]
-XML文書 XML Document
--ルートが一つの[[木構造>https://ja.wikipedia.org/wiki/%E...
--整形式の(XML文書) well-formed
---整形式でなければXML文書ではないので、XMLアプリケーショ...
--妥当な(XML文書) valid
---文書型定義に合って検証に通るXML
------
<tag att1="value1" att2="value2">ほげ</tag>
-タグ Tag
--タグ名 tagの部分。日本語でも可。数字などで始まるタグ名...
--開始タグ <tag>
--終了タグ </tag>
--空要素タグ <tag/> (<tag></tag>と等価)
-属性 Attribute (開始タグ((空要素タグを含む))に複数付け...
--属性名 att1, att2の部分
--属性値 value1, value2の部分 ""または''で囲まれたところ
-要素 Element
--一つの開始終了タグで囲まれた範囲 (<tag att1="value1" a...
--ルート要素:必ず一つだけ
--子要素:ある要素の内側に含まれる要素
--空要素:内側に要素もテキストノードも含まない要素
-テキストノード テキスト(ほげ の部分)
**実体参照 Entitiy reference [#wfd66910]
-XML文書の記述に使われている文字((&<>は必ずこれで書く。"'...
--&=&amp; <=&lt; >=&gt; "=&quot; ...
-その他
--&nbsp; スペース、&copy;=©、&yen;=¥など
-文字参照 Unicodeで指定(&#x十六進数;または&#十進...
--&#x6a67; &#27239; =橧
--&#x1f9ad; &#129453; =🦭
**文書定義と検証 [#o73b0fed]
***理解しておくべき用語 [#v07f0424]
-文書型定義 Document Type Definition
--文書型宣言
--DTD
--XML schema
-検証 Validation
***名前空間 namespace [#v04969af]
-タグセットにユニークな名前空間を設定、同じタグ名の衝突を...
--参考:[[XML用語事典 > XML名前空間>https://atmarkit.itme...
--『太陽コーパス』では使っているが、コーパスのXML文書では...
**XML文書の例 [#s038620d]
-『明六雑誌コーパス』データ
--https://doi.org/10.15084/00003337
//--サンプル:[[m187401.xml>https://www.dropbox.com/scl/f...
-[[「ひまわり」>https://csd.ninjal.ac.jp/lrc/index.php?%C...
--[[『分類語彙表』パッケージ>https://csd.ninjal.ac.jp/lrc...
//--サンプル:[[corpus.xml>https://www.dropbox.com/scl/fi...
-[[Oxford NINJAL Corpus of Old Japanese (ONCOJ)>https://o...
--[[ダウンロード>https://github.com/ONCOJ/data/releases/t...
**XPath [#we73d7df]
-[[Wikipedia XPath>https://ja.wikipedia.org/wiki/XML_Path...
-参考:https://www.techscore.com/tech/XML/XPath/XPath1/xp...
-参考:[[XPath>https://atmarkit.itmedia.co.jp/aig/01xml/x...
--https://developer.mozilla.org/ja/docs/Web/XPath
-XPathの構文 /軸::ノードテスト[述語]/~
--例1:/A/child::B/child::*/child::C[position()=1]
--例2:/雑誌/child::記事[@著者名="上田万年"]/descendant-o...
-省略構文 ファイルのPathに似た書き方になる。普通は省略構...
--例1:/A/B/*/C[1]
--例2:/雑誌/記事[@著者名="上田万年"]//注[@種類='誤字']
-軸 axis
--基準点(コンテクストノード)からみた方向・親子関係を指...
-ノードテスト node test
--名前またはノードの種類を指定する(要素名, *, text(), no...
-述語 predicate
--[]の中に条件を記述して対象を絞り込む。条件式や簡単な関...
**XMLの限界とスタンドオフアノテーション [#cb87db22]
-複雑なコーパスはタグの交差や検索性の面でXMLだけでの表現...
-言語の構造と紙面情報、パラ言語情報(イントネーションなど...
-国語研の形態論情報データベースではXMLファイル+文字位置...
--[[『現代日本語書き言葉均衡コーパス』形態論情報アノテー...
**XSLT(省略) [#kd8031f0]
-参考:[[XSLT>https://atmarkit.itmedia.co.jp/aig/01xml/xs...
--https://developer.mozilla.org/ja/docs/Web/XSLT
-太陽コーパスでの活用例
-[[「太陽コーパス」>https://clrd.ninjal.ac.jp/cmj/taiyou/...
--[[プリズム(雑誌コーパス用のXSLTスタイルシートとツール...
***Himawari [#k723a65a]
-[[全文検索システム「ひまわり」>http://www2.ninjal.ac.jp/...
-XMLファイルにインデックスを付けて利用する検索用アプリケ...
--設定ファイルもXML
--コーパスのXMLファイルはUTF-16LE(LF改行)で保存しておく
**XMLエディタ [#a0529736]
-[[Oxygen XML Editor>https://www.oxygenxml.com/]]が高機能...
-普通の利用ならVSCodeの拡張で十分かも
ページ名: