Tag Archives: allie

Linked Open Dataの構築に関する論文の出版

2013年の3月13日にLinked Open Dataの構築についての論文が出版されました。これは、生命科学分野の略語に関するデータベースAllieとRDF化されたWikipediaのデータベースDBpediaの間のリンクを自動生成する試みを報告したものです。

Allieを検索すると分かりますが、1つの略語に対して、その本来の表現である展開形が複数存在することは多く(略語の多義性、例えばSPF)、複数の候補が提示された場合には、実際に自分が求めている展開形がそれらのうちのどれに当たるのかを簡単に知ることが出来れば有益であると思います。しかし現時点ではAllieで略語を検索しても、各展開形の意味は書かれていません。本機能を実現するためには各展開形の辞書が必要となるわけですが、その数は180万弱と膨大で全てを我々が構築することは不可能です。しかも、既に同様の資源があり、それを適切に利用できるならば、新たに手間と暇をかける必要は無いわけです。そしてDBpediaがまさにそれに当たるものと考えました。何故ならば、自由にデータベースを丸ごとダウンロード可能だからです。首尾よくAllie中の展開形に対応するDBpediaのエントリがあれば、そこには解説記事が書かれていることになり、Allieの利用者は効率的に自身の求めている略語の意味を知ることが出来るようになるでしょう。
Read more »

SADIを使ってSW的なウェブサービスを構築する

SADIはSemantic Automated Discovery and Integrationの略で、セマンティックウェブ的な枠組みを利用し、オンラインでアクセス可能なウェブサービスやデータベース(オンライン資源)を統一した方法で活用出来るように提案されているサービス提供形式の一つです。具体的にいうと、オンライン資源へのアクセスはHTTP、入出力のデータフォーマットはRDF、入出力の型の定義はOWLで、という具合です。SADIに沿って構築されたオンライン資源のエンドポイントにHTTP GETすると、入出力の型や処理内容がRDF形式で得られ、処理させたいデータを同エンドポイントにHTTP POSTすると、実際の処理が行われ、結果が得られます。また、入力データと出力データの関係が陽に分かるように、両者のRDFにおける主語は同じでなければならない、という規定があります。つまり、例えば「山本の身長と体重はそれぞれ170cm、60Kgである」というRDFを入力データとしてBMI (Body mass index)計算サービスエンドポイント(ここでは仮に http://example.org/getBMI とします)に与えると、「山本のBMIは20.76である」、「山本の体重クラスは標準である」というRDFが出力として得られるということを述べています。この場合、いずれも主語は山本になります。

今回はSADIのPerlモジュールを使い、略語を与えると対応する展開形のリストが得られるAllieサービスを試しにSADI対応させてみたので、その際に得られた知識をここに記します。なお、SADIに対応させるために入出力データの型をOWLで定義しますが、そのためにはオントロジーエディタのProtegeを使うと便利です。というのも、Protege用のSADIプラグインが配布されていて、サービスをSADI対応させる際に必要な作業を支援する機能が利用出来るからです。例えば、ブラウザなどを使うことなく、構築したエンドポイントを簡単に試せる機能が提供されています。本プラグインの利用方法についてはこちらを参考にしてください。今回は本ページからリンクが張られているこちらを参考にして作業しました。

SADIのPerlモジュールをインストール
Read more »

既存DBをRDF化してSPARQLエンドポイントを立ち上げました

第2回LinkedData勉強会に参加して、最近行った略語のアリーのRDF化およびSPARQLエンドポイントの構築について発表してきました。

トリプルストアにはVirtuosoを利用しました。OWLIM-SEも試しましたが、動作の安定性という点から前者を選択しています。

勉強会のページからも発表資料を閲覧出来ますが、こちらにも張っておきます。

Allie 検索間口を拡大

少しでも多くのエントリポイントを Allie に持たせるために、片っ端から閲覧可能な入り口を追加。

http://allie.dbcls.jp/cgi-bin/browse.cgi

従来版だと全ての結果が、その内容と直接は無関係の余り有益ではないタイトルとURLとなってしまうのでよろしくない (そして現状直ぐには修正不可)。
そのため、今回は全てのページのタイトルやURLに結果を含む形にし、検索エンジンでヒットした時には実際にアクセスする前にタイトルと抜粋(スニペット)を見ることで予めどのような情報が得られるかを簡単に利用者が想像出来るようにした。

下記の検索結果をこまめにチェックしていこう。

http://www.google.com/webhp?hl=en#hl=en&source=hp&q=allie.dbcls.jp%2Fcgi-bin&btnG=Google+Search&aq=f&aqi=&oq=&fp=8ec9ea851cee2c5b

Allieマイナーバージョンアップ

Allieで使っているツールALICEの生みの親が訪れた日と奇しくも重なっていますが、Allieがマイナーバージョンアップしました。

  • 直リン機能の追加: http://allie.dbcls.jp/?s=iPS みたいにして使えます。
  • メッセージの日本語化: UA(ブラウザ)の言語設定に応じて表示されるメッセージが日英自動的に変わります。
  • 言語設定を明示的に指示する場合にはURLのパスの冒頭に en もしくは ja を含めます。http://allie.dbcls.jp/en のように。

次はコンテンツの国際化です。

Allieデータ公開

無事Creative Commons Ver. 2.1にて公開に至りました。
Allie
今回、PubMed/MEDLINE® のデータを利用した派生物の公開に対する利用許諾のあり方について、弁護士とのやり取りを通し、色々と学ぶことがありました。
利用条件の内容が結構な量になっています。NLMは、そのデータの派生物を公開する場合の条件として、NLMデータの利用条件中に書かれている一部の再掲を求めていることも関係しています。一般に米国政府の生成したデータには著作権が無いのですが、PubMed/MEDLINEに収められている文献には出版社の権利があるので注意が必要です。また、元データであるPubMed/MEDLINEデータが頻繁に更新されていることから、そのデータを利用した派生物も適宜更新に努めることが求められています。もちろん、公開する時にはクレジットを載せることも必要になります。その他、®を付けることも求められていました。しかし多くのサイトは付けていないですね。とても律義なサイトになったのでしょうか。

直指し

AllieでURL直指し可能なラッパを用意。REST版はXMLでしか結果が得られないという妙竹林な仕様への対処。

こんな感じで使う。

http://allie.dbcls.jp/cgi-bin/search.cgi?key=APS

MySQLチューニング

Allieで利用しているMySQLのクエリ。
これがなかなか複雑で、これまで十分なチューニングをしてこなかった。
先日R on Rの伝道師MN氏が解析してくれました。
そこで知ったのが Safari の「開発」メニューの利用や、MySQL の クエリに対する EXPLAIN(DESCRIBE) 構文。
そして、あるクエリに対する EXPLAIN の結果、Extra列に Using where; Using temporary; Using filesort という記述を発見。

http://dev.mysql.com/doc/refman/5.0/en/using-explain.html

そして幾つかインデックスが足りないことに気付き、早速生成。
パフォーマンスが目に見えて上がった。
しばらく様子を見ることにした。

Allie 表示メッセージ変更

item / related を変更。
item -> なるべく使わないように。
Related -> Co-occurring

Allie 自動更新準備

smp01 でスクリプトをチェック。
ユーザallieで行う。
処理時間はトータルで半日程度。