XMLの基礎 1/2

文書資源の基礎: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