SPARQLthon17/Metabolo Metadata

提供:TogoWiki

移動: 案内, 検索

目次

メタボロミクスの実験メタデータのRDF化

メタボロミクスの実験データ(サンプル内の代謝産物プロファイリングデータ)は、1)生データのレポジトリ、2)プロファイルデータの閲覧・配布DB、3)マスフラグメントのリファレンスライブラリなど、様々な用途に使われる。これらのデータリソースを活用する上で、そのデータを取得した複雑な実験方法・条件の情報(メタデータ)は必須であり、メタデータをいかに使いやすく提供するかは、重要な課題と考える。

メタボロ統合Gでは、メタデータを一元管理し複数サイトでシェアできる、専用のデータベースシステムMetabolonoteを開発してきた。このシステムはSemantic MediaWikiをベースに開発されているので、メタデータをRDFとして提供するための一応の機能は実装されている。今回は、それらの機能がどれだけ実用的に使えるかを調査する。

担当:櫻井

調査結果

出力されるRDFの特徴

主語 SemanticMediaWikiのページURI
述語 ページに設定したPropertyページのURI
目的語 Propertyの値

としてRDFが作成される。

ページ名は、システム上の安全策のため、URIリゾルバーというものを介した表記になる。名前空間を示すコロン「:」は「-3A」と表記される。

例)http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/SE1-3A/

プロパティー情報のほかに、名前空間のID、最終更新日、なども出力される。

RDF/XML形式で出力される。


こんな感じ

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:swivt="http://semantic-mediawiki.org/swivt/1.0#" xmlns:wiki="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/" xmlns:property="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3A">
<owl:Ontology rdf:about="http://***.***.***.***/metabolonote/index.php/特別:RDFエクスポート/SE1:/">
<swivt:creationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2014-02-18T15:08:16 09:00</swivt:creationDate>
<owl:imports rdf:resource="http://semantic-mediawiki.org/swivt/1.0"/>
</owl:Ontology>
<swivt:Subject rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/SE1-3A/">
<rdfs:label>SE1:/</rdfs:label>
<swivt:page rdf:resource="http://***.***.***.***/metabolonote/index.php/SE1:/"/>
<rdfs:isDefinedBy rdf:resource="http://***.***.***.***/metabolonote/index.php/特別:RDFエクスポート/SE1:/"/>
<swivt:wikiNamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">200</swivt:wikiNamespace>
<property:SE_Authors rdf:datatype="http://www.w3.org/2001/XMLSchema#string">
Takeshi Ara, Ryosuke Sasaki, Mitsuo Enomoto, Nozomu Sakurai, Hideyuki Suzuki, Daisuke Shibata, Kazusa DNA Research Institute
</property:SE_Authors>
<property:SE_Comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">version 6</property:SE_Comment>
<property:SE_Description rdf:datatype="http://www.w3.org/2001/XMLSchema#string">
Investigation of Arabidopsis thaliana leaf metabolites. 6 replicates data are examined for each sample.
</property:SE_Description>
<property:SE_ID rdf:datatype="http://www.w3.org/2001/XMLSchema#string">SE1</property:SE_ID>
<property:SE_Reference rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Direct Submittion</property:SE_Reference>
<property:SE_Title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Arabidopsis thaliana leaf metabolite analysis</property:SE_Title>
<swivt:wikiPageModificationDate rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2014-02-18T02:45:02Z</swivt:wikiPageModificationDate>
<property:Modification_date-23aux rdf:datatype="http://www.w3.org/2001/XMLSchema#double">2456706.6146065</property:Modification_date-23aux>
<swivt:wikiPageSortKey rdf:datatype="http://www.w3.org/2001/XMLSchema#string">/</swivt:wikiPageSortKey>
</swivt:Subject>
<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#creationDate"/>
<owl:ObjectProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#page"/>
<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiNamespace"/>
<owl:DatatypeProperty rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3ASE_Authors"/>
<owl:DatatypeProperty rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3ASE_Comment"/>
<owl:DatatypeProperty rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3ASE_Description"/>
<owl:DatatypeProperty rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3ASE_ID"/>
<owl:DatatypeProperty rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3ASE_Reference"/>
<owl:DatatypeProperty rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3ASE_Title"/>
<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageModificationDate"/>
<owl:DatatypeProperty rdf:about="http://***.***.***.***/metabolonote/index.php/特別:URIリゾルバー/Property-3AModification_date-23aux"/>
<owl:DatatypeProperty rdf:about="http://semantic-mediawiki.org/swivt/1.0#wikiPageSortKey"/>
<!--
 Created by Semantic MediaWiki, http://semantic-mediawiki.org/ 
-->
</rdf:RDF>

(1)ウェブGUIを介したRDF出力機能

「Special Pages」→「Export pages to RDF」では、ページ名を入力(複数可)すると、そのページに設定されたプロパティーの情報がRDFとして出力される。

(短所)

・全ページを出力するには、全ページ名の一覧表が必要。

・関連するサブページを全部出力することなどはできない。

(2)メンテナンスコマンドを使った出力

SemanticMediaWikiのメンテナンスコマンド「SMW_dumpRDF.php」で、コマンドラインベースでRDFを出力できる

(短所)

デフォルトの名前空間以外は出力できないみたい。

(3)Virtuosoとの連携

SemanticMediaWikiのデータストアとして、MySQLと並行してトリプルストアにデータを書き込んでゆくことができる。

こちらを参考に、オープンソース版Virtuoso 6.01.3127を設置したローカルlinuxサーバーでテストした。


セットアップ上の問題

※上記ページでLocalSettings.phpを書き換え後ブラウザでSemanticMediaWikiにアクセスすると、ページの下部に以下のようなエラーが出る。

Unexpected non-MediaWiki exception encountered, of type "SMWSparqlDatabaseError"
exception 'SMWSparqlDatabaseError' with message 'A SPARQL query error has occurred
Query: PREFIX wiki: <http://***.***.***.***/metabolonote/index.php/%E7%89%B9%E5%88%A5:URI%E3%83%AA%E3%82%BE%E3%83%AB%E3%83%90%E3%83%BC/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX swivt: <http://semantic-mediawiki.org/swivt/1.0#>
PREFIX property: <http://***.***.***.***/metabolonote/index.php/%E7%89%B9%E5%88%A5:URI%E3%83%AA%E3%82%BE%E3%83%AB%E3%83%90%E3%83%BC/Property-3A>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
DELETE FROM <http://***.***.***.***:8890/mn> { ?s ?p ?o } WHERE { ?s swivt:masterPage property:D_ID . ?s ?p ?o }
Error: Query refused

これはパーミッションの問題。以下のようにすることで「一応」回避はできた。ただしセキュリティーの問題上、公開用エンドポイントに対しては、通常このようなUPDATE権限は与えるべきではない。(by 岡別府さん調べ)

・コンダクター画面の「User Accounts」で「SPARQL」ユーザーを「Edit」。

・「Account Roles」の「Available」から「SPARQL_UPDATE」を選択し、「>>」を押して「Selected」へ移動。

・「Save」ボタンを押して設定保存。


(長所)

リアルタイムでRDFを作ってくれるのでラク

(短所)

エンドポイントにUPDATEの権限を与えるので、つくらせたRDFをそのまま公開するには適さない。もっと細かいユーザー権限管理ができるかどうかについては、今後の調査が必要。

結論

MySQLのデータから使いやすいRDFを書き起こすものを独自に作り、出力したデータを定期的にトリプルストアに入れてゆくのがよさそう。

(理由)

・メタデータの階層関係が出力できない。

・RDFがきれいじゃない。

メタデータを示すURIとして

http://***.***.***.***/metabolonote/SE1:/S01/M01

を使いたいのに、

http://***.***.***.***/metabolonote/Special:URIResolver/SE1-3A/S01/M01

のように書かなければいけない、とか。

・余分な情報がたくさんついてくる。

RDFの構造理解の妨げになりそう。

・細かな拡張書式に対応できない。