このチュートリアルは、GDA (Global Document Annotation) にもとづいて初めて (日本語の) アノテーション (タグ付け) をしようとする人々のために書かれています。 GDA の目的は、機械に文書の意味を理解させることにより、 意味に基づく情報検索や質問応答や機械翻訳などの高度なサービスを実現することにあります。
GDA のアノテーションを行う人は、 機械に理解できない部分のアノテーションに集中できます。 このため、はじめはわかりにくい部分があるかもしれませんが、なれるに従って、簡単な記述で意味を十全に表わせることがわかれば、タグをつけていくスピードがどんどんあがっていくはずです。
このチュートリアルは、理解しやすいように、説明が簡略化されているところがあります。そういう部分についてはマニュアルへのリンクを設けてありますのでそちらを適宜参照しながら読み進めていってください。
2. タグとは
タグとは、テキストに付ける標識のようなものです。
たとえばWebページを記述する HTML (HyperText Markup Language) では、
あの先生、<FONT COLOR="red" SIZE="+1">ゲーム</FONT>が好きなんですって!と「ゲーム」にタグをつけると、
あの先生、ゲームが好きなんですって!のように表示されます。この例では、「ゲーム」という文字列に"大きく赤いフォントで表示せよ"という標識をつけたことになります。
このように、文字列にタグを付けることをアノテーション、あるいはタグ付けと呼びます。HTMLではWebブラウザで文字の大きさを変えたり、表を作ったりするためにアノテーションを行いますが、GDAでは主に文章の意味を示すためにアノテーションを行います。
3. アノテーションの基本
上記の例でもわかるとおり、アノテーションは文字列を開始タグと終了タグで囲むことによって行ないます。
のような形式が基本となります。開始タグから終了タグまでの文字列を、エレメントと呼びます。 タグ名、"<" や ">"、"/" は半角です。 HTMLと違って終了タグを省略することはできません。また、
<タグ名> 文字列 </タグ名> └開始タグ┘ └終了タグ┘
<orgname>産業技術総合研究所</orgname>のように文字列を囲む開始タグと終了タグのタグ名は同じである必要があります。上の例ではorgnameがタグ名で、囲まれた文字列が組織の名称であることを表します。
×<persname>橋田 浩一</np>は、開始タグと終了タグの名前が異なるので正しくありません。
タグ名を説明なしに使うことがありますが、必要に応じて説明していきますから、知らないタグ名等があっても気にせずに読み進めてください。
また、タグは入れ子にすることができます。
<n>とても<aj>速い</aj><n>車</n></n>では、「速い」を<aj>タグ、「車」を<n>タグで囲んだ上で、 「とても」とこれらをあわせた「とても速い車」を<n>タグで囲んでいます。 このような入れ子構造はいくらでも深くできます。
あるエレメント X のすぐ内側に現われるエレメントやテキストを X の子供と言います。 同じエレメントの子供同士を兄弟と言います。 たとえば上の例では、「とても」と <aj>速い</aj> と <n>車</n> は兄弟同士です。 「速い」は <aj>速い</aj> の子供ですが、全体の子供ではありません。
このチュートリアルやマニュアルでは、入れ子構造をわかりやすくするため、実際のデータにはない改行やスペースを適当に入れて、タグ付きテキストを次のように示すことがあります。
<n> とても <aj>速い</aj> <n>車</n> </n>ここで注意して欲しいのは、エレメント同士は交差できないということです。たとえば
×<orgname>上野動物<n>園</orgname>長</n>という例で、「上野動物園」を<orgname>タグで囲み、「園長」を<n>タグで囲んでいますが、これら2つのエレメントが「園」で重なっているので、このアノテーションは間違いです。
また、開始タグの中には属性を書くことができます。 属性は、属性名="属性値"の形をしています。
<タグ名 属性名="属性値">GDA では属性名は半角文字で、属性値は必ず半角の" (ダブルクオート)で囲みます。 タグ名と属性名の間には半角のスペースを入れます。例を見てみましょう。
<n prn="はたち">二十歳</n>ここで、<n>は名詞 (noun) を表わすタグです。 prnは属性名で発音 (pronunciation) を意味し、""で囲まれた「はたち」がその値です。 つまり上のアノテーションは、「二十歳」は名詞で"はたち"という読みだ、 という意味になります。
統語的アノテーションを行うためには、まず、語の種類をアノテーションすることが必要になります。 それに用いるタグを下に列挙します。 語の種類をあらわすタグはこのほかにもありますが、詳細はマニュアルを参照してください。
|
<n>太郎</n><ad>が</ad><v>結婚する</v>。<n>太郎</n>は、「太郎」が名詞であることを示しています。ただし、「太郎」は、人の名前を表わす固有名詞ですので、そのことを明示的に書きたいときは、<persname>太郎</persname>というタグを用います。「が」は格助詞ですので、<ad>を用いて<ad>が</ad>というふうにタグをつけます。「結婚する」はサ変動詞ですから<v>を用いて<v>結婚する</v>とアノテーションします。 サ変動詞や形容動詞は<v>結婚</v><v>する</v>のように語幹と語尾を分けても構いません。
さらに、この文を他の文と区別するため、次のように文全体を<su>で囲みます。 su は `sentential unit' (文単位) の略です。
<su><n>太郎</n><ad>が</ad><v>結婚する</v>。</su>エレメントを入れ子にすることによって文や文章の構造を示すことができます。 ここで注目していただきたいのは、「蝶のように」とか「私の」のような複数の単語からなる語句を一組のタグで囲めることです。 句読点(「。」と「、」)などの記号には原則としてタグを付けません。
「蝶のように」は、上のタグを使って
<n>蝶</n><ad>の</ad><v>よう</v><ad>に</ad>のようにアノテーションできますが、「蝶のように」全体でも副詞的な役割を果たしていますので、
<ad><n>蝶</n><ad>の</ad><v>よう</v><ad>に</ad></ad>と全体をさらに<ad>で囲むことができます。 また、GDAではタグの省略が可能なので、
<ad>蝶のように</ad>のように簡単なアノテーションで済ませることもできます。
もちろん、文全体でなく文の一部をまとめても構いません。たとえば「太郎が結婚する」の中で「太郎」と「が」をひとかたまりとして<ad>で囲み、
<su><ad>太郎が</ad><v>結婚する</v><su>のようにまとめることができます。
速い車では、「速い」が「車」を修飾しています。 このようなとき、「速い」が「車」に係る (依存する) と言います。 受ける側の語句 (この例では「車」) を全体 (この例では「速い車」) の主辞と呼びますので覚えておいてください。 下の各例では、赤くなっている語が主辞です。
「速い車」は下のようにアノテーションできます。
<n><aj>速い</aj><n>車</n></n>GDAでは、原則として、依存関係は兄弟の間で成り立ちます。 上の例では <aj>速い</aj> と <n>車</n> が兄弟なので、両者の間に依存関係が成立します。 日本語では主辞が後に現われる (係り側が主辞より前にある) のが普通なので、実用上はこのアノテーションでも十分です。 つまり、「車」が主辞であることがわかります。
また、あるエレメントの品詞はその主辞の品詞と同様になります。 たとえば上の例では、「速い車」全体が <n> エレメントになっていますが、これはその主辞である「車」が <n> だからです。 「酔っ払った太郎」とその主辞「太郎」はいずれも名詞的語句なので 両方を <n> エレメントにすることができますが、 「酔っ払った太郎」全体は固有名詞ではないので、 <persname> エレメントにしてもよいのは「太郎」だけです。
しかし、上の「何だそれ」のような例からもわかるように、 主辞が必ずしも後に現われるわけではありません。 上の「速い車」のアノテーションでも、日本語の性質を前提しなければ、 「速い」が「車」に係る可能性と「車」が「速い」に係る可能性の両方があります。 そこで、「速い」が「車」に係ることを日本語の性質によらずに明示するには下のようにします。
<n><ajp>速い</ajp><n>車</n></n><ajp> の pは、`phrase' (句) の略です。 句とは、文内の語句であって主辞でないものを指します。 <aj>に対応して<ajp>があるように、 <n>、<v>、<ad>、<persname> などにもそれぞれ対応する句を表わすタグ <np>、<vp>、<adp>、 <persnamep> などがあります。 これらのタグに囲まれたエレメント (たとえば上の <ajp>速い</ajp>) を句エレメントと呼びます。 これに対し、<aj>、<n>、<v>、<ad> などのタグで囲まれたエレメントを主辞エレメントと呼びます。 句エレメントは主辞になれませんので、 上の例では、「速い」を <ajp> エレメントにすることによって、 「速い」が主辞でなく、したがって「車」を受けられない、 ゆえに「速い」が「車」に係ることが示せるのです。
主辞が後に現われるという日本語の性質を前提しても、 依存関係を特定するために句エレメントと主辞エレメントの両方が必要な場合があります。 たとえば「すごい速い車」を
<np><aj>すごい</aj><aj>速い</aj><n>車</n></np>のようにアノテーションした場合、たとえ主辞が後に現われると仮定しても、 「すごい」より後には「速い」と「車」があるので、 「すごい」が「速い」に係る (「すごく速い車」と同じ意味になる) のか「車」に係る (「すごくて速い車」の意味になる) のかがはっきりしません。
どちらであるかをはっきりさせたくない場合にはこのままで構いませんが、 「すごい」が「速い」に係ることを明示するには、 下のようにアノテーションすることができます (後述のように、この場合にはもう少し簡単なアノテーションも可能です)。
<np>
<ajp>
<ajp>すごい</ajp>
<aj>速い</aj>
</ajp>
<n>車</n>
</np>
つまり、<aj>すごい</aj> と <n>車</n>
が兄弟ではないので、
「すごい」は「車」に係ることができず、「速い」に係る可能性だけが残ります
(後に述べるように、依存関係が成り立つのは原則として兄弟の間だけです)。
また、下のアノテーションは「すごい」が「車」に係ることを示します。
<np> <ajp>すごい</ajp> <ajp>速い</ajp> <n>車</n> </np>
以下に他の例を示します。
<su><adp>太郎が</adp><adp>花子と</adp><v>結婚する</v></su>このアノテーションでは、「花子と」が<adp>エレメントになっているので、 「太郎が」は「花子と」に係ることができず、 「花子と」をとばしてその次の「結婚する」に係ることになります。
<su><adp>僕は</adp><np>そんなこと</np><v>しない</v></su>の場合には、「そんなこと」が<np>エレメントなので、 「僕は」は「そんなこと」を飛び越えて「しない」に係ることになります。
<su><np>何</np><v>だ</v>、<adp>それは</adp>。</su>では「それは」が「だ」に後から係ることが明示されています。
なお、前述のように句読点などの記号には原則としてタグを付けませんが、 一般に、タグの付いていない記号は依存関係に関与しません (係ったり主辞になったりしません)。
| (1) | これまでの説明に基づいて、
依存関係を特定するように「太郎は楽しく遊ぶ」をアノテーションしなさい。 |
| (2) | 同じく、「太郎は明日病院に行く」をアノテーションしなさい。 |
| (3) | 「やっとの思いで買ったゲームをなくした」では、 「やっとの思いで」が「買っ」に係る場合と「なくし」に係る場合とがあります。 前者の解釈を示すようにアノテーションした場合、 「ゲームを」を含む最小の <adp> エレメントはどの部分になりますか。 |
| (4) | 「太郎は慌てて逃げる男を追いかける」について、
|
| (1) | <su><adp><persnamep>太郎</persnamep><ad>は</ad></adp><ajp>楽しく</ajp><v>遊ぶ</v></su> |
| (2) | <su> <adp><persnamep>太郎</persnamep><ad>は</ad></adp> <np>明日</np> <adp><np>病院</np><ad>に</ad></adp> <v>行く</v> </su> |
| (3) | やっとの思いで買ったゲームを |
| (4) |
|
GDAによってアノテーションされたファイルをGDAファイルと呼びます。GDAファイルは一定の形式で記述しなければいけません。ここではそのやり方を解説していきます。
一般のWebページはHTMLによって記述されています。 HTMLファイルは全体がひとつの <html> エレメントです。 GDAはXMLに基づいたアノテーションの仕組みなので、下の図のように、 GDAファイルはXML宣言等で始まります。 ファイルの本体はひとつの <gda>エレメント です。
<?xml version="1.0" encoding="Shift-JIS"?> <!DOCTYPE gda SYSTEM "gda.dtd"> <gda> ・・・・・ ・・・・・ </gda> |
さて、GDAファイルの中身は意味情報が付け加えられた文章ですが、文章にも大きなまとまりがいくつかあります。 たとえばいくつかの文を段落にまとめたり、表題を文章の他の部分と区別するようなことがあります。 このような場合、下のようなタグを用いて表現します。
これらのタグの階層関係はたとえば下のようになります。
<dv> ・・・・ 章や節など、文章の区分(division) <h> ・・・・ 表題(heading)※註1 <p> ・・・・ 段落(paragraph) <su> ・・・・ 文(sentential unit)
| |||||||||||||||||||||||||||||||||||||||
GDA ファイルがどの言語で記述されいるかは lang 属性を用いて示します。 また、アノテーションした人は resp 属性 によって特定します。 たとえば、
<gda lang="jpn" resp="Bamboo"> ・・・・・ ・・・・・ </gda> |
また、文章の最初や最後に書かれている著者や作者の名前は <docAuthor> タグで囲みます。 たとえば、
<dv>やれうつな蠅が手をする足をする</dv> <docAuthor> <persname>小林 一茶</persname> </docAuthor>のように用います。ここでは<docAuthor>の中で人の名前を表わす<persname>を用いていますが、内容によっては、
<docAuthor> <orgname>環境省</orgname> </docAuthor>のように、団体名称を表わす<orgname> を用います。
また、名前だけでなく住所などが含まれている場合は、<byline>タグを用います。
<byline> <persname>伴 宙太</persname> <addr>東京都杉並区</addr> </byline>ここでは、「伴 宙太」が人名なので <persname> で囲み、「東京都杉並区」は住所を表わす <addr> で囲みます。
これ以外の文章の要素として引用があります。 引用は、<q> タグを用いて以下のようにアノテーションします。
芭蕉の辞世の句は、<q>「<su>旅に病んで夢は枯野を駆けめぐる</su>」</q>でした。引用を示す括弧 (上の例では"「"と"」") も <q> エレメントに含めます。 引用の中身は、地の文章と同じように <su> や <dv> を用いてアノテーションします。
あの年僕は高校3年生だったの「あの年」は1988年かも知れません。 日付の値をアノテーションによって明示しておけば、 これらを同じ日付によって検索することなどが可能になります。 たとえば、
<date value="1988">昭和63年</date>のように、日付ならば <date> (または<datep>) タグを使い、value 属性 の値を書きます。 時刻の場合には <time> (または<timep>) タグを用い、 値を明示するにはやはりvalue 属性を用います ※註3。
<time value="12:00">正午</time>また、期間を表わすタグとして <period> と <periodp> があります。
<period value="1994/2003">1994年から2003年まで</period>同じように、単位のない数値および割合を表わす数値は <num> (または<nump>) タグで囲み、value 属性で値を明示します。 type 属性によって数値の種類を指定します。 詳しくはこちらを参照してください。
湿度<num type="pc" value="65.5">65.5%</num>type 属性の値が pc (percent) なので、この数値はパーセンテージであることがわかります。
<n><nump value="100" type="int">百</nump>光年</n>「光年」は距離の単位なので <nump> エレメントの外に置きます。 type="int" は省略可能です。
<n><ajp>美しい</ajp><n>娘</n></n>では、「美しい」のは「娘」の性質であって逆ではないという意味で、 「娘」が意味的な中心だと言えます。 しかし、複数個の語句が対等の関係にある場合もあります。たとえば、
健と弘はけちだの「健と弘」では、「健」と「弘」は対等の立場にあります。 この「健と弘」のようなものを等位構造と呼びます。 等位構造のアノテーションには下のように syn 属性を使います。
<su><np syn="c">健と弘</np>はけちだ。</su>
<su><np syn="c">赤と青と緑</np>は光の三原色です。</su>
<su>太郎は<np syn="c">ヘビとトカゲ</np>が嫌いだ。</su>ここで、<np syn="c">健と弘</np> の中身をアノテーションするときは、
<np syn="c"><persnamep>健</persnamep><io>と</io><persnamep>弘</persnamep></np>のように、「と」や「および」などの等位接続詞を <io> タグで囲むと、 「健」と「弘」が対等であることが明示されます。
<n><aj>美しい</aj><placename>日本</placename><ad>の</ad><n>私</n></n>のような場合、各エレメントはsyn="d"を持つと解釈されますが、 それだけでは、たとえば 「美しい」が「日本」に係るのかそれとも「私」に係るのかはわかりません。 この曖昧性を解消するには、5節で見たように<〜p>の形の句エレメントを作ったり、次のように syn="f" を用いたりします。 f とは前向き(forward)の依存関係のことです ※註4。
<n syn="f"><aj>美しい</aj><placename>日本</placename><ad>の</ad><n>私</n></n>一般に、syn="f" を持つエレメントのそれぞれの子供は、 後続する兄弟であって句エレメントでないものがあれば、 そのうち一番近いものに係ります。 したがって、上の「美しい」は「日本」に係り、「美しい日本」は「の」に係り、 「美しい日本の」は「私」に係ることになります。 「私」には後続する子供がないので、「私」の係り先はありません。 「美しい日本の私」で「美しい」が「私」 に係ることを明示するには下のようにアノテーションします。
<n syn="f"> <aj>美しい</aj> <adp><placename>日本</placename><ad>の</ad></adp> <n>私</n> </n>
syn属性のそのほかのよく使う値には、aがあります。 aは同格 (appositon) を意味します。 同格とは、2つの表現が意味するものが等しいということです。 たとえば、
<su syn="f"> 徳川家康が征夷大将軍に任じられたのが、 <np syn="a"><datep>慶長8年</datep><io>すなわち</io><datep>西暦1603年</datep></np>だ </su>は、「慶長八年」と「西暦1603年」が等しいことを示しています。
エレメントの子供がすべて句エレメントである場合には、 主辞が省略されていると考えます。 syn の値が c と a (および下記の r と e) の場合には、 それぞれ等位接続詞 (「と」や「および」) と同格接続詞 (「つまり」など) が省略されている (r と e の場合には、「いや」、「じゃなくて」などが省略されている) と見なします。 syn属性の値がdやfの場合は、 省略された主辞の種類についてはさまざまな可能性があります。 たとえば下の例では「受賞した」のようなものが省略されている可能性があります。
<su><adp>2003年に</adp><np>紫綬褒章</np></su>下の例では「だ」や「です」のようなものが省略されている可能性があります。
<su><adp>清原が</adp><np>四番</np></su>逆に言うと、主辞が省略されている場合には、 上のように主辞に係る句を句エレメントにすればよいことになります。
syn 属性の値とその意味を下にまとめます。
| d: | 依存構造 |
| f: | 前向き依存構造 |
| b: | 後向き依存構造 (f の逆) |
| c: | 等位構造 |
| a: | 同格 |
| r: | 修正 <np syn="r">上、<io>いや</io>、下</np> |
| e: | エラー (上と同じ例で「右」が正しい場合など) |
これまで統語的アノテーションのやりかたを見てきました。 統語的アノテーションでは、どの語がどの語に結びつくのかを明示します。 たとえば、「漱石の本」を
<np syn="f"><persname>漱石</persname><ad>の</ad><n>本</n></np>というようにアノテーションすることで、 「漱石」が「の」に係り「漱石の」が「本」に係ることは明確になります。 しかし、「漱石の本」の意味は、漱石が書いた本、 漱石が所有する本、誰かが漱石について書いた本など、 いろいろ考えられます。 そしてそのうちのどれが意図された解釈であるかは、 統語的アノテーションによっては明確になりません。 これは、統語的アノテーションでは語の間の結び付きとその種類 (依存関係、 等位関係など) しか記述せず、その結びつきの具体的な意味を記述しないからです。
その具体的な意味を明示にするために関係子を使います。 係り先から見てそのエレメントがどういうものであるかを opr属性 (oprは `operator' (演算子) の略) を用いてアノテーションします。 「漱石の本」の「漱石が書いた本」という解釈を明示するには、
<np syn="f"><persname>漱石</persname><ad opr="mkr">の</ad><n>本</n></np>のようにアノテーションします。 mkrは `maker' の略です。 この例は、「本」に対して「漱石」が作成者であるという関係を明示しています。 次に、漱石が所有する本の場合は、
<np syn="f"><persname>漱石</persname><ad opr="pos">の</ad><n>本</n></np>というふうにアノテーションします。 pos は `posessor' の略で、受け側に対して係り側が所有者の関係にある、 ということを意味しています。 「誰かが漱石について書いた本」の場合には、
<np syn="f"><persname>漱石</persname><ad opr="sbm">の</ad><n>本</n></np>のようにタグ付けします。 sbm は `subject matter' の略で、話題を表します。
このようにして、関係を表わすエレメントにopr属性を加えることで依存関係の意味を記述することができます。 また、下のように関係を表わすエレメントがない場合には、 係り側のエレメントにopr属性を付けることができます。
<su><np opr="agt">私</np>、<v>帰る</v>。</su>mkr や pos のようなものを関係子と呼びます。 基本的な関係子は 100 近くありますが、 このチュートリアルでは特に大事だと思われるものを扱います。 詳しくはGDA日本語アノテーションマニュアルを参照してください。
関係子を用いたアノテーションは、関係節をアノテーションするときにとくに重要となってきます。関係節とは、名詞を修飾する節 (文) です。たとえば、 「昨日買った本」の「昨日買った」や 「牢獄から脱出できた男」の「牢獄から脱出できた」の部分のことです。
関係節の係り先の名詞は、しばしば、関係節の中のある語と意味的な関係を持ちます。 たとえば「昨日買った本」では「本」(昨日買った本) は「買っ」の対象です。 このことをアノテーションで示すには下のようにします。
<np>昨日<v obj="mcn">買っ</v>た本</np>関係子 obj は動作の対象 (object) を表わすので、 「買っ」に対して「本」が動作の対象だということになります。
ここで、関係子 obj を属性として使っていることに注目してください。 今まで、関係子は opr 属性の値として使っていましたが、 上の例のように関係子を属性名として使うこともできます。 そのような属性を関係属性と呼びます。 また、mcn は "minimal container noun" の略で、 そのエレメントを含む最小の名詞エレメントを意味します。 したがって、上の例の mcn は「昨日買った本」を指します。
「牢獄から脱出できた男」では、「男」が「脱出」の動作主なので、
<np>牢獄から<v agt="mcn">脱出</v>できた男</np>のようにアノテーションされることになります。 agt は動作主 (agent) を意味する関係子です。
関係節と係り先の名詞との関係について曖昧性が生ずることがよくあります。 たとえば、
昨日校庭で殴った生徒では、「生徒」が殴ったのか殴られたのかわかりません。
<np>昨日校庭で<v agt="mcn">殴っ<v>た生徒</np>のようにアノテーションすると、関係子 agt によって「生徒」が「殴る」の動作主であることが明示されます。 もうおわかりのとおり、生徒が殴られたことを示すには、
<np>昨日校庭で<v obj="mcn">殴っ<v>た生徒</np>のように関係子 obj を関係属性として用いてアノテーションします。
| (1) | 「最初に話した男が来た」について、
|
| (2) |
<su>彼を<v ?="mcn">見下し</v>ていた<n>女</n>が結婚した</su>で?に適当な関係子を入れなさい。 |
| (3) | 「私が話した場所はここです。」について、 「場所」が私の講演の会場の意味になり、 かつ単語間の依存関係が唯一に決まるようにアノテーションしなさい。 ただし、物事に対してそれが行われた場所を表わすには関係子 locを用います。 |
| (1) | 1.は最初に話題になった男が来たという解釈になり、2.は一番に口火を切った男が来た、という解釈になる。 |
| (2) |
<su>彼を<v agt="mcn">見下し</v>ていた<n>女</n>が結婚した</su> |
| (3) |
<su syn="f"> <n>私</n><ad>が</ad><v loc="mcn">話し</v><v>た</v><n>場所</n> <ad>は</ad><np>ここ</np><v>です</v>。 </su>など |
文や文章の意味を記述するには、 代名詞が何を指しているかを特定しなければなりません。 たとえば、
健が明をなぐったのは、彼が馬鹿だからだ。では、この「彼」が健を指しているのか明を指しているのかよくわかりません。 これを特定するには、id属性を用います。 たとえば下記のようなアノテーションは「彼」が健を指していることを示します。
<persname id="ken">健</persname>が明をなぐったのは、<n eq="ken">彼</n>が馬鹿だからだ。つまり、「健」に id 属性を与えて ken という id 値 (id属性の値) で「健」を参照できるようにし、 ken を値とする関係属性 eq を「彼」に与えて 「彼」と「健」の指示対象が等しいことを表しています。 eq は等価 (equal) の意味です。 実は、上で述べた mcn も id 値のひとつです。 ひとつの GDA ファイルの中では、別の id 属性は異なる値を持たねばなりません。
<np id="benz">健の赤いベンツ<np>は川に飛び込んでも壊れなかった。 ×<n eq="benz">ベンツ<n>は丈夫な車だ。のようなアノテーションは間違いです。 つまり、benz という id 値が「健の赤いベンツ」が表わす特定の 1 台の車を指しているのに対し、第 2 文の「ベンツ」はベンツ一般を示しているので、 「健の赤いベンツ」と eq で結ぶことができません。 下記は正しいアノテーションです。
健の赤い<n id="benz">ベンツ<n>は川に飛び込んでも壊れなかった。 <n eq="benz">ベンツ<n>は丈夫な車だ。一般に、ある語句よりもその主辞の方が一般的な事物を指します。 たとえば上記の「健の赤いベンツ」が特定の 1 台の車を指しているのに対し、 その主辞である「ベンツ」はその 1 台の車が属する車種を指します。
下記では、「磨いた」の省略された主語 (動作主) が健であることを示すために関係属性 agt を用いています。 また、pos="ken" は「部屋」と「車」がそれぞれ健の部屋と健の車を指すことを示します。 関係子 pos は所有者 (posessor) の意味です。
<n id="ken">健</n>は昨日<np pos="ken">部屋</np>を掃除した。 <np pos="ken">車</np>も<v agt="ken">磨い</v>た。
依存関係が交差しているときにも、id 属性と関係属性を使います。 たとえば、
専門学校の彼は学生です。は、「彼は専門学校の学生です。」という意味であり、 下のように、「専門学校の」が「学生」に係り、「彼は」が「です」に係ります。
しかし、これを今までのやり方で記述することはできません。 「学生」を句エレメントにすることによって 「彼は」が「です」に係るようにすることができますが、 その場合は「専門学校の」が「学生」に係れなくなってしまいます。
┌────────┐ 専門学校の 彼は 学生 です └──────┘
× <su><adp>専門学校の</adp><adp>彼は</adp><np>学生</np><v>です</v>。</su>そこで、下記のように、「専門学校の」が「学生」に係るように、 「学生」に id 値を与え、「専門学校」に dep 属性 (dep は"depend"の略)を与えてその id 値を参照します。
<su><adp dep="S">専門学校の</adp><adp>彼は</adp><np id="S">学生</np><v>です</v>。</su>このように書くことにより、「専門学校の」が「学生」に係る (依存する="depend") ことがわかります。 dep 属性は係り側に付け、受け側を参照します。
dep 属性が指す先はそのエレメントの兄弟またはその子孫に限ります。 たとえば下のようなアノテーションは間違いです。
<su>
<np>
<adp>専門学校の</adp>
<adp dep="D">彼は</adp>
学生
</np>
<v id="D">です</v>。
</su>
| (1) | 「私はイチゴよりメロンの方が好きです。そのほうが甘いから。」について、「その」がメロンを指すようにid属性を用いてアノテーションしなさい。 |
| (2) |
<su syn="f">
<date>昨年九月二十一日</date>
<time>午前</time><ad>の</ad><n>授業</n><n>中</n>、
<adp><n id="Stud">三年生の男子生徒(14)</n>が</adp>
<adp><np id="Man">学校のそばを女性と歩いていた男</np>を</adp>
<adp>教室内から</adp>
<v>冷やかし</v><v>た</v>。
</su>
<su syn="f">
<n>男</n><ad>は</ad>
<vp>
<adp>卒業生<v>だ</v>と<v>名乗っ</v>たうえで</adp>、
<v>学校側に<n>生徒</n>を呼び出さ<v>せ</v></v>
<adp>
<q>「<su>けじめのために丸坊主に<v>しろ</v></su>」</q>と
</adp>
<v>要求し</v>
</vp>
<v>た</v>。</su>
<su syn="f">
<ad>この</ad><n>ため</n>、
<adp>同席していた生徒指導の教諭が</adp>
<adp><n>生徒</n>を</adp>
<adp>丸刈りに</adp>
<v>し</v><v>た</v>。
</su>
<su syn="f">
<adp><ad>この</ad><n>“措置”</n><ad>に</ad></adp>
<adp><n>男</n>は</adp>
<vp><vp id="Nattoku">納得し</vp>て<v>帰っ</v></vp>
<v>た</v>
<ad>が</ad>、
<adp><vp>帰り</vp>際に</adp>
<adp><np>欠けた小指</np>を</adp>
<v>示し</v><v>た</v><ad>と</ad><v>いう</v>。
</su>
(毎日新聞1994より)
で、eq="Stud"、obj="Stud"、eq="Man"、 aen="Man"、agt="Man"、exp="Man"、 obj="Man"、dep="Nattoku" をあてはまる所すべてに入れなさい。必要ならタグを追加して下さい。 aen は「だ」や「です」などの繋辞の主語に付けます。 exp は「思う」や「納得する」などの主語に付け、経験者 (experiencer) を表わします。 タグを取り除いた本文は以下のようになります。 昨年九月二十一日午前の授業中、三年生の男子生徒(14)が学校のそばを女性と歩いていた男を教室内から冷やかした。男は卒業生だと名乗ったうえで、学校側に生徒を呼び出させ「けじめのために丸坊主にしろ」と要求した。このため、同席していた生徒指導の教諭が生徒を丸刈りにした。この“措置”に男は納得して帰ったが、帰り際に欠けた小指を示したという。 |
| (1) |
私はイチゴより<np id="melon">メロン</np>の方が好きです。 <adp eq="melon">その</adp>ほうが甘いから。 |
| (2) |
<su syn="f">
<date>昨年九月二十一日</date>
<time>午前</time><ad>の</ad><n>授業</n><n>中</n>、
<adp><n id="Stud">三年生の男子生徒(14)</n>が</adp>
<adp><np id="Man">学校のそばを女性と歩いていた男</np>を</adp>
<adp>教室内から</adp>
<v>冷やかし</v><v>た</v>。
</su>
<su syn="f">
<n eq="Man">男</n><ad>は</ad>
<vp>
<adp>卒業生<v aen="Man">だ</v>と<v agt="Man">名乗っ</v>たうえで</adp>、
<v>学校側に<n eq="Stud">生徒</n>を呼び出さ<v agt="Man">せ</v></v>
<adp>
<q>「<su>けじめのために丸坊主に<v obj="Stud">しろ</v></su>」</q>と
</adp>
<v agt="Man">要求し</v>
</vp>
<v>た</v>。</su>
<su syn="f">
<ad>この</ad><n>ため</n>、
<adp>同席していた生徒指導の教諭が</adp>
<adp><n eq="Stud">生徒</n>を</adp>
<adp>丸刈りに</adp>
<v>し</v><v>た</v>。
</su>
<su syn="f">
<adp dep="Nattoku"><ad>この</ad><n>“措置”</n><ad>に</ad></adp>
<adp><n eq="Man">男</n>は</adp>
<vp><vp id="Nattoku" exp="Man">納得し</vp>て<v agt="Man">帰っ</v></vp>
<v>た</v>
<ad>が</ad>、
<adp><vp agt="Man">帰り</vp>際に</adp>
<adp><np arg="Man">欠けた小指</np>を</adp>
<v agt="Man">示し</v><v>た</v><ad>と</ad><v>いう</v>。
</su>
|
私たちはふだん文を理解するとき、文に足りない要素を無意識のうちに補って読んでいます。たとえば、
理系科目はひどかったが文系はまあまあだった。や
そのブラックホールは地球から100から200億光年離れたところにある。を読んだとき、私たちは、
理系科目はひどかったが文系科目はまあまあだった。
そのブラックホールは地球から100億光年から200億光年離れたところにある。のように補って意味を理解しています。 機械にはこのような補完が難しいので、 タグを付けることによって明示的に補完する必要があります。 具体的には、ed 属性を使って、
理系科目はひどかったが文系<n ed=":">科目</n>はまあまあだった。
そのブラックホールは地球から100<num ed=":">億</num><n ed=":">光年</n>から200億光年離れたところにある。のようにアノテーションします。 ed は `edit' (編集) を表わします。
上の例のうち特に後者は、 「100光年から200億光年」という読みと「100億光年から200億光年」という読みのどちらもありえますので、補完することによって意味がはっきりする例です。 ed 属性を持つエレメントの中味はアノテーションの際に補われたデータです。 また、ed 属性の値はコロン (:) で始まる文字列で、コロンの後はもとのデータの対応する部分です。 上の例ではコロンの後の文字列は空なので、 エレメントの中味である「科目」と「億光年」は単に挿入されたことがわかります。 (コロンで始めるのは、属性値が空になることを防ぐためです。 XML では、属性値が空であってはなりません。)
また、複雑な構造を補う場合などは、cp 属性 と sb 属性 を用いてアノテーションします。 cp は `copy' (複写)、sb は `substitute' (置換) の略です。 例として、
健は愛妻弁当、弘はカップラーメンを食べた。の場合を考えます。この例では、 「健は愛妻弁当(を食べた)」と「弘はカップラーメンを食べる」 が対等の関係になっています。 ここで「健は愛妻弁当」は「健は愛妻弁当を食べた」として解釈されますが、 「健は愛妻弁当を食べた」は、
| 健は | 愛妻弁当 | ||
| ↓ | ↓ | ||
| 弘は | カップラーメン | を食べた |
<su syn="c">
<vp cp="eat">
<adp sb="hirosi">健は</adp>
<np sb="cupramen">愛妻弁当</np>
</vp>
、
<vp syn="f" id="eat">
<adp id="hirosi">弘は</adp>
<vp syn="f">
<np id="cupramen">カップラーメン</np>
<ad>を</ad>
<v>食べ</v>
</vp>
<v>た</v>
</vp>。
</su>
つまり、上側の <vp> エレメントは、下側の <vp>
エレメントをコピーし、その中で「弘は」を「健は」で置き換え、
「カップラーメン」を「愛妻弁当」で置き換えてできる下のような構造として読み換えられます。
上のアノテーションで「健は愛妻弁当」が <vp>
エレメントになっているのは、この操作によって動詞句の形に変換されるからです。
<vp syn="f">
<adp>健は</adp>
<vp syn="f">
<np>愛妻弁当</np>
<ad>を</ad>
<v>食べ</v>
</vp>
<v>た</v>
</vp>。
syn="c" を持つエレメント E の子エレメントの cp
属性は、それが E の他の子エレメントを指している場合には省略できます。
したがって、上のアノテーションは下記と同じ意味です。
<su syn="c">
<vp>
<adp sb="hirosi">健は</ad>
<np sb="cupramen">愛妻弁当</np>
</vp>
、
<vp syn="f">
<adp id="hirosi">弘は</adp>
<vp syn="f">
<np id="cupramen">カップラーメン</np>
<ad>を</ad>
<v>食べ</v>
</vp>
<v>た</v>
</vp>。
</su>
<su syn="c">
<vp>
<adp sb="obaasan">おじいさんは</adp>
<adp sb="kawa">山へ</adp>
<adp sb="sentaku">柴刈りに</adp>
</vp>、
<vp>
<adp id="obaasan">おばあさんは</adp>
<vp>
<vp>
<adp id="kawa">川へ</adp>
<adp id="sentaku">洗濯に</adp>
行く
</vp>
人を探しまし
</vp>
た
</vp>。
</su>