470 likes | 658 Views
文書資源の基礎: XML. 2006 年 6 月 2 日 COE21-LKR 認知的知識資源論 徃住研・松 本. 文書資源を扱う. 文字→記号→ 文書 →知識 文書を知識資源として扱うには... XML というものを使用する方法がある. 本日の講義では,文書を扱う枠組みとしての XML という視点で紹介をおこなう.. XML とは?. XML (E x tensible M arkup L anguage) 拡張性のある, テキストに印をつけるための言葉.
E N D
文書資源の基礎:XML 2006年6月2日 COE21-LKR 認知的知識資源論 徃住研・松本
文書資源を扱う • 文字→記号→文書→知識 • 文書を知識資源として扱うには... XMLというものを使用する方法がある. 本日の講義では,文書を扱う枠組みとしてのXMLという視点で紹介をおこなう.
XMLとは? • XML (Extensible Markup Language) • 拡張性のある,テキストに印をつけるための言葉 参考:たのしいXML:http://www6.airnet.ne.jp/manyo/xml/index.html
印をつけるための言語 • 印をつける=意味(印)付けをする • markupの例 • Tag: <name>Natsume</name>, [name] Natsume[name],… • Tab: name Natsume ←左が意味,タブを挟んで内容 • Colon: name: Natsume ←左が意味,コロンを挟んで内容
XMLが採用したmarkup方式 • tag(タグ)方式→記号は,”<“, “>” • start tag(開始タグ),end tag(終了タグ)で挟む • end tagは,”/”を最初に付ける例:<name> 夏目漱石</name> 内容 終了タグ 開始タグ
歴史:XMLができるまで 1980年代 SGML 簡素化,改良 インターネット用 HTML XML XHTML HTMLを,XML処理系で扱えるように定義しなおした言語.
マニュアル タイトル はじめに 製品概要 本文 図 SGMLStandard Generalized Markup Language • インターネット用ではない,汎用の文書処理. • 例.自動車のマニュアルドキュメントなど • ドキュメントの「論理的な構造」をテキストで表現して交換する(「見栄え」については交換不可能.) • デメリット: • 不要な機能が実装され理解が困難 • レイアウト構造が反映されない SGML文書
XMLをつくる人たち • 世界でネットワーク業界に力を持つ団体 • ウェブの概念を作ったW3Cが開発 • W3C:World Wide Web Consortium • WWW技術の標準化と推進を目的とした、会員制の国際的な産業コンソーシアム • http://www.w3.org/ • ホスト:MIT(USA), INRIA(Fr), Keio(Japan) • 成果物:XML, HTML, XHTML, SVG, SOAP, RDF,...
世界規模・国際間・言語間データ通信エラーを世界規模・国際間・言語間データ通信エラーを 潜在的に回避する仕様 XMLは “Internet standard” XML文書には,UTF-8を使用→防文字化け・処理ミス http://www.unicode.org/ http://www.w3.org/TR/2003/NOTE-unicode-xml-20030613 • 文字コードを,UNICODEを標準採用することで,世界中の文字を利用可能 • メタ言語方式としてTag方式を採用した →<tag>contents</tag>挟み込みで対応 →つまりXMLでは,tab, space, LF, CRは無視
XMLの “Extensible” • XMLのデータ処理は,XML Parserを使う • →Parserは,”タグ名”で検索して内容を取得するため • データの追加(拡張)は,問題なく対応できる • データの順序変更も,問題なく対応できる
<? xml version =" 1 . 0 " encoding =" UTF - 8 " ?> < ! DOCTYPE personal [ < ! ELEMENT personal ( name , age , sex , address ) > < ! ELEMENT name ( # PCDATA ) > < ! ELEMENT age ( # PCDATA ) > < ! ELEMENT sex ( # PCDATA ) > < ! ELEMENT address ( # PCDATA ) > ] > < personal > < name > Akutagawa Ryunosuke < / name > < age > 31 < / age > < sex > male < / sex > < address > Tokyo < / address > < / personal > XML文書の構成 XML Declaration (XML 宣言) → Schema (スキーマ) DTD (Document Type Definition) → → XML Instance (XML インスタンス)
<? xml version =" 1 . 0 " encoding =" UTF - 8 " ?> Schema (スキーマ) DTD (Document Type Definition) → < ! DOCTYPE personal [ < ! ELEMENT personal ( name , age , sex , address ) > < ! ELEMENT name ( # PCDATA ) > < ! ELEMENT age ( # PCDATA ) > < ! ELEMENT sex ( # PCDATA ) > < ! ELEMENT address ( # PCDATA ) > ] > → XML Instance (XML インスタンス) < personal > < name > Akutagawa Ryunosuke < / name > < age > 31 < / age > < sex > male < / sex > < address > Tokyo < / address > < / personal > XML文書の構成 XML Declaration (XML 宣言) → XMLのバージョン宣言,文字コードの宣言などをおこなう.
XML Declaration (XML 宣言) → <? xml version =" 1 . 0 " encoding =" UTF - 8 " ?> < ! DOCTYPE personal [ < ! ELEMENT personal ( name , age , sex , address ) > < ! ELEMENT name ( # PCDATA ) > < ! ELEMENT age ( # PCDATA ) > < ! ELEMENT sex ( # PCDATA ) > < ! ELEMENT address ( # PCDATA ) > ] > → < personal > < name > Akutagawa Ryunosuke < / name > < age > 31 < / age > < sex > male < / sex > < address > Tokyo < / address > < / personal > XML文書の構成 Schema (スキーマ) → タグ付きデータに現れる要素,属性,エンティティなどの宣言をおこなう部分.文書構造の定義をおこなう. XML Instance (XML インスタンス)
XML Declaration (XML 宣言) → <? xml version =" 1 . 0 " encoding =" UTF - 8 " ?> Schema (スキーマ) DTD (Document Type Definition) → < ! DOCTYPE personal [ < ! ELEMENT personal ( name , age , sex , address ) > < ! ELEMENT name ( # PCDATA ) > < ! ELEMENT age ( # PCDATA ) > < ! ELEMENT sex ( # PCDATA ) > < ! ELEMENT address ( # PCDATA ) > ] > < personal > < name > Akutagawa Ryunosuke < / name > < age > 31 < / age > < sex > male < / sex > < address > Tokyo < / address > < / personal > XML文書の構成 → XML Instance (XML インスタンス) 実際のタグ付き文書が書かれる部分
Schema(スキーマ) • スキーマは,XMLに固有のタグ名・構造などを与える文書構造の定義 • XMLはタグの設計を自由に行える • <name>芥川龍之介</name> • <namae>芥川龍之介</namae> →つまり,同意味に対して複数の定義が可能 →データ通信で複数定義があると問題
Schema(スキーマ)の種類 • XMLのスキーマは複数存在する • DTD (Document Type Definition)→公式サイトなし • SGML時代から使っており実績がある • W3C XML Schema • W3C作成の為今後のスタンダード • 複雑 • Relax NG • 国産スキーマ • W3C XML Schemaが策定されるまで一時的に使うなど・・
スキーマリポジトリ(一般) • 同じ分野でスキーマが開発されていないか,独自開発する前に検索すべき
XML文書の種類 • 整形式XML文書(well-formed XML document) • 開始タグと終了タグの対応がある, • 要素タグの論理構造が合っている,など • 検証済みXML文書(valid XML document) • DTD(もしくは,スキーマ)の中の要素型宣言によって定義された要素の階層関係に従って,タグ付けがおこなわれている 整形式XML文書 検証済み XML文書 ただのテキスト文書
インスタンス部分:タグ付け • Element(要素)の書き方 • Element(要素):タグで囲まれた文字列 例: <name>芥川龍之介</name>
XMLの基本文法ルール • 要素(タグ名)は自由に設計できる • 大文字・小文字は区別 • ルート要素は1つのみ • 入れ子構造に厳格 • ○<a><b></b></a> • ×<a><b></a></b> • 終了タグは必ず必要 • 内容が無い空要素の場合 • <break></break> • <break /> ←半角スペース
例:テキスト 講義名: COE21-LKR 認知的知識資源論 単位数: 2-0-0 担当教員:徃住彰文 講義のねらい知識資源の設計,収集,獲得,蓄積,利用に関する基本知識を整理する.特に,認知科学的観点から知識資源研究にアプローチするための基本技能の習得をめざす.知識資源を,文字,記号,文書,知識資源,大規模知識資源として扱う方法を概観し,電子的(ディジタル化した)表現法,計算的(プログラミング言語やツールによる)操作法の基礎を学ぶことが主たる内容である. 成績評価学期末までに提出するレポート一篇の成績に基づく テキストなどなし. 担当教員から一言人間行動システム専攻における実習授業「COE21-LKR知識資源活用実習」(中川・赤間)と相互補完的な関係にある.
例:タグ付けをおこなう <?xml version=“1.0” encoding=“UTF-8” ?> <lecture> <name>COE21-LKR 認知的知識資源論</name> <tani>2-0-0</tani> <lecturer>徃住彰文</lecturer> <aim>知識資源の設計,収集,獲得,蓄積,利用に関する基本知識を整理する.特に,認知科学的観点から知識資源研究にアプローチするための基本技能の習得をめざす.知識資源を,文字,記号,文書,知識資源,大規模知識資源として扱う方法を概観し,電子的(ディジタル化した)表現法,計算的(プログラミング言語やツールによる)操作法の基礎を学ぶことが主たる内容である.</aim> <evaluation>学期末までに提出するレポート一篇の成績に基づく.</evaluation> <text>なし.</text> <comment>人間行動システム専攻における実習授業「COE21-LKR知識資源活用実習」(中川・赤間)と相互補完的な関係にある.</comment> </lecture>
DTD(Document Type Definition)をつくる(自分でつくる場合) • まずは必要なデータを考えてつくってみる(自由に設計することができる). <lecture> <name>COE21-LKR 認知的知識資源論</name> <tani>2-0-0</tani> <lecturer>徃住彰文</lecturer> <aim>知識資源の設計・収集・蓄積・利用に関する基本知識を整理する.</aim> <evaluation>学期末までに提出するレポート一篇の成績に基づく.</evaluation> <text>なし</text> <comment>人間行動システム専攻における実習授業「COE21-LKR知識資源活用実習」(中川・赤間)と相互補完的な関係にある.</comment> </lecture> 設計したデータ(構造)以外を認めないように スキーマ(DTD)を設計する
<!DOCTYPE rootelement [ DTD記述 ]> DTD記述 XML文書内に記述する方法(Internal Subset) 基本形 <?xml version=“1.0” encoding=“UTF-8” ?> <!DOCTYPE lecture [ <!ELEMENT name (#PCDATA)> <!ELEMENT tani (#PCDATA)> <!ELEMENT lecturer (#PCDATA)> <!ELEMENT aim (#PCDATA)> <!ELEMENT evaluation (#PCDATA)> <!ELEMENT text (#PCDATA)> <!ELEMENT comment (#PCDATA)> ]>
DTDまとめ • XMLの文書構造を規定するスキーマ言語の1つ • 将来は,W3C XML Schemaに置き換わる • (というか現在進行形で置き換わりつつある) • DTDよりも細かくデータ型を指定できる. • 名前空間が使用可能(本講義では説明略) • (しかしながら,XML Schemaも,DTDを理解していたほうが理解しやすい)
Web BrowserのXML処理機能 • 最新ブラウザでは,XML文書を簡易処理できる機能が搭載されている • well-formed XML文書チェック • XML文書をTree表示(上記をクリアすると表示) • 簡易XSL処理(本講義では説明略) • その他,plugin機能により機能拡張可能 • サンプル
その他(本講義では説明略) • XHTML (Extensible HyperText Markup Language) • Webページ記述言語であるHTMLを,XML処理系であつかるように変更したもの • XSL (Extensible Stylesheet Language) • XMLデータをウェブページとして表示させるための言語 • W3C XML Schema :XML名前空間(Namespace in XML) • 世界で一意のURIを使って,タグの重複を防ぐ
XMLの使用例 • 身近なXMLドキュメント • Messenger • 各商品タグ,各文書 • Corpus of Spontaneous Japanese (CSJ)プロジェクト • 話し言葉コーパスのあつかい • TEI (Text Encoding Initiative) プロジェクト • 人文科学的文書資源のあつかい
1. 身近なXMLドキュメント • Messenger
2. Corpus of Spontaneous Japanese (CSJ)プロジェクト • 話し言葉コーパス • 開発は,国立国語研究所,通信総合研究所,東京工業大学(古井貞煕教授) • コーパス • 電子化された自然言語の文章をおさめたテキストデータ • 現代日本語の自発音声のデータベース • 約750万語 [about 7,500,000 words] • 約600時間 [about 600 hours] • 対象:主に講演 [Target: lecture, mainly] • まとまった内容を持つ [definite contents] • 全曲共通語 [a common language] • モノローグ音声 [monologue] • サンプル音声
2. Corpus of Spontaneous Japanese (CSJ)プロジェクト • 音声を書き起こして, • その後XML文書化
3. TEI (Text Encoding Initiative) • http://www.tei-c.org/ • Text Encoding Initiative • 文学的,言語学的文章のマークアップに特化したXMLスキーマ • 原文書の印刷上の特徴をマークアップすることに焦点を置いている. • そのほかに,効果的な検索や索引作成、比較なども可能.
TEIの歴史 • 1987: ACH (the Association for Computers and the Humanities) at Vassar College • 1990: TEI P1 SGML • 1994: TEI P3 • 1999: TEI P3 (1999 revised edition) • 2002: TEI P4 XML • 2004: TEI P5 (not yet) • *** TEI LITE;;; for customization • *** Pizza Chef
そもそも文学とは... • 単語の意味や文章の構造はもちろん大切. • でも,単語や文章の意味だけではない!!! • ⇒ 文章の意味を補助するものとして,印刷上の工夫がなされている. • e.g. 強調(太字・斜体),字下げ,余白,改行など • 文章の深みを出したり,効果を高めたり... • 例.小説,詩,脚本など • TEIでは,文章のこうした側面を区別できるマークアップ方法を提示している.
ShakespeareのRomeo and Juliet HTMLファイル <p> Oh speake againe bright Angel, for thou art <br> As glorious to this night being ore my head, <br> As is a winged messenger of heauen <br>Vnto the white vpturned wondring eyes, <br>Of mortalls that fall backe to gaze on him, <br>When he bestrides the lazie puffing Cloudes, <br>And sayles vpon the bosome of the ayre. <br> O Romeo, Romeo, wherefore art thou Romeo? <br>Denie thy father and refuse thy name: <br>Or if thou wilt not, be but sworne my loue, <br>And ile no longer be a Capulet. <br>Shall I heare more, or shall I speake at this?<br> ... </p>
ShakespeareのRomeo and Juliet TEIのDTDを使うと... Oh speake againe bright Angel, for thou art <lb/>As glorious to this night being ore my head, <lb/>As is a winged messenger of heauen <lb/>Vnto the white vpturned wondring eyes, <lb/>Of mortalls that fall backe to gaze on him, <lb/>When he bestrides the lazie puffing Cloudes, <lb/>And sayles vpon the bosome of the ayre. <lb/><q type=“spoken” who=“Juliet”>O <persName key=“romeo”>Romeo</persName>, <persName key=“romeo”> Romeo</persName>, wherefore art thou <persName key=“romeo”> Romeo</persName>? <lb/>Denie thy father and refuse thy name: <lb/>Or if thou wilt not, be but sworne my loue, <lb/>And ile no longer be a <placeName key=“capulet”><persName key=“capulet”>Capulet</persName></placeName>. </q><lb/><q type=thought” who=“romeo”>Shall I heare more, or shall I speake at this? </q><lb/> →TEIにより、多くの意味を持った内容を付け足すことが可能. →たとえば, “Julietの発話だけ斜体にしたい”といった要求に耐えうる.
文学をあつかっている他プロジェクトとの比較文学をあつかっている他プロジェクトとの比較 • (e.g.) Project Gutenberg (http://www.gutenberg.org/) • 文学的、歴史的作品 • 無料で一般に公開 • 目標:プレーンなASCIIで文章を作成すること • どんな強調も → 太字 • 段落 → 空白行 • これはこれで,テキスト利用者がテキストを自由に再構成できるという利点がある. • TEIでは文書作成側による明示的構成がされている • 自動化されたツールでの処理や解析は容易になる.
TEIにできること • 文書に対して,豊富な意味をもったマークアップが可能. • 過去の出版物を表現可能 • (e.g.) 聖書 • (e.g.)カントの「純粋理性批判 」の「A版」「B版」 • TEIを用いたプロジェクト • http://www.tei-c.org/Applications/index.html
ほかに,文学をあつかうプロジェクト • Project Gutenberghttp://promo.net/pg/ • Oxford Text Archivehttp://ota.ahds.ac.uk/ • Electronic Text Center, UVahttp://etext.virginia.edu/ • 青空文庫http://www.aozora.gr.jp/
XML編集ソフト紹介 ◎XMLSPY (Windowsのみ) • http://www.xmlspy.com/ • XML統合開発環境.他の追撃を許さない.完璧. ○EmEditor (Windowsのみ) • http://www.emeditor.com/ • Text Editorとしては高性能.シェアウェア. ○JEdit (Macのみ) • http://www.artman21.net/product/Jedit4 • Text Editorとしては高性能.シェアウェア. ○Emacs (UNIX系) • PSGMLなど http://db-www.aist-nara.ac.jp/xml/psgml/
参考文献 • XML完全解説(上下) 技術評論社
用語辞典(Internet) • IT用語辞典 e-Words http://e-words.jp/ • アスキーデジタル用語辞典 http://yougo.ascii24.com/ • XML用語辞典 http://www.atmarkit.co.jp/fxml/dictionary/indexpage/xmlindex.html • Webopedia from internet.com http://webopedia.internet.com/
参考サイト(XML関連) • World Wide Web Consortium (W3C) http://www.w3.org/ • アットマーク・アイティ ”XML, Web Services” http://www.atmarkit.co.jp/fxml/ • たのしいXML: XML/XHTML入門ページですhttp://www.cityfujisawa.ne.jp/~yanai/xml/ • XML Consortium (Japan) http://www.xmlconsortium.org/ • 日本XMLユーザーグループ http://www.xml.gr.jp/
参考サイト(XSL/XSLT関連) • World Wide Web Consortium (W3C) XSL/XSLT http://www.w3.org/Style/XSL/ • 「サンプルで覚えるXSLTプログラミング」(小山尚彦) http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt00.html • ArkサイトXMLアカデミー(ジャストシステム) http://www.justsystem.co.jp/ark/xml/ • XSLT仕様(日本語訳)(インフォテリア) http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm • Apache Software Foundation Cocoon 2 (Server Side XSLT) http://cocoon.apache.org/
参考サイト・文献(文字コード) • UNICODE http://www.unicode.org/ • 日本語文字コード: ASH Multimedia lab http://ash.jp/code/ • 文字コード超研究 深沢 千尋 (著) http://www.rutles.net/books/051.html 株式会社ラトルズ刊 ISBN4-89977-051-0
参考サイト(XML Parser) • DOM (Document Object Model) @ W3C http://www.w3.org/DOM/ • SAX (Simple API for XML) http://www.saxproject.org/ • XPP (XML Pull Parser) http://www.extreme.indiana.edu/xgws/xsoap/xpp/ • Sun XML Parser http://java.sun.com/xml/ • Microsoft XML Parser http://msdn.microsoft.com/xml/ • Expat (C++) http://www.jclark.com/xml/expat.html • Xerces (C++, Java2, Perl) Apache S/W Founda. http://xml.apache.org