16 リンク,分割,統合
- 異なる要素同士を,属性xml:idを使 い,リンク付ける(16.1 リンク).
- 異なる要素同士を,属性xml:idを使 うことなく,リンク付ける(16.2.1 参照一般,16.2.3 W3C element(),16.2.4 TEI XPointer).
- テキストを任意の方法で分割し,文書内の任意のポイントに印を 付ける(16.3 区画,分割,アンカー).
- テキスト要素から,内容を持つ要素や,空要素で,対応するも の,統合するものを示す(16.4 対応と統合). 51
- テキスト要素の同期を取る.つまり,テキスト要素間で時間を対 応させたり統合したりする(16.5 同期). また,時間軸上のポイントを使い,それらを統合する(16.5.2 同期事象の時間割当て).
- あるテキスト要素と同一の要素や,その複製を指定する(16.6 同一要素と仮想複製).
- 非連続の要素を総合する(16.7 総合).
- 互いに選択的な要素や,その中の優先性を示す(16.8 選択).
- 記述するデータと,マークアップ記述を分けて記録する(16.9 スタンドオフスタイル).
- テキストを,その解釈または分析と関連づける(16.10 分析マークアップとテキストマークアップの連携).
これらの機能では,W3Cが定めたXPointer(Grosso et al. (eds.) (2003))をベースとしている. 本ガイドラインでは,多くのスキームを用意している. その中でも,本ガイドラインが推奨する,一番便利なスキームは,グ ローバルxml:idを使うものである. このグローバル属性は,1.3.1.1 グローバル属性で定義され, v XML入門の 識別子で解説されている. リンクモジュールがスキーマに取り込まれている時,,クラス att.globalは拡張され,先に示 した各種リンクを実現する8つの属性が,追加される. これらの属性については,以下の節で順次解説される. また,以下では,属性値だけを使う,単純であるが一般性のない手法 から,特定の要素を使う,精巧でかつ汎用性のある手法までの,様々 な手法から選択することについても解説される.
- » 16.2 ポインタの機能
- Home | 目次
16.1 リンクTEI: Links¶
ポインタとは,ある要素が他の要素を指し示すもので,出発点とな る要素には属性があり,その属性値に参照がある. この出発点の要素を「ポインタ要素」または簡単に「ポインタ」という. 本ガイドラインで今までに紹介してきたもので,ポインタに相当す るものには,要素note, 要素ref,要素ptrがある. これらの要素は全て,文書中のある場所(当該ポインタがある場所) と,複数の場所(当該ポインタの属性targetで示される識別子を持つ要素)を関連づ けるものである. この章で解説されるモジュールでは,関係の端点同士を結ぶ「リン ク」として知られる,このようなポインタの基本的な使い方をベー スに,様々な手法を導入している. また,属性xml:idを使わない,各種の 方法で,文書中の場所を表現する方法も定義している.
- » 16.1.2 使い方
- Home | 目次
16.1.1 ポインタとリンクTEI: Pointers and Links¶
- ptr/
他の場所を示すポインターを定義する
target 当該ポインタの参照場所を,ひとつ以上のURIで示 す. - ref
他の場所への参照を定義する.多くは,追加テキストまたはコメントを含む
target ひとつ以上のURIで,参照先を特定する. - link/
他の要素では上手く示せない,要素や一節間にある関連性
やハイパーテキストリンクを定義する.
targets リンク付けされれている当該要素または一節の識別子を示す.
- att.pointing
URIにより要素を参照する要素に共通して付与される属性を
定義する.
type 当該ポインタの種類を示す. evaluate 当該ポインタの参照先がポインタである場合,その意 図を示す.
<ptr xml:id="sa-p2" target="#sa-p1"/>
- « 16.1.1 ポインタとリンク
- » 16.1.3 リンクグループ
- Home | 目次
16.1.2 使い方TEI: Using Pointers and Links¶
<l>The Goddess smiles on Whig and Tory race,</l>
<l>
<note type="imitation" place="foot" anchored="false">
<bibl>Virg. Æn. 10.</bibl>
<quote>
<l>Tros Rutulusve fuat; nullo discrimine habebo.</l>
<l>—— Rex Jupiter omnibus idem.</l>
</quote>
</note>'Tis the same rope at sev'ral ends they twist,
</l>
<l>To Dulness, Ridpath is as dear as Mist)</l>
この様な要素noteの使い方は,「暗示的なポインタ (implicit pointing)」(または「暗示的リンク」)といえる. この例では,関連性は,当該脚注と,それに隣接してあるテキス トの配置自体が示していることになる. このように,注釈とテキストの配置自体で,関連するテキストを 明確に示すことは出来ない(例えば,直前の行だけ,または直前 の2行だけなど)と感じる場合や,テキストとは離れた場所に注釈を 記したい場合には,参照やリンク自体を,明示的に示す必要がある. では,そのような方法を考えてみよう.
<l>The Goddess smiles on Whig and Tory race,
<ptr rend="unmarked" target="#note3.284"/>
</l>
<l>'Tis the same rope at sev'ral ends they twist,</l>
<l>To Dulness, Ridpath is as dear as Mist)</l>
<note
xml:id="note3.284"
type="imitation"
place="foot"
anchored="false">
<bibl>Virg. Æn. 10.</bibl>
<quote>
<l>Tros Rutulusve fuat; nullo discrimine habebo.</l>
<l>—— Rex Jupiter omnibus idem.</l>
</quote>
</note>
<l xml:id="l3.284">The Goddess smiles on Whig and Tory race,</l>
<l xml:id="l3.285">'Tis the same rope at sev'ral ends they twist,</l>
<l xml:id="l3.286">To Dulness, Ridpath is as dear as Mist)</l>
<!-- ... -->
type="imitation"
place="foot"
anchored="false"
target="#l3.284">
<ref rend="sc" target="#l3.284">Verse 283–84.
<quote>
<l>——. With equal grace</l>
<l>Our Goddess smiles on Whig and Tory race.</l>
</quote>
</ref>
<bibl>Virg. Æn. 10.</bibl>
<quote>
<l>Tros Rutulusve fuat; nullo discrimine habebo.</l>
<l>—— Rex Jupiter omnibus idem. </l>
</quote>
</note>
- 行中にあるポインタが,注釈を示す.
- 注釈が,行を示す.
- 注釈中にあるポインタが,行を示す.
xml:id="n3.284"
type="imitation"
place="foot"
anchored="false">
<ref rend="sc" target="#l3.284">Verse 283–84.
<quote>
<l>——. With equal grace</l>
<l>Our Goddess smiles on Whig and Tory race.</l>
</quote>
</ref>
<bibl>Virg. Æn. 10.</bibl>
<quote>
<l>Tros Rutulusve fuat; nullo discrimine habebo.</l>
<l>—— Rex Jupiter omnibus idem. </l>
</quote>
</note>
<link targets="#n3.284 #l3.284"/>
xml:id="nt3.284"
type="imitation"
place="foot"
anchored="false">
<ref rend="sc" xml:id="r3.284" target="#l3.284">Verse 283–84.
<quote>
<l>——. With equal grace</l>
<l>Our Goddess smiles on Whig and Tory race.</l>
</quote>
</ref>
<!-- ... -->
</note>
<!-- ... -->
<link targets="#r3.284 #l3.284"/>
- « 16.1.2 使い方
- » 16.1.4 仲介ポインタ
- Home | 目次
16.1.3 リンクグループTEI: Groups of Links¶
- linkGrp 関連性やハイパーテキストリンクの集合を定義する.
- att.pointing.group
ポインタとなる要素に共通の属性を示す.
domains 当該要素の中にある全要素を対象とした識別子を選択 的に指定する. targFunc 要素link,join,altに付与された属性 targetsの値の機能を示す.
- att.pointing
URIにより要素を参照する要素に共通して付与される属性を定義する.
type 当該ポインタの種類を示す.
要素linkGrpは, 同じ種類のリンクを束ねたものに,属性typeで,初期値を与える便利な手法となる. 要素linkの属性 typeは,初期値として,要素linkGrpの属性typeの値と同じ値になる.
<l xml:id="l2.80">Where from Ambrosia, Jove retires for ease.</l>
<!-- ... -->
<l xml:id="l2.88">Sign'd with that Ichor which from Gods distills.</l>
<!-- ... -->
<note xml:id="n2.79" place="foot" anchored="false">
<bibl>Ovid Met. 12.</bibl>
<quote xml:lang="la">
<l>Orbe locus media est, inter terrasq; fretumq;</l>
<l>Cœlestesq; plagas —</l>
</quote>
</note>
<note xml:id="n2.88" place="foot" anchored="false"> Alludes to <bibl>Homer, Iliad 5</bibl> ...
</note>
<link targets="#n2.79 #l2.79"/>
<link targets="#n2.88 #l2.88"/>
<link targets="#n3.284 #l3.284"/>
</linkGrp>
<!-- ... --><linkGrp type="imitation" domains="dunciad dunnotes">
<link targets="#n2.79 #l2.79"/>
<link targets="#n2.88 #l2.88"/>
<!-- ... -->
<link targets="#n3.284 #l3.284"/>
<!-- ... -->
</linkGrp>
属性domainsの各値には,ひとつの親要素が該当することに注意して欲 しい. 例えば,ある注釈が識別子dunnotes を持つ節に含まれ,また別の注釈が識別子dunimitsを持つ節に含まれているとすれば, 仲介するポインタ(16.1.4 仲介ポインタを参照)が,要素linkGrpに含まれている必要があり,そ の要素とその識別子が(訳注:関連性を示すために)使われることになる.
<link targets="#n2.79 #l2.79"/>
<link targets="#n2.88 #l2.88"/>
<!-- ... -->
<link targets="#n3.284 #l3.284"/>
<!-- ... -->
</linkGrp>
- « 16.1.3 リンクグループ
- Home | 目次
16.1.4 仲介ポインタTEI: Intermediate Pointers¶
これまでの例で,注釈と詩の1行をリンク付ける手法をいくつか 紹介してきた. しかし,この例で実際に必要なことは,注釈は,詩の2行(284行 と285行)を関連づけることである.
これに対応する方法は,いくつかある. ひとつは,要素noteに属性targetとtargetEndを使い,当該注釈の範囲を指定す ることである(詳細は3.8 注釈と索引を参照). もうひとつの方法は,二行連句を示す新たな要素を作り,これに 属性xml:idを持たせて,それを要素 noteと 要素refにリンク付けるものである. この様な二行連句は,3.12.1 韻文向けコア要素で 解説する要素lgを使い明示的に示すか,または,16.7 総合で解説する要素joinを使 い,暗示的に示すことが出来る.
属性evaluateの値allは,要素linkが,ター ゲットとしてあるものがポインタである場合,それも評価される (訳注:処理対象とする)ことを示している. 属性evaluateの値がnoneの場合は,このリンクにあるターゲッ トは単にポインタであり,このポインタが参照するオブジェクト とはしないことを示している.
要素linkGrpにより要素linkがまとめられ,そ こにある要素linkで仲介要素 が構成されている場合,それは,当該要素linkGrpの中に含まれるべきである.
- « 16.1 リンク
- » 16.3 区画,分割,アンカー
- Home | 目次
16.2 ポインタの機能TEI: Pointing Mechanisms¶
- 当該文書以外の文書へのポインタ.
- 当該文書以外の文書中にある,属性xml:idを持った特定要素へのポインタ.
- 当該文書やそれ以外の文書にある特定要素へ,XML要素木を参 照に使うポインタ.
- XML文書の任意の内容へ,TEIが規定するXPointerを使うポイン タ.
TEIで使われるポインタの属性は,データ型att.pointerを取るものとして定義され,URI参 照を取ることになる. 54 これまでに解説してきたものは,全てURI参照を使った例である. この他にも,なじみのある例としては,HTMLで,ハイパーテキスト を作る属性hrefを使うものもある. URI参照は,ひとつのXML資源,例えば,XML文書やXML要素を参照す ることが可能で,また,「部分識別子(fragment identifier)」を 使うことで,そのさらに下位部分も参照することが出来る. 「部分識別子」とは,技術的には,文字「#」続く,URI参照の一部 を構成するものである. これにより,URIで参照された資料全体ではなく,その中にある部 分にアクセスすることができるようになる.
以下に続く3つの節では,推奨されている,W3Cが規定する機能を概 説し,その例が示される. 使い方のより詳細については,すぐに他の場所でも解説されることに なる.
- » 16.2.2 ローカル参照
- Home | 目次
16.2.1 参照一般TEI: Pointing Elsewhere¶
恐らく名称としては不適切なのであろうが,広く使われてい る,HTMLのポインタ属性hrefと同様 に,TEIのポインタ属性は,(当該の要素が含まれている)当該の 文書ではないものも,ファイル管理システムの所在に関わらず, 参照することが出来る(訳注:筆者は,hrefのhをhypertextでは なく,hereの略語と理解しているのかもしれない). この参照は,絶対的な方法(対象となる文書の完全なアドレ スを使う方法)と,相対的な方法(ベースURIと相対的なアドレス を合わせて使う方法)で実現される. 「ベースURI」について,Marsh 2001で規定さ れている. ベースURIは,一般に,直近の祖先要素にある属性xml:baseの値で示されている. もしこの属性が無ければ,ベースURIは,当該の文書になる.
W3C <ref target="http://www.w3.org/TR/xmlbase/">XML
Base</ref> recommendation.
of the <ref target="file:///usr/share/common-licenses/GPL-2">
GNU General Public License</ref>.
<graphic url="Images/compic.png"/>
<figDesc>The figure shows the page from the <title>Orbis
pictus</title> of Comenius which is discussed in the text.</figDesc>
</figure>
<head>On Ancient Persian Manners</head>
<p>In the very first story of <ref target="Sadi/gulistan.2.i.html">
<title>The Gulistan of Sa'di</title>
</ref>,
Sa'di relates moral advice worthy of Miss Minners ...</p>
<!-- ... -->
</div>
<div n="A">
<p>The base URI here is the current document. A URI such as
<code>a.xml</code> is equivalent to
<code>./a.xml</code>.</p>
</div>
<div n="B" xml:base="http://www.example.org/">
<p>The base URI here is
<code>http://www.example.org/</code>. A
URI such as <code>a.xml</code> is equivalent to
<code>http://a.b.org/a.xml</code>.</p>
</div>
<div n="C" xml:base="ftp://ftp.example.net/mirror/">
<p>The base URI here is
<code>ftp://ftp.example.net/mirror/</code>. A URI such
as
<code>a.xml</code> is equivalent to
<code>ftp://ftp.example.net/mirror/a.xml</code>.</p>
</div>
<div n="D">
<p>The base URI here is the current document. A URI such as
<code>a.xml</code> is equivalent to
<code>./a.xml</code>.</p>
</div>
</body>
16.2.2 ローカル参照TEI: Pointing Locally¶
<!-- ... -->
</div>
<div type="section" n="107" xml:id="sect107">
<head>Limitations on exclusive rights: Fair use</head>
<p>Notwithstanding the provisions of
<ref target="#sect106">section 106</ref>, the fair use of a
copyrighted work, including such use by reproduction in copies
or phonorecords or by any other means specified by that section,
for purposes such as criticism, comment, news reporting,
teaching (including multiple copies for classroom use),
scholarship, or research, is not an infringement of copyright.
In determining whether the use made of a work in any particular
case is a fair use the factors to be considered shall
include —
<list>
<item n="(1)">the purpose and character of the use, including
whether such use is of a commercial nature or is for nonprofit
educational purposes;</item>
<item n="(2)">the nature of the copyrighted work;</item>
<item n="(3)">the amount and substantiality of the portion
used in relation to the copyrighted work as a whole;
and</item>
<item n="(4)">the effect of the use upon the potential market
for or value of the copyrighted work.</item>
</list>
The fact that a work is unpublished shall not itself bar a
finding of fair use if such finding is made upon consideration
of all the above factors.</p>
</div>
16.2.3 W3C element()TEI: W3C element() Scheme¶
要素が,識別子を使い直接参照できないような場合には,XMLの 要素木を使い,その場所を指定することで,参照することもでき る. この方法では,W3Cが規定(Grosso et al, 2003)したスキームであるelement()を使 うことになる. このスキームでは,子要素の番号をスラッシュで区切ったリスト により,ステップを踏みながら要素を辿ることで,要素を識別す ることが出来る. 各ステップでは,整数値nにより,先にたどり着いた要素 の,n番目の子要素であることが示される. 例えば,<ptr target="foo.xml#element(1/4)"/> というポインタは,URIfoo.xmlで 指定される文書中にあるルート要素の,4番目の子要素を示して いる.
target="http://www.cs.mu.oz.au/621/2003project/hamlet.xml#element(/1/8/2/25/2)">2B|^2B…</ref>
xml:base="/Users/martin/Documents/c5/namelessShakespeare.xml">
<p>
<ptr target="#element(sha-ham301/22/2)"/>
</p>
</div>
先にも紹介したように,この行にも識別子があれば,直接これを 参照することも可能である. シェークスピアの,ある別の電子版では,ファーストフォリオを 元にして作られ,各行に通し番号による識別子が付与されている としよう. この場合,行はptr target="#element(Ham01245)"/は,またはもっと簡単に ptr target="#Ham01245"/のように指 定することが出来る. ptrtarget="#xxx"/という書き方は, ptrtarget="#element(xxx)"/という書 き方の省略形である. もちろん,この手法を使うには,各行に通し番号が属性xml:idに付与されている必要があり,それ は文書内でユニークである必要がある. 16.2.5 規範参照で は,この様な条件を課さないで,この行を参照する手法を紹介す る.
16.2.4 TEI XPointerTEI: TEI XPointer Schemes¶
本章で解説されるポインタのスキームは,W3Cが推奨する多くの スキームの中のひとつである. このW3Cのスキームは,XPointer(Grosso et al2003)として知られる,XML文書中のデータ を示す機構を構成している. この機構では,名前を使い参照する様々な手法を定義している. この手法は,「XPointer」として知られている. W3Cでは,このスキームを規定し,その拡張も管理している. 先に紹介したスキームelement()も,W3Cが規定したものであ り,XMLを処理するシステムの多くがこれに対応している.
W3Cが規定する,もうひとつの重要なスキームで,また本ガイド ラインでも使用を推奨するものが,xpath1()である. このスキームは,XPathの構文を使い,XML構造のどの部分でも選 択・指定することができる. これについての詳細は,以下にある16.2.4.2 xpath1()で解説する. 本ガイドラインでは,この他にも,5つのポインタのスキームを 定義している. これにより,データ内容にある場所や,データ内容のある範囲と いった,XML文書のある部分を指定することができる. これらのTEIポインタスキームについては,以下にある16.2.4.3 left()と right()から16.2.4.6 match()までの各節で解説される.
- » 16.2.4.2 xpath1()
- Home | 目次
16.2.4.1 TEIのポインタTEI: Introduction to TEI Pointers¶
TEIのポインタの機能について解説する前に,まず,ここで使 われている技術について簡単に解説する. これまでに解説してきた参照法では,要素や属性といった,XMLの 情報集合(information set)から構成される単位を参照してきた. しかし,テキストの分析では,別の参照点も使いたいことがあ る.例えば,ノード間の地点や,文書中のノード境界を越え る任意の範囲を指定するなどである. XML文書の内容は,階層的でもあり,線的にも構成されている. 従って,ノードから独立した範囲で,文字列の範囲を指定した いこともある.例えば,テキストエディター上で選択される範 囲などである. このような目的を実現するには,当該範囲を,その開始点と終 了点の2点で定義するのが一番良い. ポインターのスキームを,問い合わせ関数の様なもの,つま り,XML文書の情報集合(例えば,DOM木)のノードを返すもの, とと捉えることは,有益ではあるが,それが常に当てはまると いうわけではない. 例えば,あるポイントが,その範囲はDOM木上のノードとオー バーラップしないものであっても,複数のノードに隣接しなが らも,ノードはないようなポイントの場合である.
- XML文書のXML情報集合であるひつとの単位を示すノード. 参照される対象として,テキストノード,要素ノード,属 性ノードがある.
- XML文書のXML情報集合であるノードの集合. TEIのポインタを扱うソフトウェアでは,ポインタを占め す属性値が,複数のdata.pointerを取ることが出来るとき, URIの解決処理の結果は,ノードの集合のみが認められる. ここでいう「集合」とは,その要素は順序に関係ないこと を意味している. つまり,ノードの集合のでは,各ノード間に順番があると いうことではない.
-
ポイントとは,文書にあるノード間のいち地点のことであ
る.
ポイントは,文字または要素と隣接している.
ポイントは,他のポイントと隣接することはない.
例えば,XML文書における文字のポイントは,文字,開始
タグ,終了タグの間に存在するもので,それ以外には存在
しない.
全ての文字内容を,独立した文字からなるテキストノード
と見なしたいのであれば,ポイントとは,以下のいずれか
として定義することが出来る.
- ノードに先行する地点. 当該ノードが,先行するノードを持つ場合には,その 地点は,先行するノードの後にある.
- ノードに続く地点. 当該ノードが,後続するノードを持つ場合には,その 地点は,後続するノードの前にある.
- 範囲とは,2つのポイントに囲まれている,文書中の領域であ る. ポイントは,文書中のどこにでもあるので,範囲は,ノー ドやノード集合とはそのままでは対応しない. 範囲は,ノードにある内容と,部分的または全面にオーバー ラップすることがある.
- xpath1()
- XPathを使い,ノードやノード集合を示す (16.2.4.2 xpath1()).
- left(), right()
- before ()またはafter()を使い,ノードまたはノード集合 の,前後のポイントを示す(16.2.4.3 left()とright()).
- range()
- 2つのポイント間の範囲を示す(16.2.4.4 range()).
- string-range()
- 特定のポイントから,特定の長さの範囲を示す(16.2.4.4 range()).
- match()
- ノードにある特定の文字列の範囲を示す(16.2.4.6 match())
xpath1()スキームでは,XPathとして規定されているものその ままの機能のことである.
その他の5つのスキームは,W3Cが規定するXPointerの機能と重 複するところがある. 但し,それぞれは,より簡単なものとなっている. 本ガイドラインが書かれた時点では,XPointerは草稿の状態で ありこれを修正し推奨勧告とするような動きは見られない.
16.2.4.2 xpath1()TEI: xpath1(path)¶
target="http://tinyurl.com/267z62/xml/2004/Thompson01/EML2004Thompson01.xml#xpath1(//ftnote[@id='fn6']/para[1])"/>
URI参照が,ひとつのdata.pointerの属性値として規定されて いる場合,その評価結果は,単一のノードとなる. もし,複数のノードが得られた場合,それはエラーとなる. URI参照が,複数のdata.pointerの属性値として規定されてい る場合,その評価結果であるノード集合にある各ノードは,ひ とつのURI参照の評価結果のように独立したものとして扱われる.
TEIデータに対応したソフトウェアがXPathを解釈する場合に は,参照されている文書のXML情報集合は,他のスキームから 定義された付加的な情報を含めずに,そのまま処理されること になる. 例えば,空白文字の正規化は,XPathを解釈する前に,文書 通に施されることはない.
このようなポインタのスキームにより,XMLデータへの問い合 わせでよく使われている方法を,簡単に,直接使うことができ るようになる. 属性xml:idを持たないXML要素や XML内容を選択する場合には,遅くら,これがもっとも堅固な ポインタ機能である. 要素名や属性を使うことができると,xpath1()は,本章で解説 されているどれよりも堅固なポインタ機能となり,当該文書が 変更されていても有効なものとなる. 作られる版の長期利用性を考えれば,属性xml:idを出来るだけ使うことが推奨され る.
16.2.4.3 left()とright()TEI: left(pointer) and right(pointer)¶
- ひとつのノード.
- ポインタがひとつのノードを示すとき,当該ポインタは, そのノードに先行する(left()),または後続する (right())直近のポイントとなる.
- ノード集合.
- ポインタが,ノード集合を指すとき,当該ポインタは,そ の集合の第一要素に先行する(left()),または最終要素に 後続する(right())ポイントとなる.
- 範囲.
- ポインタが,範囲を指すとき,当該ポインタは,その範囲 の開始(left())または終了(right())地点となる.
- ポイント.
- ポインタが,ポインタを指すとき,当該ポインタそのもの が結果として得られる. left()スキームとright()スキームは,引数としてあるポ インタに,何ら影響を与えない.
xml:base="http://www.mulberrytech.com/Extreme/Proceedings/xml/2002/">
<ptr
target="Usdin01/EML2002Usdin01.xml#right(element(/1/1/3/3/6))"/>
</p>
16.2.4.4 range()TEI: range(pointer1, pointer2)¶
- 1番目の引数がノードを返す時,そのノードの直前のポイ ントが,範囲の始点となる. 2番目の引数がノードを返す時,そのノードの直後のポイ ントが,範囲の終点となる. 終点が始点より先にある場合には,エラーを返す.
- 1番目の引数が範囲を返す時,その範囲の始点が,range() が指定する範囲の始点ともなる. 2番目の引数が範囲を返す時,その範囲の終点が,range() が指定する範囲の終点ともなる.
- 1番目の引数がポイントを返す時,そのポイントが範囲の始点となる. 2番目の引数がポイントを返す時,そのポイントが範囲の 終点となる.
16.2.4.5 string-range()TEI: string-range()¶
string-range()スキーマは,文字の位置を使い範囲を指定する ものである. これで示される範囲の終点は,文字の位置に隣接している. XML要素に隣接するノードが,その要素から指定できるように,こ の範囲も,当該文字から指定できるようにしておく必要がある. そのようにしておくと,タグで分断されている2つの文字の間 にあるポイントのどちらであるか,という曖昧さをなくすこと が出来る.
string-range()スキームは,1番目の引数としてポインタを取 り,このポインタは,文字列があるノードまたは範囲を示して いる. ポインタに文字列が含まれていない場合,string-range()スキー マは文字列の範囲を指定できない. string-range()スキーマは,'開始文字'を基準に決められる. 開始点は,数値0で,これは,ポインタにある文字列の,第一 の文字を示している. string-range()スキーマの2番目の引数としてあるオフセット 値は,開始点から始まる,相対的な文字の位置を示す. つまり,実際の範囲の開始点は,開始点にオフセット値を足し た地点となる.
string-range()スキームに,3番目の引数として長さが指定さ れていた場合,範囲の終点は,開始点に長さを足した所にある 文字に隣接するポイントとなる. オフセット値がマイナスの時,範囲の長さは,3番目の引数と して指定された長さを超えてしまうが,string-rangeスキーマ は,そのような,開始点を超えた場所にある文字も示すことが 出来る. このような場合,(訳注:指定された範囲を超えた)当該文書中 にある文字が,指定範囲の対象となる. また,開始点に,3番目の引数で指定された長さを足したもの が,文書中にある文字の長さを超えてしまうことも可能ではあ る. 例えば,文書中にある最後の文字を含めたような範囲を指定す る場合は,そうする必要がある.
3番目の引数に長さが指定されない時,その初期値は1として解 釈され,つまり指定範囲には1文字が含まれることになる. この長さの値が0と指定されると,範囲は0となり,これは開始 文字の直前にある場所と解釈される.
16.2.4.6 match()TEI: match()¶
match()スキームは,1番目の引数としてあるポインタで指定さ れた範囲の中にある,2番目の引数としてある文字列の場所を 示すものである. match()スキームが返す結果は,文字列が存在している範囲である. 文字列がない場合には,エラーとなる. 1番目の引数であるポインタがが示す範囲を超えて,文字列を 探すことはないだろう.
3番目の引数として取ることが出来るインデックスでは,1以上 の整数値を指定することになる. この数値は,指定した範囲内に,文字列が複数あった場合 に,そのうちからどの範囲をmatch()スキームが返すかを指定 するものである. このインデックスが指定されていない場合,初期値には1が与 えられ,これは最初にあった文字列の範囲が返されることにな る.
16.2.5 規範参照TEI: Canonical References¶
規範参照の「規範」とは,文書中の場所を指定する,コミュニティ もしくはコーパスで特有の方法のことを意味している. 例えば,聖書研究者にとって,'Matt 5:7'とあれば,これはMatthewという書の5章7節の意味となる. もし,この'Matt 5:7'を,TEI文書中のある場所を示すポインタ として使い,例えば,属性nの値が'Matt'である要素divのなか にある5番目の要素divの,さらに7番目のdivを指示 するようにするのである.
TEIにあるいくつかの要素(例えば,gloss, ptr, ref, term)では,この様な目的のために,属性 cRefを取ることが出来る. 本節で解説する方法を使うことで,特定の学術界で使われている 書式で作られた規範的な資料を参照することが可能となり,ま た,ソフトウェアは,それを完全なるURIへと変換することも可 能となる. 属性cRefの値は,本節で解説されて いるように処理され,その結果得られた参照可能なURIは,属性 targetの値のように,解決すること が出来る. 属性cRefとtargetは,排他的な関係にある. すなわち,要素には,どちらか一方の属性しか使うことができな い.
<cRefPattern
matchPattern="(.+) (.+):(.+)"
replacementPattern="#xpath1(//div[@n='$1']/div[$2]/div[$3])">
<p>This pointer pattern extracts and references the <q>book,</q>
<q>chapter,</q> and <q>verse</q> parts of a biblical reference.</p>
</cRefPattern>
<cRefPattern matchPattern="(.+) (.+)"
replacementPattern="#xpath1(//div[@n='$1']/div[$2])">
<p>This pointer pattern extracts and references the <q>book</q> and
<q>chapter</q> parts of a biblical reference.</p>
</cRefPattern>
<cRefPattern matchPattern="(.+)"
replacementPattern="#xpath1(//div[@n='$1'])">
<p>This pointer pattern extracts and references just the <q>book</q>
part of a biblical reference.</p>
</cRefPattern>
</refsDecl>
- 15.3.3 Summaryに まとめられている規則に従い,属性refsDeclの値が,正しいかを確認する.
-
適切な要素refsDecl中の,要素cRefPatternを,出現順に以下の処理をす
る.
- 属性cRefの値と,属性matchPatternの値にある正規表現 とを,比較する.
- もし,属性cRefの値が正規 表現のパタンに該当したら,属性replacementPatternの値を対象に,後 方参照($1, $2など)を,該当した部分表現へと変更し, それを結果として返す.
- 得られた結果は,属性targetにある,相対的または絶対 的URI参照として振る舞うことになる. つまり,値をそのままで,または属性xml:baseと合 わせて使うことができる.
- 属性cRefに対して,refsDeclにある規則を当てはめ ることを止める.
- 但し,属性cRefの値が,属 性matchPatternにある正規 表現に該当しなかった場合は,次の要素cRefPatternへ処理を進める.
- 全ての要素cRefPatternを順次確認し,どれにも該当 するものがなかった場合には,ポインタへの解決は失敗する.
属性matchPatternで使われる正規表 現は,Appendix to XML Schema Part 2にあるW3Cが規定するXML Schema Languageで 使われているものである. 57 属性replacementPatternは,単純な 文字列であるが,但し,後方参照を示す$1から$2は,該当する文 字列に置き換えられる. 後方参照の番号を示す数は,最大値が9であることに注意して欲 しい. 従って,「$18」とある場合には,「1番目にマッチした文字列 に続いて文字8がある」という事になり,「18番目にマッチした 文字列」とはならない. もし,ドル記号に続いて数字を記録し,それを後方参照ではなく 文字として扱う場合には,ドル記号を%24として記録す る必要がある.
- » 16.2.5.2 URIの例
- Home | 目次
16.2.5.1 一般の例TEI: Worked Example¶
先の例にある属性refsDeclを対象に,ソフトウェア が,属性xml:baseに値http://www.example.org/resources/books/Bible.xml を持つ要素divにある属性cRefの値Matt 5:7を解決することを考えてみよう. まず,ソフトウェアは,正規表現(.+)(.+):(.+)が 「Matt 5:7」に対応するかを確認する. この場合,対応が確認され,成功する. 該当した部分文字列として,一番はじめのものは「Matt」,2 番目のものは「5」,3番目のものは「7」となる(訳注:括弧で 括られている部分が部分文字列を作る). 次に,ソフトウェアは,これらの部分文字列を,パタン #xpath1(//div[@n='$1']/div[$2]/div[$3])に当ては め,文字列 #xpath1(//div[@n='Matt']/div[5]/div[7])を作り出 す. これに,属性xml:baseが示すベー スURIが付加され,最終的には,完全なURI参照となる http://www.example.org/resources/books/Bible.xml#xpath1(//div[@n='Matt']/div[5]/div[7])が得られる.
もし,文字列が「Matt 5」の場合には,この正規表現は該当し ない. この場合,ソフトウェアは,2番目にある正規表現 (.+)(.+)との対応を確認し,それは成功する. 結果として,部分文字列「Matt」と「5」が得られることにな る. すると,これらの部分文字列を,パタン #xpath1(//div[@n='$1']/div[$2])に当てはめ,該当 する部分が書き換えられる,結果として,部分識別子が得られる. 次に,これを,属性xml:baseにあ るベースURIと結びつけて,完全なURI参照となる http://www.example.org/resources/books/Bible.xml#xpath1(//div[@n='Matt']/div[5]) を得ることになる.
もし,文字列が「Matt」の場合には,今までの2つの正規表現は該当し ない. この場合,ソフトウェアは,3番目にある正規表現 (.+)との対応を確認し,それは成功する. 結果として,完全なURI参照 http://www.example.org/resources/books/Bible.xml#xpath1(//div[@n='Matt']) を得ることになる.
matchPattern="(.+)(.+):(.+)"
replacementPattern="//div[@n='$1']/div[$2]/div[$3]/p[$4]"/>
符号化する人の中には,これまでに挙げた例よりも,もっと精 緻な正規表現を好むこともあるだろう. 例えば, ^\s*([1-9]?[A-Z][a-z]+)\s+([1-9][0-9]?[0-9]?):([1-9][0-9]?)\s*$ の様な表現である.
- « 16.2.5.1 一般の例
- » 16.2.5.3 その他の例
- Home | 目次
16.2.5.2 URIの例TEI: URIの例¶
<cRefPattern
matchPattern="([0-9][0-9])\s*U\.?S\.?C\.?\s*[Cc](h(\.|ap(ter|\.)?)?)?\s*([1-9][0-9]*)"
replacementPattern="http://uscode.house.gov/download/pls/$1C$5.txt">
<p>Matches most standard references to particular
chapters of the United States Code, e.g.
<val>11USCC7</val>, <val>17 U.S.C. Chapter 3</val>, or
<val>14 USC Ch. 5</val>. Note that a leading zero is
required for the title (must be two digits), but is not
permitted for the chapter number.</p>
</cRefPattern>
<cRefPattern
matchPattern="([0-9][0-9])\s*U\.?S\.?C\.?\s*[Pp](re(lim(inary)?)?)?\s*[Mm](at(erial)?)?"
replacementPattern="http://uscode.house.gov/download/pls/$1T.txt">
<p>Matches references to the preliminary material for a
given title, e.g. <val>11USCP</val>, <val>17 U.S.C.
Prelim Mat</val>, or <val>14 USC pm</val>.</p>
</cRefPattern>
<cRefPattern
matchPattern="([0-9][0-9])\s*U\.?S\.?C\.?\s*[Aa](ppend(ix)?)?"
replacementPattern="http://uscode.house.gov/download/pls/$1A.txt">
<p>Matches references to the appendix of a given tile,
e.g. <val>05USCA</val>, <val>11 U.S.C. Appendix</val>,
or <val>18 USC Append</val>.</p>
</cRefPattern>
</refsDecl>
<!-- ... -->
<p>The example in section <ptr target="#SABN"/> is taken
from <ref cRef="17 USC Ch 1">Subject Matter and Scope of
Copyright</ref>.</p>
- « 16.2.5.2 URIの例
- Home | 目次
16.2.5.3 その他の例TEI: Miscellaneous Usages¶
規範参照を使うポインタの仕組みは,TEIで使われていること 想定しているが,非TEI準拠の資料(プレインテキストなど)や,部 分的にTEIでも使える資料の中にある,規範参照を処理する仕 組みを作る際にも,この仕組みは有康であろう.
- « 16.2 ポインタの機能
- » 16.4 対応と統合
- Home | 目次
16.3 区画,分割,アンカーTEI: Blocks, Segments, and Anchors¶
- anchor/ テキスト要素であるかどうかに関係なく,テキスト中で,参照先になるIDを 示す.
- ab
任意の部分的テキスト単位を示す.特定の意味はなくとも,段
落に相当する, 句レベル・挿入レベルの単位として無名単位
になる.
part 当該部分の完全性を示す. - seg
任意の句レベルのテキスト単位を示す(要素segを含む).
subtype 符号化された部分の下位範疇を示す.
- att.typed
要素を分類するための属性を示す.
type 当該要素の分類を示す. subtype 必要であれば,当該要素の下位分類を示す.
- att.segLike
任意の部分に使用される要素向けの属性を示す.
type 当該分割の種類を示す. function 当該部分の役割を示す. part 当該部分が,他の要素によって分割されているかどうかを示す.例えば,複 数の文から構成されている句など.
要素anchorは, 要素segの 内容がないものと捉えることもできる. すなわち,テキスト中の任意の場所に,識別子を記録するための仕 組みである. この要素は,3.10 参照システムで解説 した要素milestoneと同じよ うに,文書を複数の始点で記録するする際には,便利である. 例えば,段落や韻文行の論理構造と,写本にある物理的な配置を対 応付けるときなのである. これらの要素は,クラスmodel.globalのメンバーであ り,本章で解説するモジュールが使えるときにはいつでも使うこと ができる. 但し,これらの要素のうち,要素anchorは, テキスト中の任意の範囲を示すものではなく, 11.3.4 Additions and Deletionsで解説した範囲を示す要素 のターゲットとして,統合のために使われる,任意のポイントを示 すものである.
English at all at the time<anchor xml:id="eng2"/>
English was still full of flaws<anchor xml:id="eng3"/>
English. This was revised by young
<anchor xml:id="eng4"/>
要素segは,処理の対象としたいテキ ストの任意を部分を作り出すときに使うことができる. この要素は,この要素の他には,テキスト素性を記録するのに相応 しいものがない場合に使うために用意されている. つまり,機能の簡単な拡張といえる. また,この要素は,他の要素が参照する任意の部分に識別子を用意 する働きもある. つまり,要素ptrなどがターゲットとする部分を作り 出すことが出来る.
- 韻分析で重要な部分にマークを付ける(6.3 韻分析を参照).
- 台本にある行にマークを付ける(7.2 The Body of a Performance Text). または,タイトルページにマークを付ける(4.6 タイト ルページ).
- 韻律,すなわち,発語を記録したテキストから,ポーズで区切 られる単位をマークする(8.4.1 Segmentation).
- 言語学上の分析やその他の分析を,中立的な手法でマークする( 17 簡易分析機能 ).
<seg type="stutter">I-I-I</seg>'m afraid,</q>Melvin, just say <q>I'm
afraid.</q>
</q>
<seg xml:id="bl0034.1" type="phrase">Literate and illiterate speech</seg>
<seg xml:id="bl0034.2" type="phrase">in a language like English</seg>
<seg xml:id="bl0034.3" type="phrase">are plainly different.</seg>
</seg>
<seg type="phrase" subtype="noun">
<seg type="word" subtype="adjective">Literate</seg>
<seg type="word" subtype="conjunction">and</seg>
<seg type="word" subtype="adjective">illiterate</seg>
<seg type="word" subtype="noun">speech</seg>
</seg>
<seg type="phrase" subtype="preposition">
<seg type="word" subtype="preposition">in</seg>
<seg type="word" subtype="article">a</seg>
<seg type="word" subtype="noun">language</seg>
<seg type="word" subtype="preposition">like</seg>
<seg type="word" subtype="noun">English</seg>
</seg>
<seg type="phrase" subtype="verb">
<seg type="word" subtype="verb">are</seg>
<seg type="word" subtype="adverb">plainly</seg>
<seg type="word" subtype="adjective">different</seg>
</seg>
<seg type="punct">.</seg>
</seg>
<w type="adjective">Literate</w>
<w type="conjunction">and</w>
<w type="adjective">illiterate</w>
<w type="noun">speech</w>
</phr>
<s xml:id="s1">Sigmund, the <seg type="patronymic">son of Volsung</seg>,
was a king in Frankish country.</s>
<s xml:id="s2">Sinfiotli was the eldest of his sons.</s>
<s xml:id="s3"> ... </s>
</seg>
</s>
<s>
<seg part="F">Or two or three.</seg>
</s>
要素segは,散文の段落に相当する内容を記録 することができる. 従って,クラスmodel.inter のメンバーをまとめるために使うこともできる. 例えば,一連の句レベル要素をまとめるように,リスト,引用,注 釈,ト書きなどもまとめることが出来る. 但し,一連の段落や,韻文行といったようなテキストをまとめるこ とは出来ない. そのためには,16.1.4 仲介ポインタで解説する仲介ポインタを使 うか,または,16.7 総合で解説する手法を使う必要がある. テキスト分割の方針や,その分割された部分を表示する方法を,明 示し,記録しておくことは,とりわけ重要である. この記録には,分類コードの仕組みや内容も書かれているべきであ る. このような記録は,TEIヘダーにある要素segmentationに記される. これについては,2.3.3 編集方法宣言で解説している.
要素segは, 編集上の変更箇所,省略や展開,追加や削除,校合の対象といった 特定の用途向け要素が相応しくない状況下で,同時に起こる,また は,互いが排他的な関係にあるテキストを記録するためにも使うこ とができる. この様な状況下では,要素segを使い,それぞれの再部分を示すことが出来 る. また,それらの集合は,要素choiceを使い,示すことが出来る.
pressing <choice>
<seg type="platform" subtype="Mac">option</seg>
<seg type="platform" subtype="PC">alt</seg>
</choice>-f will …
本章では,要素segに識別子を持たせた例を,他の部分とリンク 付け,関連づけるための例として,数多く紹介している.
要素abは, 要素segと 似た機能を持っているが,段落などの構成要素レベルの要素と同じ レベルには出現するが,その中には出現しないテキストの部分を示 すために使うことができる. 従って,この要素は,クラスmodel.pLikeのメンバーとなる.
<head>The First Book of Moses, Called</head>
<head type="main">Genesis</head>
<div2 n="1" type="chapter">
<ab n="1">In the beginning God created the heaven and the
earth.</ab>
<ab n="2">And the earth was without form, and void; and darkness
<hi>was</hi> upon the face of the deep. And the Spirit of God
moved upon the face of the waters.</ab>
<ab n="3">And God said, Let there be light: and there was
light.</ab>
</div2>
</div1>
<head>Das Erste Buch Mose.</head>
<div2 n="1" type="chapter">
<p>
<seg n="1">Am Anfang schuff Gott Himel vnd Erden.</seg>
<seg n="2">Vnd die Erde war wüst vnd leer / vnd es war
finster auff der Tieffe / Vnd der Geist Gottes schwebet auff
dem Wasser.</seg>
</p>
<p>
<seg n="3">Vnd Gott sprach / Es werde Liecht / Vnd es ward
Liecht.</seg>
</p>
</div2>
</div1>
<div2 n="1" type="scene">
<head rend="italic">Actus primus, Scena prima.</head>
<stage rend="italic" type="setting"> A tempestuous noise of
Thunder and Lightning heard:
Enter a Ship-master, and a Boteswaine.</stage>
<sp>
<speaker>Master.</speaker>
<ab>Bote-swaine.</ab>
</sp>
<sp>
<speaker>Botes.</speaker>
<ab>Heere Master: What cheere?</ab>
</sp>
<sp>
<speaker>Mast.</speaker>
<ab>Good: Speake to th' Mariners: fall too't, yarely,
or we run our selues a ground, bestirre, bestirre.
<stage type="move">Exit.</stage>
</ab>
</sp>
<stage type="move">Enter Mariners.</stage>
<sp>
<speaker>Botes.</speaker>
<ab>Heigh my hearts, cheerely, cheerely my harts: yare, yare:
Take in the toppe-sale: Tend to th' Masters whistle: Blow
till thou burst thy winde, if roome e-nough.</ab>
</sp>
</div2>
</div1>
- « 16.3 区画,分割,アンカー
- » 16.5 同期
- Home | 目次
16.4 対応と統合TEI: Correspondence and Alignment¶
本節では,属性correspで示される対応 関係と,それら対応の順序付き集合により示される統合関係につい て解説する. この両方の関係は,16.1 リンクで解説される 要素linkと要素linkGrpを使い示される. また,時間の統合関係である「同期」についても解説をするが,こ れは,16.5 同期で解説し,それ用の特別な要素を使うことに なる.
- » 16.4.2 並行テキストの統合
- Home | 目次
16.4.1 対応TEI: Correspondence¶
- att.global.linking
リンクに関する付加的タグが使用される場合,全ての要素に
付与可能な,リ ンクやハイパーテキストのための属性
を定義する.
corresp 当該要素と対応する要素を示す.
対応関係が,ある範囲の間で取られていて,他に使える要素がな いのであれば,要素segで記録 されるべきである. 対応関係が,ポイントの間で取られていて,他に使える要素がな いのであれば,要素anchorで記録されるべ きである.
its Friday night debut only a month ago, was
not listed on <name xml:id="NBC">NBC</name>'s new schedule,
although <seg corresp="#NBC" xml:id="NETWORK">the network</seg>
says <seg corresp="#SHIRLEY" xml:id="SHOW">the show</seg>
still is being considered.
its Friday night debut only a month ago, was not
listed on <name xml:id="nbc">NBC</name>'s new schedule,
although <seg xml:id="network">the network</seg> says
<seg xml:id="show">the show</seg> still is being considered.
<linkGrp type="anaphoric_link" targFunc="antecedent anaphor">
<link targets="#shirley #show"/>
<link targets="#nbc #network"/>
</linkGrp>
- « 16.4.1 対応
- » 16.4.3 統合の3方法
- Home | 目次
16.4.2 並行テキストの統合TEI: Alignment of Parallel Texts¶
英文の殆どは,フランス語の文に一対一に対応するが,英語 の文を,複数のフランス語文に対応付けることも可能である. (以下の例にある)はじめの英語の2文は,2つのフランス語文 に対応づけることが難しい例である. より細かい部分と対応付けることは難しい. 例えば,はじめの英文にある「...sales...were higher...」は2番目のフランス語文(の一部)と対応している. 続く2つの対応は,1つの英文が1つのフランス語文に対応す る,典型的な例である. 最後にある対応は,2つの英文が1つのフランス語文に対応し ている. このような(ソフトウェアによって生み出された)対応は,人 が判断して対応付けられた結果である. 60
ゲールとチャーチが作ったソフトウェアが生み出した対応関係 は,4つの手法で表現できる. 符号化する人は,はじめに,当該対応関係を(要素anchorを使い)テキスト にあるポイントで示すのか,または,要素segを使い,範囲で示すのかを決め る必要がある. この選択は,当該対応関係を処理するソフトウェアの手順や,符 号化する人の意図に依存することになる. 次に,符号化する人は,要素anchorまたは要 素segに属性correspを付与することで対応を示す のか,または,要素linkGrpを使い対応を示すのかを,選 択することになる.
<p>
<anchor corresp="#fa1" xml:id="ea1"/>According to our survey, 1988
sales of mineral water and soft drinks were much higher than in 1987,
reflecting the growing popularity of these products. Cola drink
manufacturers in particular achieved above-average growth rates.
<anchor corresp="#fa2" xml:id="ea2"/>The higher turnover was largely
due to an increase in the sales volume.
<anchor corresp="#fa3" xml:id="ea3"/>Employment and investment levels also climbed.
<anchor corresp="#fa4" xml:id="ea4"/>Following a two-year transitional period,
the new Foodstuffs Ordinance for Mineral Water came into effect on
April 1, 1988. Specifically, it contains more stringent requirements
regarding quality consistency and purity guarantees.</p>
</div>
<div xml:lang="fr" type="subsection">
<p>
<anchor corresp="#ea1" xml:id="fa1"/>Quant aux eaux minérales
et aux limonades, elles rencontrent toujours plus d'adeptes. En effet,
notre sondage fait ressortir des ventes nettement supérieures
à celles de 1987, pour les boissons à base de cola
notamment. <anchor corresp="#ea2" xml:id="fa2"/>La progression des
chiffres d'affaires résulte en grande partie de l'accroissement
du volume des ventes. <anchor corresp="#ea3" xml:id="fa3"/>L'emploi et
les investissements ont également augmenté.
<anchor corresp="#ea4" xml:id="fa4"/>La nouvelle ordonnance fédérale
sur les denrées alimentaires concernant entre autres les eaux
minérales, entrée en vigueur le 1er avril 1988 après
une période transitoire de deux ans, exige surtout une plus
grande constance dans la qualité et une garantie de la
pureté.</p>
</div>
この例において,属性correspは,英文と フランス語文の双方に付与する必要はない. 理由は,(先にも示したように)この属性は,双方向の関係を示す ものと決まっているからである. 但し,処理を簡単にしたり,英語を元にフランス語へ翻訳され る,またはその反対の翻訳,といった印象を生まないためには, この例の方がよい. より深く考えると,この記録では,アンカーが対応するテキスト の範囲が明示されおらず,単にポイントのみで関係を示している. 従って,もし,ある一方のテキストには,他のテキストにある一 部が欠けている場合には,この方法だと適切には対応付けられない.
<p>
<seg xml:id="e_1">According to our survey, 1988 sales of mineral
water and soft drinks were much higher than in 1987,
reflecting the growing popularity of these products. Cola
drink manufacturers in particular achieved above-average
growth rates.</seg>
<seg xml:id="e_2">The higher turnover was largely due to an
increase in the sales volume.</seg>
<seg xml:id="e_3">Employment and investment levels also climbed.</seg>
<seg xml:id="e_4">Following a two-year transitional period, the new
Foodstuffs Ordinance for Mineral Water came into effect on
April 1, 1988. Specifically, it contains more stringent
requirements regarding quality consistency and purity
guarantees.</seg>
</p>
</div>
<div xml:id="div-f" xml:lang="fr" type="subsection">
<p>
<seg xml:id="f_1">Quant aux eaux minérales et aux limonades,
elles rencontrent toujours plus d'adeptes. En effet, notre
sondage fait ressortir des ventes nettement
supérieures à celles de 1987, pour les
boissons à base de cola notamment.</seg>
<seg xml:id="f_2">La progression des chiffres d'affaires
résulte en grande partie de l'accroissement du volume
des ventes.</seg>
<seg xml:id="f_3">L'emploi et les investissements ont
également augmenté.</seg>
<seg xml:id="f_4">La nouvelle ordonnance fédérale sur
les denrées alimentaires concernant entre autres les
eaux minérales, entrée en vigueur le 1er avril
1988 après une période transitoire de deux
ans, exige surtout une plus grande constance dans la
qualité et une garantie de la pureté.</seg>
</p>
</div>
<linkGrp type="alignment" domains="div-e div-f">
<link targets="#e_1 #f_1"/>
<link targets="#e_2 #f_2"/>
<link targets="#e_3 #f_3"/>
<link targets="#e_4 #f_4"/>
</linkGrp>
<ab xml:id="english1">
<s>According to our survey, 1988 sales of mineral water and soft
drinks were much higher than in 1987, reflecting the growing popularity
of these products.</s>
<s>Cola drink manufacturers in particular achieved above-average
growth rates.</s>
</ab>
</div>
<div xml:id="french" xml:lang="fr" type="subsection">
<ab xml:id="french1">
<s xml:id="fs1">Quant aux eaux minérales et aux limonades, elles
rencontrent toujours plus d'adeptes.</s>
<s xml:id="fs2">En effet, notre sondage fait ressortir des ventes nettement
supérieures à celles de 1987, pour les boissons à
base de cola notamment.</s>
</ab>
</div>
- « 16.4.2 並行テキストの統合
- Home | 目次
16.4.3 統合の3方法TEI: A Three-way Alignment¶
これまでに紹介してきた,2つの並行テキストを統合する方法で は,当該テキスト部分は,同じ文書にある必要があった. もし,テキスト部分が,別の文書中にある場合には,絶対的・相 対的な完全なURI(16 リンク,分割,統合 )を使う必要がある. このような外部への参照は,文書中のどこでもあり得るが,リン クを使ってこれが示される場合には,要素linkGrp (またはこれに準じるリンクを まとめる要素)を使い,リンクをまとめることになる.
<head>The Study</head>
<p>
<seg xml:id="e9801">The Study</seg>
<seg xml:id="e9802">is a place</seg>
<seg xml:id="e9803">where a Student,</seg>
<seg xml:id="e9804">a part from men,</seg>
<seg xml:id="e9805">sitteth alone,</seg>
<seg xml:id="e9806">addicted to his Studies,</seg>
<seg xml:id="e9807">whilst he readeth</seg>
<seg xml:id="e9808">Books,</seg>
</p>
</div>
<div xml:id="l98" xml:lang="la" type="lesson">
<head>Muséum</head>
<p>
<seg xml:id="l9801">Museum</seg>
<seg xml:id="l9802">est locus</seg>
<seg xml:id="l9803">ubi Studiosus,</seg>
<seg xml:id="l9804">secretus ab hominibus,</seg>
<seg xml:id="l9805">solus sedet,</seg>
<seg xml:id="l9806">Studiis deditus,</seg>
<seg xml:id="l9807">dum lectitat</seg>
<seg xml:id="l9808">Libros,</seg>
</p>
</div>
<image
xlink:href="p1764.png"
width="597" height="897"
id="p981" />
<rect id="p982" x="75" y="75" width="25" height="10"/>
<rect id="p983" x="55" y="42" width="25" height="10"/>
</svg>
- 英語とラテン語は,2つの並行した列(段)にそれぞれ印刷さ れ,対応する句が(先の例では要素seg で示され)近くに配置されている.
- 特定の単語には,それぞれの言語での用語として,表現方法 を変えて示されている. 英語のテキストでは,一貫して黒色の文字が使われ,そこに あるThe Studyとa Student, StudiesとBooksは,ローマン体で書かれ ている. ラテン語のテキストでは,全体はローマン体で書かれている 中,対応する単語(MuseumとStudiosusとStudiisと Libros)は,全てイタリック体 で書かれている.
- テキスト中にある番号によるラベルは,同じ数字を持つキー ワードと,図中にある部分とをリンク付けるものである. このラベルは,先の例では記録されていないが,各言語にあ る1番目と3番目と最後の部分に付けられていて,同じよう に,図中にも(はっきりとはしていないが)付けられている. 図中にある「study」「student」「book」に該当する部分 が,それぞれの言語で対応する部分と関連している.
<link targets="#e9801 #l9801 #p981"/>
<link targets="#e9802 #l9802"/>
<link targets="#e9803 #l9803 #p982"/>
<link targets="#e9804 #l9804"/>
<link targets="#e9805 #l9805"/>
<link targets="#e9806 #l9806"/>
<link targets="#e9807 #l9807"/>
<link targets="#e9808 #l9808 #p983"/>
</linkGrp>
ここで示された対応関係は,識別子が付与されているテキスト部 分と画像の部分から作られている. この対応関係に,先に示したような印刷上異なる単語を新たに加 えるとすれば,新しい要素を定義し,テキスト中に記録するか, またはスタンドオフスタイルで外部に記録する必要がある. この様な単語を,要素termと要素glossの対応関係として記録すると すれば,一見簡単そうではあるが,ラテン語を解説(gloss)とす るのか,英語を解説とするのかという,簡単には決められない選 択を迫られることになる. この種の単語を全て要素termで記録すると,この種の 難しい判断を避けることは出来るが,ある種の間違った情報を記 録するのではないかという懸念もあるだろう. この種の単語を,要素segに識 別子を付与して記録することで,対応関係を示すことも可能で ある.
<head>The Study</head>
<ab>The Study</ab>
<ab>is a place</ab>
<ab>where a Student,</ab>
</div>
<div xml:id="L98" xml:lang="la" type="lesson">
<head>Muséum</head>
<ab>Museum</ab>
<ab>est locus</ab>
<ab>ubi Studiosus,</ab>
</div>
<link
targets="#element(L98/2) #element(E98/2) #p981"/>
<link targets="#element(L98/3) #element(E98/3)"/>
</linkGrp>
targets="#string-range(xpath1(id('e9806')),16,6) #string-range(xpath1(id('l9806')),0,7)"/>
- « 16.4 対応と統合
- » 16.6 同一要素と仮想複製
- Home | 目次
16.5 同期TEI: Synchronization¶
先の節では,2つの典型的な統合関係を解説してきた. ひとつは,多言語の並行テキストを統合することと,ひとつは,画 像とテキストを統合することである. 本節では,統合関係のもうひとつの典型的な例である,同期関係を 解説する. テキストの部分を,時間軸に対応させてマークすることは,発話さ れたテキストを記録する際に,当然のように,頻繁に必要となる. また,引用された発話や,時間を単位として示されている事象を記 録する際にも,必要なことがある. 本節で解説される手法は,他の統合関係(例えば,テキスト要素と 空間の対応関係)にも使える一般的なものである.
- » 16.5.2 同期事象の時間割当て
- Home | 目次
16.5.1 同期事象の統合TEI: Aligning Synchronous Events¶
- att.global.linking
リンクに関する付加的タグが使用される場合,全ての要素に
付与可能な,リンクやハイパーテキストのための属性を定
義する.
synch 当該要素と連動する要素を示す.
この例では,角括弧で示された数値が,発話がオーバーラップし ているポイントを示している. 例えば,Aの最初の発話にある[1]は,Bの2番目の発話にある[1]と同時に起こっているとされる. 61
<u xml:id="u2b" who="#b"> The first time in twenty five years,
we've cooked Christmas <unclear> for a blooming great
load of people.</unclear>
</u>
<u xml:id="u3a" who="#a">So you're
<anchor synch="#t1b" xml:id="t1a"/>
<unclear>
<anchor synch="#t2b" xml:id="t2a"/>
</unclear>
</u>
<u xml:id="u3b" who="#b">
<anchor xml:id="t1b"/>It will be <anchor xml:id="t2b"/>
nice in a way, but, <anchor xml:id="t3b"/>
be strange.<anchor xml:id="t4b"/>
</u>
<u xml:id="u4a" who="#a">
<anchor synch="#t3b" xml:id="t3a"/>Yeah
<anchor synch="#t4b" xml:id="t4a"/>, yeah, cos it, its
<anchor synch="#t5b" xml:id="t5a"/>the
<anchor synch="#t6b" xml:id="t6a"/>
</u>
<u xml:id="u4b" who="#b">
<anchor xml:id="t5b"/>not<anchor xml:id="t6b"/>
</u>
<!-- ... -->
</div>
<linkGrp
xml:id="lg1"
domains="BNC-d1 BNC-d1"
targFunc="speaker.a speaker.b"
type="synchronous_alignment">
<link xml:id="l1" targets="#t1a #t1b"/>
<link xml:id="l2" targets="#t2a #t2b"/>
<link xml:id="l3" targets="#t3a #t3b"/>
<link xml:id="l4" targets="#t4a #t4b"/>
<link xml:id="l5" targets="#t5a #t5b"/>
<link xml:id="l6" targets="#t6a #t6b"/>
</linkGrp>
</back>
<u xml:id="u02" who="#b">No!</u>
</u>
<u who="#b">
<seg xml:id="u-b1"> It will be </seg> nice in a way, but,
<seg synch="
</u>
<u who="#a">
<seg xml:id="u-a3"> Yeah </seg>, yeah, cos it,
its <seg synch="#u-b2"> the </seg>
</u>
<u xml:id="u-b2" who="#b"> not </u>
- « 16.5.1 同期事象の統合
- Home | 目次
16.5.2 同期事象の時間割当てTEI: Placing Synchronous Events in Time¶
- when/
同じ要素timeline中にある他の要素に対応する時点,または絶対的な時点を示す
absolute 当該時点の,絶対時間を示す. interval 時間幅を数値で示す. unit 親要素timeLineから継承さ れない場合,属性intervalで示され る時間の単位を示す. since 当該要素whenの時間となる参照時点を示す.参照時点に時間幅を足すことで得られる. - timeline
時間的なまとまりを示すために,発話テキストの要素をリン
クすることがで きる,時間軸上の順序付き時点の集合を示す.
origin 時間軸の起点示す.すなわち,始点の時間. interval 間隔を表す数値を示す. unit 時間軸を構成する属性intervalの値に対応する,時間単位を特定する.
要素whenは, 属性absoluteまたは属性sinceを使い,時点を示している. whenは,文字列を値に 取り,これが特定の時間点を表し,直接的に時点を示すことにな る. 属性sinceは,他の要素 whenを参照 し,間接的に時点を示すことになる. 属性sinceが使われている場合,属性 intervalと属性unitは,属性sinceで示された時点から経過した時間全体 を示すために使われるべきである. 属性sinceの属性値が-1の場合は,経過時間は分からないことに なる.
要素whenが,同じ時間間隔で連なってい る場合, 要素timelineで属性intervalや属性unitを使い,一度にそれを示すことが可能 で,それぞれの要素whenで繰り返し指定する必要はない. 時間間隔は変化するが,単位は全て同じである場合には,属性 unitだけを要素timelineで使い,要素whenで属性intervalを使うことで,記録することが出 来る. できる.
要素timelineにある属性originは,要素timeline中にある開始点を参照して いる. 当然,この時点は,絶対的に示される必要がある.
<when xml:id="w0" absolute="11:30:00"/>
<when xml:id="w1" interval="unknown" since="#w0"/>
<when xml:id="w2" interval="100" since="#w1"/>
<when xml:id="w3" interval="200" since="#w2"/>
<when xml:id="w4" interval="150" since="#w3"/>
<when xml:id="w5" interval="250" since="#w4"/>
<when xml:id="w6" interval="100" since="#w5"/>
</timeline>
type="temporal_specification"
domains="lg1 tl1"
targFunc="synch.points when">
<link targets="#l1 #w1"/>
<link targets="#l2 #w2"/>
<link targets="#l3 #w3"/>
<link targets="#l4 #w4"/>
<link targets="#l5 #w5"/>
<link targets="#l6 #w6"/>
</linkGrp>
type="temporal_specification"
domains="BNC-d1 BNC-d1 tl1"
targFunc="speaker.a speaker.b when">
<link targets="#t1a #t1b #w1"/>
<link targets="#t2a #t2b #w2"/>
<link targets="#t3a #t3b #w3"/>
<link targets="#t4a #t4b #w4"/>
<link targets="#t5a #t5b #w5"/>
<link targets="#t6a #t6b #w6"/>
</linkGrp>
この種の発話の書き起こしについての詳細は,8 Transcriptions of Speechを参照のこと.
16.6 同一要素と仮想複製TEI: Identical Elements and Virtual Copies¶
本節では,「仮想要素」という概念を導入する. この要素は,テキスト中には,明示的に記録されてはいないが,記 録の様子から,ソフトウェアがその存在を推測できるようなもので ある. 本節では,既にある要素の写しとして,仮想要素を作る方法を紹介 する. 続く節(16.7 総合)では,既にある要素を総合することで,仮想要 素を作る方法を紹介する.
- att.global.linking
リンクに関する付加的タグが使用される場合,全ての要素に付与
可能な,リンクやハイパーテキストのための属性を定義する.
sameAs 当該要素と同一の要素を示す. copyOf 当該要素のコピー要素を示す.
<q rend="centered italic">
<date xml:id="d840404">April 4th, 1984</date>.</q>
</p>
<p>He sat back. A sense of complete helplessness had
descended upon him. ...</p>
<p>His small but childish handwriting straggled up
and down the page, shedding first its capital letters
and finally even its full stops:
<q rend="italic">
<date>April 4th, 1984</date>.
Last night to the flicks. ... </q>
</p>
Last night to the flicks ...
属性sameAsは,2つの要素が,同一の内 容を持っていることを記録するために使うことができる. この属性は,リンクの一種と考えることができる. この属性は,同一内容を持つ要素か,または,その内容が,くり返 されているもので,例えば,曲中で同じ歌詞を歌う様な場合に,2 度目のところで,「繰り返し」と記されているような内容を持つ要 素にのみ付与されるべきである. 属性sameAsが示す関係は,対称的な関 係性となる. 同じ歌詞が3度くり返される場合,それぞれに属性sameAsを記録し,1番目の要素を参照すること で,各歌詞が同じ内容であることが示され,1番目の要素からは, その内容がどこに写されるのかを,指定する必要はない.
ソフトウェアは,属性copyOfを伴う要 素を見つけると,その要素内容を,それが参照する要素の内容と, 入れ替えることになる. 参照された要素の内容に,別の要素が含まれている場合には,それ らも全て,この属性を伴う要素の内容として,取り込まれることに なる. 従って,この入れ替えが実行される前後で,当該文書が妥当である かを確認する必要がある. 例えば,属性copyOfを伴う要素に 必須の下位要素がある時には,(例えそれが空要素であっても),参 照先の要素の内容と入れ替えがあったとしても,そのような必須の 要素は存在しなければならない.
<speaker>Mikado</speaker>
<l>My <seg xml:id="Mik-l1s">object all sublime</seg>
</l>
<l>I shall <seg xml:id="Mik-l2s">achieve in time</seg>—</l>
<l xml:id="Mik-l3">To let <seg xml:id="l3s">the punishment fit the crime</seg>,</l>
<l xml:id="Mik-l4">
<seg copyOf="#Mik-l3s"/>;</l>
<l xml:id="Mik-l5">And make each pris'ner pent</l>
<l xml:id="Mik-l6">Unwillingly represent</l>
<l xml:id="Mik-l7">A source <seg xml:id="Mik-l7s">of innocent merriment</seg>,</l>
<l xml:id="Mik-l8">
<seg copyOf="#Mik-l7s"/>!</l>
</sp>
<sp>
<speaker>Chorus</speaker>
<l>His <seg copyOf="#Mik-l1s"/>
</l>
<l>He will <seg copyOf="#Mik-l2s"/>
</l>
<l copyOf="#Mik-l3"/>
<l copyOf="#Mik-l4"/>
<l copyOf="#Mik-l5"/>
<l copyOf="#Mik-l6"/>
<l copyOf="#Mik-l7"/>
<l copyOf="#Mik-l8"/>
</sp>
この属性の詳細については,16.8 選択と19.3 他の木表現を参照のこと.
- « 16.6 同一要素と仮想複製
- » 16.8 選択
- Home | 目次
16.7 総合TEI: Aggregation¶
要素は,厳密なピラミッド型階層構造を構成することから,または 他の理由により,ひとつの要素中に分断されている部分テキストを 全て収めることが出来ないことはよくある. 16.1.4 仲介ポインタでは, 仲介ポインタを使い,そのような非連続的な部分テキストを参照し た. 本節では,別のリンクの手法により,この様な連続していない部分 全体をまとめてみる. この手法は,この章の始めに解説した手法を使うことで実現する. 次に,要素linkを使い,このような部分をまとめ ることを解説する. 最後に,特定の役割を持つリンク要素joinを解説し,これにより,部分を総合す る. そして,この要素joinをまとめる要素joinGrpを解説する.
- att.global.linking
リンクに関する付加的タグが使用される場合,全ての要素に付
与可能な,リンクやハイパーテキストのための属性を定義する.
next 当該要素も所属する仮想集合における次の要素を示す. prev 当該要素も所属する仮想集合における前の要素を示す.
要素joinは,クラスatt.pointingのメンバーで あり,このクラスの属性を使うことができる. このクラスの属性については,16.1 リンクを参照のこと.
<s xml:id="qs2">Monsieur Paul, after he has taken equal
parts of goose breast and the finest pork, and
broken a certain number of egg yolks into them,
and ground them <emph>very</emph>, very fine,
cooks all with seasoning for some three hours.</s>
<s xml:id="qs3">
<emph>But</emph>,</s>
</q>
<s xml:id="ps2">she pushed her face nearer, and looked with
ferocious gloating at the pâté
inside me, her eyes like X rays,</s>
<q>
<s xml:id="qs4">he never stops stirring it!</s>
<s xml:id="qs5">Figure to yourself the work of it —</s>
<s xml:id="qs6">stir, stir, never stopping!</s>
</q>
この様な要素linkでは,属性typeに値joinを持 たせて,当該リンクが,参照先のものを,総合してひとつにする働きが あること示す必要がある.
- join
バラバラにあるテキスト部分を参照し,ひとつのテキスト部分
を指定する.
result 当該要素によりまとめられる要素名を示す. targets 仮想要素へとまとめられる要素または一節の識別子を示 す. - joinGrp
要素joinやポインタをまとめる.
result 当該要素でまとめられた要素joinを示す.
<head>Authors</head>
<item xml:id="a_uf">Figge, Udo </item>
<item xml:id="a_ch">Heibach, Christiane </item>
<item xml:id="a_gh">Heyer, Gerhard </item>
<item xml:id="a_bp">Philipp, Bettina </item>
<item xml:id="a_ms">Samiec, Monika </item>
<item xml:id="a_ss">Schierholz, Stefan </item>
</list>
<join targets="#a_ch #a_bp #a_ss" result="list">
<desc>Authors from Heidelberg</desc>
</join>
以下にある例では,要素joinが,ばらばらになっている引用の部分を再構 築している. ここで思い出されている詩(芭蕉の俳句の,一般的ではない翻 訳)は,「When the old pond / gets a new frog, / it's a new pond.」である.
<speaker>Hughie</speaker>
<p>How does it go?
<q>
<l xml:id="frog-x1">da-da-da</l>
<l xml:id="frog-l2">gets a new frog</l>
<l>...</l>
</q>
</p>
</sp>
<sp>
<speaker>Louie</speaker>
<p>
<q>
<l xml:id="frog-l1">When the old pond</l>
<l>...</l>
</q>
</p>
</sp>
<sp>
<speaker>Dewey</speaker>
<p>
<q>...
<l xml:id="frog-l3">It's a new pond.</l>
</q>
</p>
<join targets="#frog-l1 #frog-l2 #frog-l3" result="lg" scope="root"/>
</sp>
<join targets="#qs3 #qs4"/>
<join targets="#qs5 #qs6"/>
</joinGrp>
Zui-Gan called out to himself every day, ‘Master.’
Then he answered himself, ‘Yes, sir.’
And then he added, ‘Become sober.’
Again he answered, ‘Yes, sir.’
‘And after that,’ he continued, ‘do not be deceived byothers.’
‘Yes, sir; yes, sir,’ he replied.
<body>
<p>
<name xml:id="zuigan">Zui-Gan</name> called out to himself every day,
<q next="#zuiq2" xml:id="zuiq1" who="#zuigan">
<name xml:id="master">Master</name>.</q>
</p>
<p>Then he answered himself,
<q next="#zuiq4" xml:id="zuiq2" who="#zuigan">Yes, sir.</q>
</p>
<p>And then he added,
<q next="#zuiq5" xml:id="zuiq3" who="#master">Become sober.</q>
</p>
<p>Again he answered,
<q next="#zuiq7" xml:id="zuiq4" who="#zuigan">Yes, sir.</q>
</p>
<p>
<q next="#zuiq6" xml:id="zuiq5" who="#master">And after that,</q>
he continued,
<q xml:id="zuiq6" who="#master">do not be deceived by others.</q>
</p>
<p>
<q xml:id="zuiq7" who="#zuigan">Yes, sir; yes, sir,</q>
he replied.</p>
</body>
</text>
<join targets="#zuiq1 #zuiq2 #zuiq4 #zuiq7">
<desc>what Zui-Gan said</desc>
</join>
<join targets="#zuiq3 #zuiq5 #zuiq6">
<desc>what Master said</desc>
</join>
</joinGrp>
この例では,2つの要素joinの内容としてある要素descは,要 素qに相当す るものとして使われていることに注意して欲しい. これにより,2つの仮想要素qを,要素joinを使いまとめて記録することに成功し ている. このような仕組みが必要な理由は,現行の規格では,属性を使い, 仮想要素を関連づける方法がないからである. つまり,属性whoを使い,これらを束ね ることは出来ない.
<body>
<p>Zui-Gan called out to himself every day, <q>Master.</q>
</p>
<p>Then he answered himself, <q>Yes, sir.</q>
</p>
<p>And then he added, <q>Become sober.</q>
</p>
<p>Again he answered, <q>Yes, sir.</q>
</p>
<p>
<q>And after that,</q> he continued, <q>do not be deceived by others.</q>
</p>
<p>
<q>Yes, sir; yes, sir,</q> he replied.</p>
<ab type="aggregation">
<ptr xml:id="rzuiq1" target="./#xpath1(//div1[6]/p[1]/q[1])"/>
<ptr xml:id="rzuiq2" target="./#xpath1(//div1[6]/p[2]/q[1])"/>
<ptr xml:id="rzuiq3" target="./#xpath1(//div1[6]/p[3]/q[1])"/>
<ptr xml:id="rzuiq4" target="./#xpath1(//div1[6]/p[4]/q[1])"/>
<ptr xml:id="rzuiq5" target="./#xpath1(//div1[6]/p[5]/q[1])"/>
<ptr xml:id="rzuiq6" target="./#xpath1(//div1[6]/p[5]/q[2])"/>
<ptr xml:id="rzuiq7" target="./#xpath1(//div1[6]/p[6]/q[1])"/>
<joinGrp evaluate="one" result="q">
<join targets="#rzuiq1 #rzuiq2 #rzuiq4 #rzuiq7">
<desc>what Zui-Gan said</desc>
</join>
<join targets="#rzuiq3 #rzuiq5 #rzuiq6">
<desc>what Master said</desc>
</join>
</joinGrp>
</ab>
</body>
</text>
例えば,識別子rzuiq2を持つポインタ は,当該文書中の6番目のdiv1にある,1番目の要素pにある,1番目 の要素qを示 していると解釈される.
- « 16.7 総合
- » 16.9 スタンドオフスタイル
- Home | 目次
16.8 選択TEI: 選択¶
本節では,選択を示す要素を解説する. ここで,複数の要素が「排他的選択関係」にある,というのは,そ の中のいくつかの要素は,テキスト中で使えるものの,そのうちの 1つしか,実際には使えない関係のことである. また,複数の要素が「非排他的選択関係」にある,というのは,そ の中の(複数でも良いが)少なくとも1つの要素は,実際に使われて いる関係のことである. 選択関係にある要素は,「選択肢」と呼ぶことも出来る.
テキストを符号化する際,排他的選択関係を示す必要があること は多い. 一般的な例としては,ある場所には,複数の単語のうち1つしか使 えないが,そのどれかを決めることが出来ないような場合である. このような排他的選択関係を記録する方法は,リンク属性excludeを使うものである. 排他的選択関係を示すことで,当該の場所に,実際には出現する選 択肢を,後で決めることが出来るようになる. 選択肢が存在していることは,リンク属性selectで示すことが可能である. この属性が付加された要素は,実際に使われる選択肢を示すもの を,内容として取ることが出来る. この選択に関する責任や,起こり具合の程度は, 21 確信度・責任で解説する要素certaintyを使い,記録することが出来る. また,確信度全般についての論議も,この章で解説されている.
- att.global.linking
リンクに関する付加的タグが使用される場合,全ての要素に付与可
能な,リンクやハイパーテキストのための属性を定義する.
exclude 当該要素の代替要素を示す. select ひとつ以上の選択肢を選ぶ.ひとつの選択肢が選ばれる場合,その曖昧度や 不確実度が示される.複数の選択肢が選ばれる場合,選 ばれなかった選択肢の数から還元される,曖昧度や不 確実度が示される.
<u exclude="#we.sun1" xml:id="we.fun1">We had fun at the beach today.</u>
<u exclude="#we.fun1" xml:id="we.sun1">We had sun at the beach today.</u>
</div>
<u exclude="#we.sun2" xml:id="we.fun2">We had fun at the beach today.</u>
<u exclude="#we.fun2" xml:id="we.sun2">We had sun at the beach today.</u>
</div>
<u select="#fun3">We had
<seg exclude="#sun3" xml:id="fun3" type="word">fun</seg>
<seg exclude="#fun3" xml:id="sun3" type="word">sun</seg>
at the beach today.</u>
</div>
<u>We had
<seg select="#f" type="word">
<seg exclude="#s" xml:id="f" type="character">f</seg>
<seg exclude="#f" xml:id="s" type="character">s</seg>
un</seg>
at the beach today.</u>
</div>
<!-- ... -->
<u exclude="#we.sun4 #lee.fun4" xml:id="we.fun4">We had fun at the beach today.</u>
<u exclude="#we.fun4 #lee.fun4" xml:id="we.sun4">We had sun at the beach today.</u>
<u exclude="#we.fun4 #we.sun4" xml:id="lee.fun4">Lee had fun at the beach today.</u>
<!-- ... -->
</div>
<seg exclude="#lee" xml:id="we" type="word">We</seg>
<seg exclude="#we #sun" xml:id="lee" type="word">Lee</seg>
had
<seg exclude="#sun" xml:id="fun" type="word">fun</seg>
<seg exclude="#fun #lee" xml:id="sun" type="word">sun</seg>
at the beach today.
</u>
<u exclude="#we.sun5 #lee.fun5" xml:id="we.fun5">We had fun at the beach today.</u>
<u exclude="#we.fun5 #lee.fun5" xml:id="we.sun5">We had sun at the beach today.</u>
<u exclude="#we.fun5 #we.sun5" xml:id="lee.fun5">Lee had fun at the beach today.</u>
</div>
<u exclude="#lee.fun6" xml:id="we.fun6">We had fun at the beach
today.</u>
<u exclude="#we.fun6" xml:id="lee.fun6">Lee had fun at the beach today.</u>
</div>
<name exclude="#mayn" xml:id="mayd">May</name>
<date copyOf="#mayd" exclude="#mayd" xml:id="mayn"/>.</s>
属性copyOfについては,16.6 同一要素と仮想複製で解説されている. この属性により,不確かな要素の内容を,繰り返し記録する必要が 無くなる.
<div1 xml:id="C1">
<div2 xml:id="C1S3" exclude="#c2s1"/>
</div1>
<div1 xml:id="C2">
<div2 xml:id="C2S1" copyOf="#c1s3" exclude="#c1s3"/>
</div1>
</body>
<u xml:id="we.had.fun">We had fun at the beach today.</u>
<u xml:id="we.had.sun">We had sun at the beach today.</u>
<link
type="exclusive_alternation"
targets="#we.had.fun #we.had.sun"/>
</div>
要素altには,他にも,特別な属性weightsとpercentを取ることが出来る. 属性weightsは,指示対象(選択肢)に 「確率的な重み」を記録するために使うことができる(訳注:文学 的な表現と理解した方がよい). この属性値は,一連の数値で,それぞれの数値が,指示対象と対応 し,その出現度の確率を示している. 選択肢が,排他的な関係にある場合,この重みの合計は1となる.
<u xml:id="we.sun">We had sun at the beach today.</u>
<alt targets="#we.fun #we.sun" mode="excl" weights="1 0"/>
要素altは,要素altGrpを 使い,まとめることが可能で,この時,各要素altで共有す る属性値を,要素altGrpに付与しておくことが出来る. 属性targFuncの初期値は,「first.alternant next.alternant」である.
<seg exclude="#lee2" xml:id="we2" type="word">We</seg>
<seg exclude="#we2" xml:id="lee2" type="word">Lee</seg>
had
<seg exclude="#sun2" xml:id="fun2" type="word">fun</seg>
<seg exclude="#fun2" xml:id="sun2" type="word">sun</seg>
at the beach today.
</u>
<altGrp>
<alt targets="#we2 #lee2"/>
<alt targets="#fun2 #sun2"/>
<alt targets="#we2 #fun2" mode="incl" weights="0.5 0.5"/>
<alt targets="#lee2 #fun2" mode="incl" weights="1.0 0.6"/>
</altGrp>
この記述から,「We had fun at the beach today」の出現確率が 28.5%(訳注:2/7), 「We had sun at the beach today」の出 現確率が28.5%(訳注:2/7),「Lee had fun atthe beach today」の出現確率が43%(訳 注:3/7)と求めることが出来る.
もうひとつの例として,以下に,ブロードウェイでの歌を考えてみ る. この歌には,3つの版があり,同じ行がそれぞれの版で, 'Her skin is tender as a leather glove', 'Her skin is tender as a base ball glove', 'Her skin is tender as Dimaggio's glove'となっている. 65
このような版の違いによるテキストの違いを,要素altを使い,各テキ ストの相対的な確かさを,それぞれ出現率でDimaggio'sが50%, aleatherが25%, a baseball25%と記録することが 出来る.
<l>Her skin is tender as
<seg xml:id="dm">Dimaggio's</seg>
<seg xml:id="lt">a leather</seg>
<seg xml:id="bb">a baseball</seg>
glove,</l>
<l xml:id="rl">and she bats from right to left.</l>
<l xml:id="db">now ain't that too damn bad.</l>
</div>
<altGrp>
<alt targets="#dm #lt #bb" mode="excl" weights="0.5 0.25 0.25"/>
<alt targets="#rl #db" mode="excl" weights="0.50 0.50"/>
</altGrp>
<altGrp mode="incl">
<alt targets="#dm #rl" weights="0.90 0.90"/>
<alt targets="#lt #rl" weights="0.5 0.5"/>
<alt targets="#bb #rl" weights="0.5 0.5"/>
<alt targets="#dm #db" weights="0.10 0.10"/>
<alt targets="#lt #db" weights="0.45 0.90"/>
<alt targets="#bb #db" weights="0.45 0.90"/>
</altGrp>
16.9 スタンドオフスタイルTEI: Stand-off Markup¶
16.9.1 概要TEI: Introduction¶
この章で定義されている機能の多くは,程度の差はあれ,テキス ト中の要素により,テキストの部分が正しく宣言され,それらの 関連性が正しく宣言されていることを前提としている. スタンドオフスタイルと呼ばれるタグの使い方では,この2つの 前提を,分けて考えている. すなわち,要素は,テキストの部分を直接含むことはなく,それ を参照を使い取り込むことになる. 本ガイドラインでは,これを目的に使う機能として,W3Cで規定 されたXIncludeを使うことを推奨している. また,本章で解説されている各種のポインタを使うことも推奨し ている.
スタンドオフスタイルを使う理由は,いくつかある. ひとつは,元資料が書き込み不可の状態であり,マークアップを 追加できないことがある. また,あるテキストでは,互いに相容れない複数の構造を必要と することがある. また,マークアップが作り出す木構造が,元の資料を表現するに 最適であるとはいえないことがある.
本節では,スタンドオフスタイルで書かれる,全ての種類の記録 で使われる機能を解説する.
- 元資料
- スタンドオフスタイルで記録される対象となる文書(元資料 は,XMLデータでも,単なるテキストデータでもよい). 元資料は,複数ある場合もある.
- 内装マークアップ
- XMLデータとしてある元資料に,既にあるマークアップ記述.
- 外装マークアップ
- 元資料中にはなく,当該データが解説する部分を,元資料中 に参照する記述. または,元資料中のある場所にあり,当該データが解説する 元資料中にある部分を参照する記述(訳注:スタンドオフス タイルで使われている要素と理解した方がよい).
- 外装文書
- 異なる元資料を参照している外装マークアップを含む文書.
- 内装化
- 元資料と,外装マークアップとをあわせて,新しくXML文書 を作ること. 元資料は,タグ付けされていることもある.
- 外装化
- マークアップ記述を,XML文書から取り出すこと. これにより,結果として,2つの文書が作られる. ひとつは,XML(外装)文書で,元のXML文書にあったタグを含 んでいる. ひとつは,XML(元資料)文書で,外装文書には抽出されなかっ たテキストやマークアップが含まれている. 元のXML文書から全てのマークアップが外装化された場合, 新たに作られるデータ(訳注:のひとつ)は,単なるテキスト データとなる.
- 妥当なTEIデータは,内装データか,外装データのいずれか である.
- 外装マークアップは,妥当なTEIデータを作るために,文書 内容に対して,既存のマークアップと置き換わり,または, それに付加することで,内装化することが出来る.
- 外装マークアップは,内装化された文書が,既存のマークアッ プを置き換えることで作られるのか,または,それに付加す ることで作られるのかを,規定している.
- « 16.9.1 概要
- » 16.9.3 TEIのスタンドオフスタイル
- Home | 目次
16.9.2 XInclude TEI: Overview of XInclude ¶
スタンドオフスタイルの記述では,仮想的に内容を取り込む機能 を使うことが前提となり,これは,W3Cで推奨され,本ガイドラ インでも推奨している,XIncludeという機能を使う. 66 XIncludeでは,名前空間(http://www.w3.org/2001/XInclude)が定義されいる が, 本ガイドラインでは,これを接辞xi:と,2つ要素xi:includeとxi:fallbackで示されている. XIncludeでは,本章でも至る所で出てくるXPointerという機能を使っ ている. これにより,テキストの部分を内装化することが出来る. XIncludeは,XPointerのうちelement()スキームしか使っていないが,本ガ イドラインでは,16.2 ポインタの機能で解説したスキームを使 うことにする.
XIncludeは,W3Cが推奨する,XML文書中に,他の資料にある部分 データを取り込むための構文のことである. 取り込まれるデータは,テキストデータまたはXML文書である. XML文書中にあるXInclude命令は,URIで指定されている資料に置 き換えられることになる. XPointerを使い,外部資料にある部分データを指定し,取り込む ことも可能である. 置き換えの資料の取得に失敗することも考慮して,元々の資料 を,取り置き分として指定することも可能である.
要素xi:includeは,属性hrefを使い,取り込まれる資料の場所を指 定する. この属性値は,IURIを取り,必要であれば,XPointerを含むこと も出来る. また,属性parse(この属性値はtextとxmlのみ) を使い,取り込まれる内容が,テキストデータかXMLデータかを 示すことが出来る. また,属性encodingを使い,取り込 まれる内容がテキストデータである場合に,そのデータの符号化 方法を知る情報を示すことが出来る. 要素xi:fallbackを,選択的に,要素 xi:includeの中で使うこともできる. これにより,何らかの理由で外部にある資料の取り込みが失敗し た場合に,代替となる内容を指定することが出来る. 但し,これを使うことは,スタンドオフスタイルでは推奨されな い.
XIncludeは,現状では,ひとつのXPointerスキー ムelement()だけを使っている. 16.2.3 W3C element()でも解説したように,element()スキー ムは,裸の名前(特定の属性xml:idを 持つ要素の名前),または,子要素の列(XML木にあるパスを特定 する,スラッシュで区切られた子要素の列を,数字で示したもの)を 使い,特定の部分を指定することになる. xpointer()スキームは,XPointerの一部として,当初 から検討はされていたが,まだW3Cでは勧告扱いにはなっていな い. xpointer()スキームとTEIスキームについては,既に解 説してあるが(16.2.4 TEI XPointer),そこでは地点と範囲の概念が導入されていた. これらは,下位ノード部分(例えば,長いテキストノード中の数 単語)や,越境ノード部分(例えば,XML木全体で,異なる枝にわ たり範囲を持つテキスト部分)を示すために使うことができる.
16.9.3 TEIのスタンドオフスタイルTEI: Doing Stand-off Markup in TEI¶
タグを内装化や外装化は,大変便利で,実用上重要な処理である. W3Cが定めるXIncludeの処理方法では,複数の元資料の内容が, 内装化されることになる. TEIのスタンドオフスタイルの記述では,XIncludeが使わ れ,XIncludeに対応したソフトウェアでは,これを処理す ることが出来る. 但し,内装化の詳細な手順は,スタンドオフスタイルで書かれた 記録に,明確には定義されていない. 理由は,内装・外装マークアップの構造が,オーバーラップする こともあるからである. 特に,外装文書が,元資料にある特定の要素とオーバーラップす る範囲を指定している場合,どの様に内装化(つまり取り込み)を 実行するのかは,明確ではない. なぜなら,完結していない部分的な要素は,XMLのデータではな いからである. 67 XIncludeでは,完全なる要素だけを含む場合の振る舞いが定義さ れている.
あるひとつの文書中で,構造上オーバーラップがある場合,各階 層構造は,元資料を参照するXIncludeをまとめ,それを独立した 単位として表現する必要がある. この種の構造は,言語資料を記録するときに一般的に使われてい る. そのような言語資料では,テキスト中のオーバーラップ構造は, スタンドオフスタイルで,各構造が表現されている. 一般に,元資料には,コーパスにおける分析の最小単位がマーク アップされている. 例えば,単語や形態素などである. これらの情報やタグは,各種の階層構造すべてで共有される情報 を示すレイヤとなっている. 複雑なデータ表現をまとめる方法として,スタンドオフスタイル では,多くの属性xml:idを使うこと になる. この属性は共有される要素に付与され,リンクを構成する堅固な アンカーとなる. また,外在文書が元資料との関係を上手く成立させる働きもする.
全てのタグは,その内容が外在化により取り払われたり,他の内容を参 照するXPointerを含む要素xi:include により入れ替えられることができる.
<body>
<head>1755</head>
<l>To make a prairie it takes a clover and one bee,</l>
<l>One clover, and a bee,</l>
<l>And revery.</l>
<l>The revery alone will do,</l>
<l>If bees are few.</l>
</body>
</text>
元資料(Source.xml)
外装文書(External.xml)
規格に従えば,XIncludeの名前空間は,必ず宣言する必要があることに 注意して欲しい. 要素xi:fallbackは, 何らかの理由(例えば,外部にある元資料へのアクセスに問題がある こと)で,取り込みが失敗した場合に,当該文書中に埋め込まれる テキストデータまたはXML部分データを記録するものである. 要素xi:fallbackは選択的に使われる. これが記録されていない場合には,XIncludeを処理するソフトウェア は,取り込むべき元資料が見つからない場合,致命的エラーを返すこ とになる. これは,スタンドオフスタイルで書かれたデータを扱う場合には,よ いことである. 本ガイドラインでは,スタンドオフスタイルのデータでは,この要素 xi:fallbackを使わないことを推奨してい る.
16.9.4 スタ ンドオフスタイルの整形式性と妥当式性TEI: Well-formedness and Validity of Stand-off Markup¶
XIncludeで参照される元資料の部分は,XIncludeの場所に挿入され, XIncludeを処理するソフトウェアは,その結果として作られる内装文 書は,整形式であることが求められる. これは,外装文書にXMLのタグが含まれているときでも,求められる 条件である. 元資料がテキストデータである場合は,作り出される内装文書は,常 に整形式となる.
TEIでは,要素xi:includeをTEI文書中のど こでも使えるよう改変することが認められているが,当ガイドライン では,一般論として,要素xi:includeが処 理された後は,それが妥当式であるかが検証されることを求めたい.
16.9.5 テキストデータ・部分XMLデータの取り込みTEI: Including Text or XML Fragments¶
元資料がテキストデータの時,XPointerによる参照は,あまり重要で はなくなる. 一方,XPointerが問題となるのは,元資料がXMLデータの場合である.
この場合,元資料のXMLデータを新しいデータへと入れ替えるのか, または,新しいタグを追加するのかを分けて考えることが重要である. 例えば,索引で使われるXPointerは,この両方の場合を表現すること ができる.
元資料(Source.xhtml)
一方,範囲をxpointer(//text()/range-to(.))や xpointer(string-range(//text(),"To")/range-to(//text(),"few.") と表現した場合には,詩のテキスト部分のみが選択され,マークアップ の記述は含まれない.
外装文書(External2.xml)
- « 16.9 スタンドオフスタイル
- » 16.11 リンクモジュール
- Home | 目次
16.10 分析マークアップとテキストマークアップの連携TEI: Connecting Analytic and Textual Markup¶
17 簡易分析機能と18 素性構造や,他でも解説し たように,分析や解釈向けのマークアップを,テキストマークアッ プとは別に,同一の文書中または別の文書中に記録する仕組みがあ る. 離れて置かれている要素は,ポインタ向けの属性ana(分析)や属性inst(インスタンス),要素linkや,要素linkGrpを使い,結びつけることができ る. 多くの例が,先に紹介した各章で紹介されている.
16.11 リンクモジュールTEI: リンクモジュール¶
↑ Contents « 15 Language Corpora » 17 簡易分析機能