文書資源の基礎:XML 2006年6月2日 COE21-LKR 認知的知識資源論 徃住研・松本 文書資源を扱う 文字→記号→文書→知識 文書を知識資源として扱うには... XMLというものを使用する方法がある. 本日の講義では,文書を扱う枠組みとしてのXML という視点で紹介をおこなう. 2006/06/02 2 XMLとは? XML (Extensible Markup Language) 拡張性のある, テキストに印をつけるための言葉 参考:たのしいXML:http://www6.airnet.ne.jp/manyo/xml/index.html 2006/06/02 3 印をつけるための言語 印をつける=意味(印)付けをする markupの例 Tag: <name>Natsume</name>, [name] Natsume[name],… Tab: name Natsume ←左が意味,タブを挟んで内容 Colon: name: Natsume ←左が意味,コロンを挟んで内容 2006/06/02 4 XMLが採用したmarkup方式 tag(タグ)方式→記号は,”<“, “>” start tag(開始タグ),end tag(終了タグ)で挟む end tagは,”/”を最初に付ける 例:<name> 夏目漱石 </name> 開始タグ 2006/06/02 内容 終了タグ 5 歴史:XMLができるまで 1980年代 SGML 簡素化,改良 インターネット用 HTML XML XHTML HTMLを,XML処理系で 扱えるように定義しなお した言語. 2006/06/02 6 SGML Standard Generalized Markup Language インターネット用ではない, 汎用の文書処理. 例.自動車のマニュアルド キュメントなど ドキュメントの「論理的な構 造」をテキストで表現して交 換する(「見栄え」について は交換不可能.) デメリット: マニュアル タイトル はじめに 製品概要 本文 図 SGML文書 2006/06/02 不要な機能が実装され理解が困難 レイアウト構造が反映されない 7 XMLをつくる人たち 世界でネットワーク業界に力を持つ団体 ウェブの概念を作ったW3Cが開発 W3C:World Wide Web Consortium 2006/06/02 WWW技術の標準化と推進を目的とした、会員制の国 際的な産業コンソーシアム http://www.w3.org/ ホスト:MIT(USA), INRIA(Fr), Keio(Japan) 成果物:XML, HTML, XHTML, SVG, SOAP, RDF,... 8 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は無視 世界規模・国際間・言語間データ通信エラーを 潜在的に回避する仕様 2006/06/02 9 XMLの “Extensible” XMLのデータ処理は,XML Parserを使う <?xml version="1.0" encoding="UTF-8"?> <environment> <weather>fine</weather> <temperature>30.1</temperature> </environment> データ拡張 <?xml version="1.0" encoding="UTF-8"?> <environment> <temperature>30.1</temperature> <humidity>68</humidity> <weather>fine</weather> </environment> →Parserは,”タグ名”で検索して内容を取得するため 2006/06/02 データの追加(拡張)は,問題なく対応できる データの順序変更も,問題なく対応できる 10 XML文書の構成 XML Declaration (XML 宣言) → Schema (スキーマ) DTD (Document Type Definition) → XML Instance (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> 2006/06/02 11 XML文書の構成 XML Declaration (XML 宣言) → → Schema (スキーマ) DTDXMLのバージョン宣言,文字コードの (Document Type Definition) 宣言などをおこなう. XML Instance (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> 2006/06/02 12 XML文書の構成 XML Declaration (XML 宣言) → Schema (スキーマ) → タグ付きデータに現れる要素,属性, エンティティなどの宣言をおこなう部 分.文書構造の定義をおこなう. XML Instance (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> 2006/06/02 13 XML文書の構成 XML Declaration (XML 宣言) → Schema (スキーマ) DTD (Document Type Definition) → XML Instance (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> 2006/06/02 14 Schema(スキーマ) スキーマは,XMLに固有のタグ名・構造な どを与える文書構造の定義 XMLはタグの設計を自由に行える <name>芥川龍之介</name> <namae>芥川龍之介</namae> →つまり,同意味に対して複数の定義が可能 →データ通信で複数定義があると問題 2006/06/02 15 Schema(スキーマ)の種類 XMLのスキーマは複数存在する 2006/06/02 DTD (Document Type Definition)→公式サイトなし SGML時代から使っており実績がある W3C XML Schema W3C作成の為今後のスタンダード 複雑 Relax NG 国産スキーマ W3C XML Schemaが策定されるまで一時的に使うなど・・ 16 スキーマリポジトリ(一般) 同じ分野でスキーマが開発されていないか,独自 開発する前に検索すべき URL 説明 http://www.xml.org/ [Registry]より検索 http://www.schema.net/ ジャンル毎別れている BizTalk Initiative http://www.biztalk.org/ 電子商取引 OAG http://www.openapplicatoins.org/ 統合業務パッケージ OASIS http://www.oasis-open.org 電子商取引 RosettaNet http://www.rosettanet.org 電子商取引 2006/06/02 17 XML文書の種類 整形式XML文書(well-formed XML document) 開始タグと終了タグの対応がある, 要素タグの論理構造が合っている,など 検証済みXML文書(valid XML document) DTD(もしくは,スキーマ)の中の要素型宣言によって定 義された要素の階層関係に従って,タグ付けがおこなわれ ている 整形式XML文書 検証済み XML文書 2006/06/02 ただのテキスト文書 18 インスタンス部分:タグ付け Element(要素)の書き方 Element(要素):タグで囲まれた文字列 start-tag (開始タグ) content end-tag (終了タグ) <要素名> (内容) </要素名> Element (要素) 例: 2006/06/02 <name>芥川龍之介</name> 19 XMLの基本文法ルール 要素(タグ名)は自由に設計できる 大文字・小文字は区別 ルート要素は1つのみ 入れ子構造に厳格 ○<a><b></b></a> ×<a><b></a></b> 終了タグは必ず必要 2006/06/02 内容が無い空要素の場合 <break></break> <break /> ←半角スペース 20 例:テキスト 講義名: COE21-LKR 認知的知識資源論 単位数: 2-0-0 担当教員:徃住彰文 講義のねらい 知識資源の設計,収集,獲得,蓄積,利用に関する基本知識を整理する. 特に,認知科学的観点から知識資源研究にアプローチするための基本技能 の習得をめざす.知識資源を,文字,記号,文書,知識資源,大規模知識 資源として扱う方法を概観し,電子的(ディジタル化した)表現法,計算 的(プログラミング言語やツールによる)操作法の基礎を学ぶことが主た る内容である. 成績評価 学期末までに提出するレポート一篇の成績に基づく テキストなど なし. 担当教員から一言 人間行動システム専攻における実習授業「COE21-LKR知識資源活用実習」 (中川・赤間)と相互補完的な関係にある. 2006/06/02 21 例:タグ付けをおこなう <?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> 2006/06/02 22 例:タグの意味 lecture name tani lecturer aim evaluation text comment 2006/06/02 講義全体 講義名 単位数 担当教員 講義のねらい 成績評価 テキスト 担当教員から一言 23 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> 2006/06/02 設計したデータ(構造)以外を認めないように スキーマ(DTD)を設計する 24 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)> ]> 2006/06/02 <!DOCTYPE rootelement [ DTD記述 ]> DTD記述 25 DTDまとめ XMLの文書構造を規定するスキーマ言語の1つ 将来は,W3C XML Schemaに置き換わる (というか現在進行形で置き換わりつつある) DTDよりも細かくデータ型を指定できる. 名前空間が使用可能(本講義では説明略) (しかしながら,XML Schemaも,DTDを理解して いたほうが理解しやすい) 2004/11/25 26 Web BrowserのXML処理機能 最新ブラウザでは,XML文書を簡易処理できる機能 が搭載されている well-formed XML文書チェック XML文書をTree表示(上記をクリアすると表示) 簡易XSL処理(本講義では説明略) その他,plugin機能により機能拡張可能 サンプル 2006/06/02 27 その他(本講義では説明略) XHTML (Extensible HyperText Markup Language) Webページ記述言語であるHTMLを,XML処理系で あつかるように変更したもの XSL (Extensible Stylesheet Language) XMLデータをウェブページとして表示させるための 言語 W3C XML Schema :XML名前空間(Namespace in XML) 世界で一意のURIを使って,タグの重複を防ぐ 2006/06/02 28 XMLの使用例 身近なXMLドキュメント 1. Messenger 各商品タグ,各文書 Corpus of Spontaneous Japanese (CSJ)プロジェ クト 2. 話し言葉コーパスのあつかい TEI (Text Encoding Initiative) プロジェクト 3. 2006/06/02 人文科学的文書資源のあつかい 29 1. 身近なXMLドキュメント Messenger 2006/06/02 30 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] サンプル音声 2006/06/02 31 2. Corpus of Spontaneous Japanese (CSJ)プロジェクト 音声を書き起こして, その後XML文書化 2006/06/02 32 3. TEI (Text Encoding Initiative) http://www.tei-c.org/ Text Encoding Initiative 文学的,言語学的文章のマークアップに特化 したXMLスキーマ 原文書の印刷上の特徴をマークアップするこ とに焦点を置いている. そのほかに,効果的な検索や索引作成、比較 なども可能. 2006/06/02 33 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 2006/06/02 34 そもそも文学とは... 単語の意味や文章の構造はもちろん大切. でも,単語や文章の意味だけではない!!! ⇒ 文章の意味を補助するものとして,印刷上 の工夫がなされている. e.g. 強調(太字・斜体),字下げ,余白,改行な ど 文章の深みを出したり,効果を高めたり... 例.小説,詩,脚本など TEIでは,文章のこうした側面を区別できる マークアップ方法を提示している. 2006/06/02 35 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> 2006/06/02 36 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の発話だけ斜体にしたい”といった要求に耐えうる. 2006/06/02 37 文学をあつかっている他プロジェクトと の比較 (e.g.) Project Gutenberg (http://www.gutenberg.org/) 文学的、歴史的作品 無料で一般に公開 目標:プレーンなASCIIで文章を作成すること どんな強調も → 段落 → 空白行 太字 これはこれで,テキスト利用者がテキストを自由に再構成でき るという利点がある. TEIでは文書作成側による明示的構成がされている 自動化されたツールでの処理や解析は容易になる. 2006/06/02 38 TEIにできること 文書に対して,豊富な意味をもった マークアップが可能. 過去の出版物を表現可能 (e.g.) 聖書 (e.g.)カントの「純粋理性批判 」の「A版」「B版」 TEIを用いたプロジェクト 2006/06/02 http://www.tei-c.org/Applications/index.html 39 ほかに,文学をあつかうプロジェクト Project Gutenberg http://promo.net/pg/ Oxford Text Archive http://ota.ahds.ac.uk/ Electronic Text Center, UVa http://etext.virginia.edu/ 青空文庫 http://www.aozora.gr.jp/ 2006/06/02 40 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系) 2006/06/02 PSGMLなど http://db-www.aist-nara.ac.jp/xml/psgml/ 41 参考文献 XML完全解説(上下) 技術評論社 2006/06/02 42 用語辞典(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/ 2006/06/02 43 参考サイト(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/ 2006/06/02 44 参考サイト(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-xslt19991116-jpn.htm Apache Software Foundation Cocoon 2 (Server Side XSLT) http://cocoon.apache.org/ 2006/06/02 45 参考サイト・文献(文字コード) UNICODE http://www.unicode.org/ 日本語文字コード: ASH Multimedia lab http://ash.jp/code/ 文字コード超研究 深沢 千尋 (著) http://www.rutles.net/books/051.html 株式会社ラトルズ刊 ISBN4-89977-051-0 2006/06/02 46 参考サイト(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 2006/06/02 47
© Copyright 2024 ExpyDoc