日本語ウェブ・オントロジーの試み
セマンティック・ウェブでエージェントによるデータ活用を実現するには、豊富な語彙をカバーするオントロジーが不可欠です。英語のオントロジーとして提供されているWordNetに、和英辞書を使って日本語を結びつければ、とりあえずエージェントに理解可能な語彙にはなります。URIに日本語を使うことに関する問題はありますが、ひとつの試みとして検討してみます。
※実験的な報告なので、今後内容をかなり書き換える可能性があります。
日本語メタデータとオントロジー
セマンティック・ウェブで誰もがメタデータを提供できるようにするには、一般的な語彙を定義したウェブのオントロジー(あるいはシソーラス)が自由に利用できることが重要です。自分のメタデータにいちいち定義を与えるのは大変ですし、たとえそういった定義をつくっても、みんながばらばらに定義をしていてはなかなか相互運用性が確保されないからです。
英語圏では[WordNet]の語彙体系をRDFのメタデータとして取り出せるサービスが試みられています[WORDNET-RDF], [BRICKLEY1999]。WordNetでは単語をクラスの階層構造として定義しているため、メタデータをこの語彙によって記述すれば、エージェントはその階層を辿って意味を把握することができます。
日本語の場合、オンラインのシソーラスが公開されたりはしていますが[GENGOKK]、RDFの形でウェブ・オントロジーとして利用できるものは(今のところ)ありません。そこで、辞書ファイルそのものが公開されている和英辞書を使って、日本語の単語をWordNetにマップし、(間接的に)エージェントに理解可能な語彙の提供を試みてみます。
和英辞書EDICTからWordNetへ
Monash大学のJim Breen教授から、同氏のプロジェクトによって公開されている優れた和英辞書[EDICT](約10万語収録)を利用する許諾を頂きましたので、ここではその訳語を利用して日本語とWordNetを結びつけることにします。
簡単なケースをまず考えましょう。EDICTで「指揮者」の訳語を見ると、「conductor」となっています。WordNetのRDF版では「Conductor」クラスが定義されているので、「指揮者」と「Conductor」は同等だと考えられます。OWL[OWLREF]を使って、これは次のように表現できるでしょう(異なる言語の単語は厳密には1対1に対応しないので、equivalentClass
よりsubClassOf
のほうが適切かも知れません)。
[例1]
<owl:Class rdf:ID="指揮者">
<owl:equivalentClass
rdf:resource="http://xmlns.com/wordnet/1.6/Conductor"/>
</owl:Class>
WORDNET-RDFではConductorクラスは次のような階層構造で表されており、「指揮者」という日本語が「Musician」「Artist」...「Person」といった性質を継承しているクラスであることが理解できるようになります。
なお、WORDNET-RDFは、名詞のクラス定義を行うために1文字目を大文字とし、「悪天候」に対する「bad weather」のような複数の単語からなる訳語の場合は、(名前文字にスペースは使えないので)「Bad_weather」とアンダースコアで置き換えられています。この試作版日本語ウェブ・オントロジーでも、EDICTの訳語に同様の変換を施してWordNetに対応づけます。
(※owl:
, rdfs:
, rdf:
はそれぞれOWL, RDF Schema, RDF Model & Syntaxの名前空間に結びつけられているものとします。以下の例でも同様です)
複数の訳語がある場合
「著者」という日本語の訳は、EDICTでは「author」と「writer」の二つが充てられています。このような場合は、WordNetのAuthorクラスとWriterクラスの両方に当てはまるわけですから、和集合と考えていいでしょう。
[例2]
<owl:Class rdf:ID="著者">
<rdfs:subClassOf>
<owl:Class>
<owl:unionOf
rdf:parseType="Collection">
<owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Author"/>
<owl:Class rdf:about="http://xmlns.com/wordnet/1.6/Writer"/>
</owl:unionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
「著者」はAuthorクラスとWriterクラスの和集合そのものではないので、両者のunionOf
となる匿名クラスをつくり、そのサブクラスとして定義してみました。
直接の訳がない漢字熟語の場合
日本語では漢字を連ねて熟語を形成することがよくありますが、それらは辞書では必ずしも直接みつかりません。「小売価格」といった熟語の場合、EDICTにはエントリーがありませんが、「小売」と「価格」それぞれであれば見出し語として掲載されており、対応するWordNetクラスも存在します。これは、同じ日本語ウェブ・オントロジー語彙内で2つの語彙の共通集合として捉えてみることができそうです。
[例3]
<owl:Class rdf:ID="小売価格">
<rdfs:subClassOf>
<owl:Class>
<owl:intersectionOf
rdf:parseType="Collection">
<owl:Class rdf:about="#小売"/>
<owl:Class rdf:about="#価格"/>
</owl:intersectionOf>
</owl:Class>
</rdfs:subClassOf>
</owl:Class>
エージェントは、ここから#小売、#価格それぞれの定義を辿って、これらがWordNetの「Retail」と「Price」クラスに対応することを理解できます。
否定の接頭辞を持つ熟語
同じ熟語でも、「非」「不」などで始まる合成語は、単純な共通集合ではなく、ある単語(熟語)の否定形として扱う方が理にかなっていることが多いでしょう。
[例4]
<owl:Class rdf:ID="非可逆圧縮">
<owl:complementOf
>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="#可逆"/>
<owl:Class rdf:about="#圧縮"/>
</owl:intersectionOf>
</owl:Class>
</owl:complementOf>
</owl:Class>
ここではcomplementOf
を用いて、“「可逆」と「圧縮」の共通集合に含まれないもの”という定義としてみました。
日本語の同義語
「ワイン」に対応する英語はwineですが、逆にこの英語に対応する日本語は、EDICTでは「ワイン」以外にも「ぶどう酒」「葡萄酒」というエントリーがあります。これらを関連情報として示しておくと、「ワイン」の情報が欲しい時には、「ぶどう酒」「葡萄酒」として提供されているメタデータからも、エージェントが適切に情報を集めることが可能になるでしょう。この同義語は、rdfs:seeAlso
を使って示してみることにします。
[例5]
<owl:Class rdf:ID="ワイン"> <owl:equivalentClass rdf:resource="http://xmlns.com/wordnet/1.6/Wine"/> <rdfs:seeAlso
rdf:resource="#ぶどう酒"/> <rdfs:seeAlso
rdf:resource="#葡萄酒"/> </owl:Class>
対応するWordNet定義が見つからない場合
WordNetのRDF版は約10万語の名詞を収録していますが、形容詞などは含まれない他、EDICTの訳語が複数形を使っていたりするとうまく対応関係を見つけることができません。こうした場合は、とりあえず訳語をリテラルで示し、その関係をwn:translation
としてみました(wn:
はWordNetの名前空間接頭辞です)。単純にrdfs:label
で示すより、少しはエージェントの理解の助けになるかとも思うのですが、どんなものでしょう。
[例6]
<owl:Class rdf:ID="火山弾"> <wn:translation xml:lang="en">volcanic projectiles</wn:translation> </owl:Class>
このケースでは、volcano, projectileならばそれぞれWordNetに対応づけられますが、形容詞、複数形となっているものは直接はマップできません。アルゴリズムを改良すればある程度対応可能ではあるものの、複雑になるのでとりあえずこのままにしておきます。
WordNet対応日本語ウェブ・オントロジーの試験
ここまで述べてきた方針に基づき、日本語の語彙をWordNetにマップするウェブ・オントロジーを試験的に作成してみます。ベースとなるのは2002-09-25現在のEDICTおよびWordNet 1.6です。このウェブ・オントロジーのXML名前空間URIは次のようにします。
http://purl.org/net/ns/jword/
この名前空間を例えばjw:
という接頭辞にマップし、
[例7]
<jw:指揮者> <foaf:name>ロジャー・ノリントン</foaf:name> <foaf:homepage rdf:resource="http://www.kanzaki.com/norrington/"/> </jw:指揮者>
という具合に、日本語の語彙を利用できます。エージェントなどは、名前空間URIに単語を接続したURI「http://purl.org/net/ns/jword/指揮者」を用いて、クラス定義のRDFを取得することが可能です(ここでURIに日本語を使うことについては、次節を参照してください)。
※以前は[DAML+OIL]に従った記述で実装していましたが、2003-02-07にW3CのRDF ValidatorがOWLに対応したので、それに合わせてOWL準拠としました。
※次のセクションでは日本語によるプロパティもWordNetに結びつけることを検討していましたが、無理が多く、メリットもあまり無いので取り下げます。
プロパティに関する実験
どうせなら、例7において<jw:名前>ロジャー・ノリントン</jw:名前>、とプロパティにもEDICT経由WordNetの語彙を使いたいところですが、前項の名前空間では日本語をクラスとして定義しているため、あまり具合がよくありません。それに、WordNetの語彙もクラス定義なので、単に日本語の定義をrdf:Property
としただけでは、やはり問題が生じます。
実験のさらに実験として、もうひとつの名前空間を設け、ここでは同じ日本語をプロパティとして定義してみることにします。
http://purl.org/net/ns/jprop/
日本語をプロパティとして定義したとき、訳語に対応するWordNetのクラスに対してsubPropertyOf
という関係を設定するわけにはいかない(不可能ではないが、混乱する)ので、ここではこのプロパティの何らかの関係があることを示すrdfs:range
dc:relation
を、そのWordNetクラスに設定してみます。
[例8]
<rdf:Property rdf:ID="名前">
<dc:relation
rdf:resource="http://xmlns.com/wordnet/1.6/Name"/>
</rdf:Property>
「jw:名前」プロパティの値はwn:Nameクラスに属するものと限定するわけです。派生関係を示すために(rangeをクラスに設定すると、文字列を値にできなくなるので撤回)dc:source
を使うことも検討しましたが、rdfs:range
のほうがプロパティの定義としては自然で、意味もはっきりするのではないかと思います。
日本語とURI/IRI
(少々ややこしい話なので、日本語からWordNetへのマップが理解できれば十分な方は、この節は無視しても構いません)
RDFでは「語彙をユニバーサルに理解可能なものとするためにURIによって示す」として、リソースは名前空間URIとローカル名を直接連結したURIで表現します。従って、dc:
creator
は次のようになります。
[例9]
http://purl.org/dc/elements/1.1/
creator
これは一見、何の問題もないように見えますが、前節で示した日本語ウェブ・オントロジーの「jw:
指揮者
」を次のように展開する場合、話は単純ではありません。
[例10]
http://purl.org/net/ns/jword/
指揮者
現在のURIの仕様では、ASCII以外の文字を使うことは認められませんから、「指揮者」という文字を含むURIは不正になってしまうのです[RFC2396]。かといって、「指揮者」をURLエンコードして
[例11]
http://purl.org/net/ns/jword/
%8Ew%8A%F6%8E%D2
などとするのは、日本語ウェブ・オントロジーの識別子としては到底受け入れられません(ただし、RDFの場合は、次に述べるように日本語も使用可能)。
IRIとしての識別名
現在、URIにASCII以外の文字を使えるようにする国際化版URI=IRI (Internationalized Resource Identifier) の仕様がインターネットドラフトとして検討され、[RFC3987]として定義されています。W3Cの規格には今後これが採用される方向になっており、XSLTプロセッサをはじめ、多くの現行アプリケーションでもこのIRIはうまく動作するようです。
例8の形もIRIならば問題は生じません。RDFでは、IRIと同等のRDF URI参照を識別子に用います。
(細かく言うと文字コードの問題もありますが、IRIでは「文字のバイト表現」ではなく「文字そのもの」によって識別するとしています)
〔変更〕2002-10-02:エージェントのAccept-Language
ヘッダがjaを持っていればIRI、そうでなければURLエンコードを施したURIとする仕様に変更してみました。
補足:XML名前空間のQNameとURI
XML名前空間の仕様は、名前空間を示すURIと要素型や属性の名前(ローカル名)を組み合わせることで、名前がグローバルに一意に定められるようにしています[XMLNS]。名前空間URIは通常「名前空間接頭辞」にマップされ、この接頭辞とローカル名を組み合わせたものはQNameと呼ばれます(例えばdc:creator
など)。
アプリケーションはQNameの接頭辞をURIに展開し、拡張名(Exanded Name)として名前を処理しますが、これは必ずしも名前空間URIとローカル名を直接連結するわけではありません。XML名前空間仕様のAppendix A.3の方法に倣えば、dc:
creator
の拡張名は空要素ExpEType
を用いて次のように示されます。
[例12]
<ExpEType type="creator
" ns="http://purl.org/dc/elements/1.1/
"/>
つまり、URIとローカル名をセットにするということで、それ以上でもそれ以下でもないのです。
RDFなど一部の応用言語では、QNameを例7のように名前空間URIとローカル名を直接連結したものとして扱っており、この考え方についてはW3C内でも議論の対象になっています。
参照文献
- [WordNet]
- George A. Miller, et al., WordNet - a lexical database for the English language, , Cognitive Science Laboratory at Princeton University
- <http://www.cogsci.princeton.edu/~wn/>
- [WORDNET-RDF]
- Wordnet for the Web , ,
- <http://xmlns.com/2001/08/wordnet/>
- [BRICKLEY1999]
- WordNet in RDF/XML: 50,000+ RDF class vocabulary..., , W3C www-rdf-interest mailing list ,
- <http://lists.w3.org/Archives/Public/www-rdf-interest/1999Dec/0002.html>
- [GENGOKK]
- シソーラス(類語)検索サイト, 言語工学研究所
- <http://www.gengokk.co.jp/thesaurus/>
- [EDICT]
- Jim Breen, et al., The EDICT Project, , School of Computer Science & Software Engineering at Monash University
- <http://www.csse.monash.edu.au/~jwb/edict.html>
- [OWLREF]
- OWL Web Ontology Language 1.0 Reference, , W3C Working Draft ,
- <http://www.w3.org/TR/owl-ref/>
- [DAML+OIL]
- DAML+OIL (March 2001) Reference Description, , W3C Note ,
- <http://www.w3.org/TR/daml+oil-reference>
- [XMLNS]
- Namespaces in XML, , W3C Recommendation ,
- <http://www.w3.org/TR/REC-xml-names>
- [RFC2396]
- Uniform Resource Identifiers (URI): Generic Syntax, , Internet standards track ,
- <http://www.ietf.org/rfc/rfc2396.txt>
- [RFC3987]
- Internationalized Resource Identifiers (IRIs), , Internet Standards Track ,
- <http://www.ietf.org/rfc/rfc3987.txt>
- [W3C-IRI]
- Internationalized Resource Identifiers (IRIs), , W3C Internationalization Activity ,
- <http://www.w3.org/International/O-URL-and-ident.html>
謝辞
この日本語ウェブ・オントロジーの試作版を公開するにあたっては、Monash大学Jim Breen教授のご厚意により和英辞書EDICTを利用させて頂きました。快く利用を許諾してくださったことに感謝いたします。