maoring blog

このブログはセマンティックウェブ関連の技術的なあれこれを綴ったブログです。

希少疾病用医薬品・希少疾病用医療機器のデータをRDF化しよう。その3

前回の記事から大分時間が経ってしまった。そこからの進捗もあるので,まとめて報告することにしましょう。*取りかかりはじめたばかりなので,間違いがあったら,ご指摘大歓迎です。

OWLって何?

さて,前回の時点で,ある程度のPredicateをdrugbankから埋めることが出来て,やれやれとしていた所,強敵,OWLくんが登場しました。OWLって何?意味は神崎さんのページから引用させていただきましょう。

ウェブ・オントロジー言語に求められる共有性、発展性、相互運用性、矛盾の検出といった要件を満たすものとして、W3Cのワーキンググループで開発されているのが、OWLという言語です(Web Ontology Languageの略ならばWOLとなるはずですが、発音のしやすさと智恵の象徴フクロウと語呂合わせなどから、OWLという名前となった模様)。これは「用語・語彙とそこに含まれる各要素の関連の明確な表現」を目的としており、これまでに開発されてきたオントロジー言語[DAML+OIL]の改良版となっています。

とのことで,これだけだと,概念しか分からなかったので,本を読んだり,調べたりしたところ,RDFより厳密であり,書かれた語同士の論理的な関係(定義域,値域,階層関係,和集合・補集合等の論理演算子を使うような関係など)が記述出来る言語体系のようです。このOWLを使って,今私の手元にある希少疾病用医薬品・医療機器のデータを記述することも可能,みたいです。特に,このOWLは,新たな語彙を定義する際に,その語彙同士がどういう関係にあるのか,ということを書くために使われていることが多い印象があります。
何だか大変曖昧な物言いになってしまいましたが,厳密にデータをLOD化させたいなら,OWLも現実的な手段であり,特に,新たな語彙を設計する場合には有効な手段であるということです。 もう少し詳しい話は,こちらの本セマンティック・ウェブのためのRDF/OWL入門が参考になるかもしれません。検索しても色々と出てきます。ただ,概念的で,取っつきにくい感じではあります…。

既存のOWLのデータをどう使おうか?

もともとの問題に戻ります。FDAのデータをOWLで示してくれた方がいて,そのデータを今RDF化しているものに,どう取り入れようかという問題です。今の結論では,該当するpredicateだけ拝借する,だけです。(ごめんなさい。)実際のデータを見てみると,このように書かれているので,(以下抜粋)

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:eob="http://pashworth.org/orangebook#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xml:base="http://pashworth.org/orangebook/data" > 
  <rdf:Description rdf:about="http://pashworth.org/orangebook#drug-019107">
    <eob:nDANumber rdf:datatype="http://www.w3.org/2001/XMLSchema#string">019107</eob:nDANumber>
…中略
    <eob:approvalDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1987-01-20</eob:approvalDate>

最初の "xmlns:eob="http://pashworth.org/orangebook#""と <eob:approvalDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1987-01-20</eob:approvalDate> から,承認日ということを示すための,predicateを取り出し,http://pashworth.org/orangebook#approvalDate としてpredicate扱いすることにします。 ただ,この判断は,どこかの記事を見たわけではなく,独自の判断なので,もっと適切な書き方があるかもしれないですし,そもそも,あまり汎用的ではない既存の語彙体系を採用する意義があるのか,という問題もあります。

あとは,独自の語彙

日本の希少疾病用医薬品のための語彙,というものは,現在は 無さそうなので,"http://www.nibio.go.jp/drug_vocabulary:revocation-date"などと,語彙を考えて,どんどん書いていきます。厳密には,先ほどのOWLで語彙体系を設計して,既存のボキャブラリを公開しているページに入れたほうが良いようなのですが,まだまだ変更の可能性もあるため,今のところはオレオレで書いていきます。書いていった結果は,こちらのGoogle Documentからご覧いただけます。

さて,次回はいよいよRDF化します。ご期待あれ〜