|
1998.9.4
1 表紙
テキスト交換流通のためのコーディング知識
− TEI 紹介 −
ルウ・バーナード
人文学コンピュータ学科
(Humanities Computing Unit)
オックスフォード大学
(Oxford University)
(*ロゴ面−HCU@OUCS)
2 問題
- SGML/XML のマーク付けは強力で柔軟性があり、
たいてい(すべて?)の要求を満たすようにカスタマイズできる。
- しかし、それを使いこなすには形式的な説明が必要だ。
(いわゆる文書型定義 DTD)
- それをどこから入手するのか?
- どのように選択するのか?
3 解答例
- 自分で考える。
−ゼロから
−既存の枠組の中で
- 既製品を購入する。
- TEI 構造を使う。
4 テキスト・エンコーディング・イニシアチブ(TEI)
テキスト・エンコーディング・イニシアチブ
起源と目標
モジュラー構造
カスタマイズ
5 TEI の由来
- 人文学研究社会から
・図書館司書、サイバー空間飛行士(cybernauts)
・言語学者、歴史学者、辞書学者、他
- 後援
・コンピュータと人文学学会
(ACH: Association for Computers and the Humanities)
・コンピュータ言語学学会
(ACL: Association for Computational Linguistics)
・文学・語学コンピュータ学会
(ALLC: Association for Literary and Linguistic Computing)
- 資金提供
・合衆国国立人文学基金
(U.S. National Endowment for the Humanities)
・メロン財団(Mellon Foundation)
・欧州共同体委員会第 13 回合同理事会
(Commission of European Communities DG XIII)
・カナダ社会科学、人文学研究委員会
(Social Science and Humanities Research Council of Canada)
6 …と未来
- 新たなアプリケーション領域での継続研究
−原稿の記述
−体裁の記述
−非 SGML データ
−XML との適合性
- 継続的作業
- 新たなインフラストラクチャへの要求
- 1998年夏予定の P3 ガイドライン訂正再版
7 TEI の目標
- よりよいデータの交換と統合
- あらゆる言語、時代のテキストへの対応
- 不安を抱く人たちへのガイダンス−何をコーディングするのか。
- 専門家への助言−関心対象の情報をいかにコーディングすべきか。
既存の優れた実践を踏まえたユーザ主体の法則化
8 TEI のもたらすもの
- テキストのコーディングに関する一貫性のある勧告
- 数種の異なった SGML タグ・セットを構成すること
- 既存の実践に基づくこと
- リファレンス・マニュアルの形での文書化
- 一般利用者・専門家に向けたチュートリアル
…けれどもソフトウェア無し。
9 TEI の作業方針…
- 記法・表現から独立したテキストの重要な特性を表す。
- 口論・過剰反応・中途半端を避ける。
- 一般化可能な解決法を同意可能な方法で追求する。
10 …といささかの結果
- 表現ではなく内容の重視
- 規範的ではなく記述的
- オッカムの剃刀
(*「本質は不必要にいくつも示すものではない。」という命題。TEI J31 参照。)
- モジュール化され、拡張可能な dtd
- どのアプリケーションにも共通で、
そのため特定領域ではカスタマイズを必要とすること
11 TEI の利用者
- http://www-tei.uic/orgs/tei/app/ 参照。
- 電子図書館とアーカイブ作成者
・ LC, HTI, UVA, CETH, OTA ...
- 言語工学プロジェクト
・ EAGLES, BNC, MULTEXT, Parole, Silfide
- 学術研究者
・ Women Writers Project, Project Orlando,
Model Editions Partnership, Canterbury Tales Project,
Bodleian Library, その他多数...
【訳注】
- LC(Library of Congress)
—米国議会図書館。(ref.)Susan Hockey。
- HTI(Humanities Text Initiative)
—ミシガン大学(the University of Michigan)人文学テキスト・イニシアチブhttp://www.hti.umich.edu/
- UVA(University of Virginia Electronic Text Center)
—ヴァージニア大学電子テキストセンターhttp://etext.lib.virginia.edu/
- CETH(Center for Electronic Texts in the Humanities)
—ニュージャージー州立ラトガース大学(Rutgers,The State University of New Jersey)人文学電子テキストセンターhttp://www.ceth.rutgers.edu
- OTA(Oxford Text Archive)
—オックスフォード・テキスト・アーカイブhttp://ota.ahds.ac.uk/
- EAGLES(Expert Advisory Group on Language Engineering Standards)
—言語工学の標準作成専門部会(イタリア、ピサ)。5部会(Text Corpora, Computational Lexicons, Computational Linguistic Formalisms, Evaluation and Spoken Language)に分かれる。「Handbook of Standards and Resources for Spoken Language Systems」等。http://www.ilc.pi.cnr.it/EAGLES96/home.htmlその他、ドイツのビエレフェルト大学(the University of Bielefeld)も参照。http://www.uni-bielefeld.de
- BNC(British National Corpus)
—同協会(the BNC Consortium)によるコーパス。http://info.ox.ac.uk/bnc
- MULTEXT(Multilingual Text Tools and Corpora)
—フランス国立科学研究センターによる言語学コーパス研究プロジェクト。http://www.lpl.univ-aix.fr/projects/multext/
- Parole
—イタリアの言語工学プロジェクト。http://www.ilc.pi.cnr.it/parole/parole.html
- Silfide(Serveur Interactif pour la Langue Francaise, son Identite, sa Diffusion, son Etude)
—参照:フランス国立学術研究センター(CNRS)、パトリス・ボノム(Patrice Bonhomme、http://www.loria.fr/~bonhomme)http://www.loria.fr/projets/Silfide/ http://www.loria.fr/Projet/Silfide/silfide.html
- Women Writer's Project
—アメリカのブラウン大学(the Brown University)女性作家プロジェクトhttp://www.wwp.brown.edu/ 他に、インディアナ大学「ヴィクトリア朝女性作家プロジェクト」(The Victorian Women Writers Project)も参照。http://www.indiana.edu/~letrs/vwwp/
- Project Orlando
—カナダのアルバータ大学(the University of Alberta)英国女性作家史(An Integrated History of Women's Writing in the British Isles)プロジェクト。ヴァージニア・ウルフ『オルランド』に因む。http://www.ualberta.ca/ORLANDO
- Model Editions Partnership(MEP)
—副題「デジタル時代の歴史文書」(Historical Editions in the Digital Age)。南カリフォルニア大学等7機関によるアメリカ歴史文書電子化プロジェクト。http://mep.cla.sc.edu
- Canterbury Tales Project
—チョーサー「カンタベリー物語」の本文、書誌、索引等の電子テキストサービス。イギリスのシェフィールド大学(the University of Sheffield)等5大学連合プロジェクト。http://www.shef.ac.uk/uni/projects/ctp/index.html
- Bodleian Library
—オックスフォード大学ボドレー図書館。http://www.bodley.ox.ac.uk/
12 独自 DTD の設計
- たった一つのマーク付け方式で多種多様な要求に応えられるのか?
−テキストの構造はどれも似たもの
−どのテキストも異なっている。
- データベース設計者から学んだこと
−構築物は1つ、表現はいくつでも。
−各表現は全体から必要要素を抜き出したものである。
13 DTD はいくつ必要か?
- 1つ (法人的な又は WKWBFY 的な解法)
- なし (無政府的な又は NWEUMP 的な解法)
- 必要なだけすべて (混合経済的な又は WNSA 的な解法)
それとも、もっと良い方法でも?
14 TEI の解決−モジュール化
- (非常に)多くの要素と属性の定義
- タグ・セットとしての組織化(コア、基本、付加、補助)
- クラスへのグループ化
多くの顔を持つ、1つの主要 DTD
15 タグ・セットの結合
・次に、どのようにタグ・セットを結合するか。
ここで再び「いくつの DTD が必要か」という問題となる。
−常に、全部のタグ・セットを結合(定食モデル)
−先に、少数のタグ・セットを選択(コース別モデル)
−勝手気儘、どうでもよし(スカンジナビア式オードブルモデル)
−A列から1つ、B列から2つ(中華料理モデル)
16 「シカゴ風ピザ」モデル
<!ENTITY % base
(deepDish|thinCrust|stuffed) >
<!ENTITY % topping
(pepperoni|mushrooms|sausage|
pepper|anshovies| ...) >
<!ELEMENT pizza - -
(%base;, tomatoSauce & cheese, %(topping)* >
(*訳例)
<!ENTITY % 土台
(深皿|薄焼のパイ皮|詰め物) >
<!ENTITY % トッピング
(ペパロニ|マッシュルーム|ソーセージ|
胡椒|アンチョビー| ...) >
<!ELEMENT ピザ - -
(%土台;, トマトソース & チーズ, %(トッピング)* >
17 TEI DTD の外観を作るには…
- コア・タグ・セット
- 選択した基本タグ・セット
- 選択したトッピング
<!DOCTYPE TEI.2 system 'tei2.dtd' [
<!ENTITY % tei.prose 'INCLUDE' >
<!ENTITY % tei.analysis 'INCLUDE' >
]>
<tei.2> ..... </tei.2>
18 …上手に形を整えて…
- ユーザ拡張ファイル
- 要素名の変更
- 未定義の要素は再定義するか(後述)、排除する。
<!ENTITY % tei.extensions.ent
SYSTEM 'myMods.ent'>
<!ENTITY % n.p 'para'>
<!ENTITY % seg 'IGNORE'>
19 …完全に調理する。
- すべてのパラメータ化を取り去るため、「コンパイル」する。
- ソフトウェアが処理しやすくする。
- よりよいプロジェクト運営
- http://firth.natcorp.ox.ac.uk/~tei/pizza.html 参照
- 文書の説明を忘れずに!
20 TEI 基本タグ・セット
- 選ぶのは1つだけ。
- 基本構成要素を定義する。
- 現在、定義してあるもの。
−散文、韻文、戯曲
−会話記録
−辞書
−語彙データベース
- 基本セットを複合的に使うには、特別の取り扱いを要する。
21 TEI 付加タグ・セット
- 特別なアプリケーション分野に関する要素セット
- 随意に混ぜたり組み合わせたりしてよい。
- 現在、用意しているもの。
−リンクと配列/分析/特徴構造/確実性/外形的模写/
文献批判/名前と日付/グラフとツリー構造図/図と表/
言語コーパス …
22 適用事例
- 主たる dtd はマーク済みセクションから成り、
それぞれ(潜在的には)1つずつタグ・セットを含む。
- デフォルトでは、すべてのタグ・セットは無視(IGNORE)される。
<![ %TEI.tagset [
<!-- タグ・セット宣言がここに入る。-->
]]>
<!ENTITY % TEI.tagset "INCLUDE">
23 適用事例(続)
- タグ・セットには要素と属性リストの宣言が複数含まれ、
それぞれがさらにマーク済みセクションで囲まれる。
- デフォルトでは、すべての要素は含まれる(INCLUDE)。
<![ %element [
<!ELEMENT %n.element - - (#PCDATA)>
<!ATTLIST %n.element %a.global >
]]>
<!ENTITY % element "IGNORE">
24 適用事例(続々)
- 要素名(GIs)(* Generic Identifiers 総称識別子)は、名前を変更
できるように常に間接的に参照される。
<!ELEMENT %n.elem1 - (%n.elem2;+)>
<!ENTITY % n.elem1 "elem1"> <!ENTITY % n.elem2 "foo">
25 要素クラス
- モデル・クラス
−構文的属性を共有する(つまり同じ位置に現れる)要素
- 属性クラス
−属性を共有する要素
- クラスの成員資格は継承できる。
- 構造的形式をなす別の方法
26 TEI モデル分類の例
- divn:テキスト区分のような構造的要素
<div>,<div1>,<div2>,<lg>,<lg1>…
- divtop:<divn>の最初に現れうる要素
<head>,<epigraph>,<byLine>…
- chunk:段落(パラグラフ)に似た要素(*chunks 塊)
<sp>,<p>,<lg>,<l>…
- phrase:塊の中に現れる要素(*phrase 句)
<hi>,<foreign>,<date>,<q>…
【注記】 特に韻文や戯曲・脚本等に用いるタグ。
<l> 韻文の1行。/ <lg> 韻文のまとまり(スタンザ、リフレイン、連、他)。
<sp> 人物の会話(脚本・散文・韻文中)
who 属性−ID をつけ、人物を識別・特定する。
<speaker> 話し手(単数・複数)の名を記したラベル
<byLine(byline)> 扉、序跋にある著者名表記
27 TEI 構文分類の例
- data:正規化ないしテキストとしてでなく処理することの多い句
<date>,<time>,<name>…
- biblpart:書誌的記述専用の必須要素
<author>,<title>,<editor>…
- demographic:言語の相互作用に関わるものの記述的特徴
<birth>,<socEcstat>,<occupation>…
28 TEI 属性分類の例
- global:すべての要素で利用できる属性(*共通属性)
n, lang, id, TEIform
- linking:リンク構文をもつ要素の属性
targType, targOrder, evaluate
29 分類体系の実例
- 文書作成の単純化と DTD の理解
- 内容モデルのパラメータ化
−基本タグ・セットによって組み合わせが異なったものになる。
- カスタマイズの単純化
−クラス内の成員は影響を受けない。
−既存のクラスに新しい要素を加える。
30 パラメータ化した内容モデル
- 例:「必須要素」
−辞書は項目から成る。
−戯曲は会話から成る。
−小説は段落で出来ている。
- どの場合にも、基本となる「テキストのスープ」(と構造的区分)
は同じままだが、異なったものに組織される。
31 適用事例(再)
- 必須要素クラスは、基本タグ・セットによってその成員(構成
分子)が異なる。
<! %TEI-prose [
<!ENTITY % m.component "p|list|note">
]]>
<![ %TEI.dictionaries [
<!ENTITY % m.component "entry">
]]>
<!ENTITY % component.seq "(%m.component)+">
<!ELEMENT div -- (head?,(%component.seq),div*)>
32 カスタマイズ
- 要素を削除するには、
−それを宣言しない。
−(注意:すべての開発業者が知っているわけではないが、
ISO 8879 では未定義の要素への参照をも許容している。)
- 新たに要素を追加するには、
−その所属クラスを決定し、
−その要素を定義し、
−そのクラスに追加する。
【注記】 ISO 8879:SGML 国際標準
・ISO 8879-1986 (E). Information processing
--- Text and Office Systems --- Standard Generalized
Markup Language (SGML).
First edition --- 1986-10-15. [Geneva]: International
Organization for Standardization, 1986.
・ISO 8879:1986 / A1:1988 (E). Information processing
--- Text and Office Systems --- Standard Generalized
Markup Language (SGML), Amendment 1.
Published 1988-07-01. [Geneva]: International
Organization for Standardization, 1988.
33 カスタマイズ(続)
- 要素の変更は、削除してから改めて追加するということ。
- クラスの成員が影響を受けないようにする。
<!-- in TEI.extensions.ent -->
<!ENTITY % p "IGNORE">
<!-- in TEI.extensions.dtd -->
<!ELEMENT %n.p - - (#PCDATA)>
34 適用事例(再々)
- それぞれのモデル・クラスは、パラメータ実体として定義される。
- クラスの成員への参照は、常に間接的なものである。
- 拡張可能な構成分子(裏技 [kludge] によるもの。)
<!ENTITY % x.class "">
<!ENTITY % m.class "%x.class name1|name2|name3 …">
<!ELEMENT % n.element - - (%m.class;+)">
35 実例:ランピーター・コーパス [the Lampeter corpus]
- 要件
−緩やかな表示用タグ付け
−アクセスのための構造的マーク付け
−テキスト作成に関する著作者の情報
−データの把握と検証を容易にする少数のタグ
- 実装
−タグ・セット:散文用基本セットに4つの付加セットからの
タグを加えたもの
−拡張は控えめに、除外は多めに。
36 ランピーター・コーパスの DTD サブセット
<!DOCTYPE TEICORPUS.2 SYSTEM "tei2.dtd" [
<!ENTITY % TEI.prose "INCLUDE">
<!ENTITY % TEI.corpus "INCLUDE">
<!ENTITY % TEI.figures "INCLUDE">
<!ENTITY % TEI.transcr "INCLUDE">
<!ENTITY % TEI.extensions.ent SYSTEM "lampext.ent">
<!ENTITY % TEI.extensions.dtd SYSTEM "lampext.dtd">
<!-- さらに宣言が入る。 -->
]>
37 ランピーター・コーパスの拡張実体ファイル(extensions.ent)
<!ENTITY % analytic 'IGNORE'>
<!ENTITY % biblStruct 'IGNORE'>
<!-- hic desunt multa -->
<!ENTITY % supplied 'IGNORE'>
<!ENTITY % x.phrase "it|ro|sc|su|bo|go|">
<!ENTITY % x.biblPart "printer|pubFormat|bookSeller|">
<!ENTITY % x.demographic "socecstatusPat|biogNote|">
<!ENTITY % x.globincl "gap|">
38 ランピーター・コーパスの拡張 DTD (extensions.dtd)
<!ELEMENT (it|ro|sc|su|bo|go)
- - (%phrase.seq)>
<!ELEMENT (persName|printer|pubFormat
|bookSeller|biogNote|socecstatusPat)
- - (%phrase.seq)>
39 要約
- DTD をうまく設計するには、
注意深く、十分自覚して、統制のとれた形で、盗むこと。
- 作業のモジュール化
- クラス機構によって明らかになってくるもの
−すべての文書に当てはまるもの
−一部の文書にだけ当てはまるもの
- 変更可能であることと標準化とは両立可能である。
[以上]
|