1. はじめに
RDF Portal とは
RDF Portal は、RDF(Resource Description Framework)で記述されたライフサイエンスデータセットにアクセスし、統合的に利用するためのプラットフォームです。ゲノム、プロテオーム、化学物質、疾患など幅広い生物医学分野のRDFデータセットを収録しています。
本ポータルはライフサイエンス統合データベースセンター(DBCLS)が運営しており、ブラウジングやダウンロードから、SPARQLエンドポイントによるクエリ、AI支援によるインターフェースまで、多様なデータアクセス方法を提供しています。RDF Portal の背景、歴史、ミッションの詳細については About ページをご覧ください。
基本概念(初めての方へ)
RDFやSPARQLが初めての方のために、基本的な概念を簡単に紹介します。
RDF(Resource Description Framework) は、データをグラフとして表現するための標準的なモデルです。データは「トリプル」と呼ばれるステートメントの集合として表現され、各トリプルは以下の3つの要素で構成されます。
- 主語(Subject) — 記述対象のエンティティ(例:遺伝子、タンパク質)
- 述語(Predicate) — 関係やプロパティ(例:「機能を持つ」「〜に位置する」)
- 目的語(Object) — 値や関連エンティティ(例:特定の機能、染色体)
各要素は通常、URI(Uniform Resource Identifier)で識別されます。URIによってグローバルな
一意性が保証され、異なるソースのデータセットを相互にリンクすることが可能になります。
SPARQL は、RDFデータに対するクエリ言語です。RDFデータセット全体に対してデータの検索
、フィルタリング、結合を行うことができます。リレーショナルデータベースにおけるSQLと同様
の役割を果たします。
オントロジー は、特定の分野における知識を形式的に表現したもので、エンティティの種類
とそれらの間の関係を定義します。RDF Portalのデータセットは、Gene Ontology(GO)、ChEBI、Disease Ontologyなどのコミュニティ標準オントロジーを使用しており、データセット間で一貫したセマンティクスを確保しています。
サイトの構成
RDF Portal ウェブサイトは、左側のサイドバーからアクセスできる以下のセクションで構成され
ています。

| セクション |
説明 |
| About |
RDF Portalの背景、歴史、資金情報 |
| Access methods |
データにクエリ・アクセスするための各種方法 |
| Datasets |
収録されている全RDFデータセットの一覧 |
| Statistics |
各データセットのサマリー統計(トリプル数、クラス数等) |
| Download |
各種シリアライズ形式でのRDFデータファイルのダウンロード |
| Documents |
マニュアル、データ登録ガイドライン、RDF config ドキュメント |
| Announcements |
お知らせ・ニュース |
| Update log |
データ更新の履歴 |
サイトは英語と日本語の両方で利用可能です。サイドバー下部の言語リンクから切り替えることができます。
2. データセットの閲覧
データセット一覧
Datasets ページでは、ポータルに収録されている全RDFデータセットを一覧表示します。ページ上部のコントロールを使って、ソートやフィ
ルタリングが可能です。

ソートオプション:
- Date — データセットの登録日または更新日で並べ替え
- Name — データセット名でアルファベット順に並べ替え
- Triples — トリプル数(データセットのサイズ)で並べ替え
各ソートは昇順・降順の切り替えが可能です。
フィルターオプション:
- Tags — 分野カテゴリでフィルタ(下記のタグ一覧を参照)
- Provenance — データの由来でフィルタ
- Registration — データセットの登録方法でフィルタ
データセットのタグ一覧
各データセットには、分野カテゴリを示す1つ以上のタグが付与されています。タグは花びら型の
アイコンで表示され、視覚的に識別しやすくなっています。
| アイコン |
タグ |
説明 |
|
Gene |
遺伝子、遺伝子アノテーション、遺伝子レベルの情報に関するデータセット |
|
Gene expression |
遺伝子発現プロファイル、トランスクリプトミクスデータを含むデータセット |
|
Genome |
ゲノム配列やゲノム上の特徴に関するデータセット |
|
Protein |
タンパク質の配列、構造、機能に関するデータセット |
|
Drug/Chemical |
医薬品、化学物質、生理活性分子に関するデータセット |
|
Health/Disease |
疾患、臨床バリアント、医療情報に関するデータセット |
|
Glycan |
糖鎖や糖質構造に関するデータセット |
|
Organism |
生物種レベルの情報や分類学に関するデータセット |
|
Cell |
細胞レベルの情報に関するデータセット |
|
Bioresource |
生物資源コレクション(培養株コレクション、バイオバンク等)に関するデータセット |
|
Polymorphism |
遺伝的変異、SNP、多型に関するデータセット |
|
Sequence |
塩基配列やアミノ酸配列に関するデータセット |
1つのデータセットに複数のタグが付与される場合があります。例えば、Open TG-GATEs には Gene、Drug/Chemical、Health/Disease、Gene expression のタグが付与されており、トキシコゲノミ
クスデータがこれらの分野にまたがることを反映しています。
Provenance(データの由来)
Provenance は、元のデータソースに対してRDFデータがどのように作成されたかを示します。
| 値 |
説明 |
| Original |
元のデータベースの開発者自身が作成したオリジナルのRDFデータ。データ提供者が自らのデータのRDF表現を作成したものです。 |
| Third-party |
元のデータベースの開発者以外の第三者が作成したRDFデータ。公開されて |
| いるデータを、データ提供元とは別の開発者が独自にRDFに変換したものです。 |
|
Registration(登録方法)
Registration は、データセットがどのようにRDF Portalに登録されたかを示します。
| 値 |
説明 |
| Submitted |
RDFデータの開発者からRDF Portalにサブミット(提出)されたデータセット |
| 。 |
|
| Added by RDF Portal |
RDF Portalチームによって登録されたデータセット。 |
データセット詳細ページ
データセット名をクリックすると、詳細ページが開きます。各詳細ページには以下の情報が含まれています。

Dataset specifications — データセットに関するメタデータ:
| フィールド |
説明 |
| Tags |
データセットに割り当てられた分野カテゴリ |
| Provenance |
データがオリジナルか派生かの区分 |
| Registration |
RDF Portal への登録方法 |
| Data provider |
データを提供する組織 |
| Creator |
RDF変換の作成者 |
| Issued |
現在のバージョンの公開日 |
| Licenses |
データセットのライセンス情報 |
| Version |
データセットのバージョン番号 |
| Download |
RDFデータファイルのダウンロードリンク |
| SPARQL Endpoint |
このデータセットに対するクエリ用SPARQLエンドポイントのURL |
Dataset statistics — トリプル数、主語数、プロパティ数、目的語数、クラス数のサマリー
。
SPARQL example queries — データセットからデータを取得する方法を示すサンプルクエリ。
各例には説明と、SPARQLエンドポイントで直接クエリを実行できる「Run on Endpoint」リンクが
含まれています。
Schema diagram — データセットのRDFスキーマを視覚的に表現した図。使用されているクラスとプロパティの関係を示しています。これらの図は、RDFデータセットの構造を機械可読な形式で記述するフレームワークである RDF-config から自動的に生成されています。RDF-config のモデルは RDF Portal に収録されている各データセットごとに整備されており、データの構造を一貫した実用的な方法でドキュメント化しています。一部の例外的なケースでは、別の方法でスキーマ図が提供される場合もあります。RDF-config の詳細と RDF Portal における役割については、RDF config ドキュメントをご参照ください。
3. アクセス方法
RDF Portal では、直接的なSPARQLクエリからAI支援の自然言語インターフェースまで、複数のデ
ータアクセス方法を提供しています。
3a. SPARQL エンドポイント
SPARQLエンドポイントを使用すると、RDFデータに対してSPARQLクエリを直接実行できます。RDF Portal では、データソースごとにグループ化された複数のSPARQLエンドポイントを提供しています。
利用可能なSPARQLエンドポイントと、各エンドポイントに収録されているデータセットの最新の一覧は、SPARQL Endpoints ページをご参照ください。
ウェブブラウザでの利用
各エンドポイントはウェブベースのクエリインターフェースを提供しています。エンドポイントのURLに直接アクセスすると利用できます(例:https://rdfportal.org/ebi/sparql)。
- テキストエリアにSPARQLクエリを入力します
- 「Run」をクリックしてクエリを実行します
- 結果が表形式で表示されます
各データセットの詳細ページにある「Run on Endpoint」リンクを使えば、サンプルクエリをエンドポイントで直接実行することもできます。
このウェブインターフェースは、DBCLSが開発した以下の2つのオープンソースツールによって構成されています。
- SPARQL proxy — SPARQLエンドポイントの前段に配置されるプロキシサーバーです。クエリの安全性検証、同時実行クエリのジョブスケジューリング、結果のキャッシュ、ログ記録などの機能を提供します。有害な可能性のあるクエリをフィルタリングし、クエリの負荷を管理することで、エンドポイントへの安全で安定したアクセスを確保します。
- Endpoint browser — SPARQLエンドポイントに格納されているRDFデータの構造を閲覧・探索するためのウェブベースインターフェースです。データセット内のクラス、プロパティ、およびそれらの関係を視覚的にナビゲートすることができます。
コマンドラインからのクエリ
curl などのツールを使って、プログラムからSPARQLクエリを送信できます。
curl -H "Accept: application/sparql-results+json" \
--data-urlencode "query=SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10" \
https://rdfportal.org/ebi/sparql
レスポンス形式を指定するための Accept ヘッダー値:
| 形式 |
Accept ヘッダー |
| JSON |
application/sparql-results+json |
| XML |
application/sparql-results+xml |
| CSV |
text/csv |
| TSV |
text/tab-separated-values |
Python からのクエリ
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("https://rdfportal.org/ebi/sparql")
sparql.setQuery("""
PREFIX cco: <http://rdf.ebi.ac.uk/terms/chembl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?molecule_chemblid ?molecule_label
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?Molecule a cco:SmallMolecule ;
cco:chemblId ?molecule_chemblid ;
rdfs:label ?molecule_label .
}
LIMIT 10
""")
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
for result in results["results"]["bindings"]:
print(result["molecule_chemblid"]["value"], result["molecule_label"]["value"])
必要なライブラリのインストール:pip install sparqlwrapper
R からのクエリ
library(SPARQL)
endpoint <- "https://rdfportal.org/ebi/sparql"
query <- "
PREFIX cco: <http://rdf.ebi.ac.uk/terms/chembl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?molecule_chemblid ?molecule_label
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?Molecule a cco:SmallMolecule ;
cco:chemblId ?molecule_chemblid ;
rdfs:label ?molecule_label .
}
LIMIT 10
"
results <- SPARQL(endpoint, query)
print(results$results)
対象グラフの指定
多くのエンドポイントでは、1つのエンドポイント内に複数のデータセットが収録されています(
例:EBIエンドポイントにはChEBI、ChEMBL、Ensembl、Reactomeが含まれます)。特定のデータセ
ットにクエリするには、FROM 句で名前付きグラフを指定します。
SELECT ?s ?p ?o
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?s ?p ?o .
}
LIMIT 10
エンドポイント内で利用可能な名前付きグラフを確認するには、以下のクエリを使用します。
SELECT DISTINCT ?g
WHERE {
GRAPH ?g { ?s ?p ?o }
}
3b. GraphQL API
GraphQL API のドキュメントが公開され次第、このセクションを更新します。
GraphQL API は、アプリケーション開発者向けの代替クエリインターフェースです。スキーマに基づいた直感的なクエリ構築が可能で、フロントエンドアプリケーションとの統合に適しています。
3c. MCP インターフェース(TogoMCP)
MCP インターフェースのドキュメントが公開され次第、このセクションを更新します。
TogoMCP は、AIエージェント向けの Model Context Protocol(MCP)インターフェースです。大規模言語モデル(LLM)がRDFデータセットの構造と内容を理解し、自然言語の質問に対して正確なデータを取得できるようにします。
TogoMCP サーバーURL: https://togomcp.rdfportal.org/mcp
TogoMCP のセットアップ方法や使い方、設定ガイド、利用例などの詳細については、TogoMCP ウ>ェブサイト をご参照ください。
3d. LLM チャットインターフェース
LLM チャットインターフェースのドキュメントが公開され次第、このセクションを更新します。
TBA
3e. SPARQL composer
SPARQL composer は、グラフィカルなインターフェースを
通じてSPARQLクエリを生成するツールです。SPARQL構文を手書きせずに、視覚的にクエリを構築したいユーザーに便利です。
4. 統計情報
Statistics ページでは、RDF Portal に
収録されている各データセットの主要な統計情報をまとめた表を提供しています。
統計テーブルの読み方
| 列名 |
説明 |
| Dataset |
データセット名(データセット詳細ページへのリンク) |
| Triples |
データセット内のRDFトリプルの総数。データセットサイズの主要な指標です。 |
| Classes |
データセットで定義または使用されている個別のRDFクラス(エンティティの種 |
| 類)の数。 |
|
| Properties |
データセットで使用されている個別の述語(関係)の数。 |
| Subjects |
個別の主語URIの数。データセット内で記述されているユニークなエンティティの数におおよそ対応します。 |
| Objects |
個別の目的語の値(URIとリテラルの両方)の数。 |
数値の解釈
RDF Portal のデータセットはサイズが大きく異なります。例えば:
- DDBJ は約685億トリプルを持つ最大のデータセットで、日本DNAデータバンクの塩基配列デ
ータを含んでいます。
- UniProt RDF は513億以上のトリプルを含み、タンパク質配列と機能情報を提供しています
。
- Nucleic Acid Drug Database は948トリプルの最小規模のデータセットの一つです。
クラス数とプロパティ数の比率は、データセットのスキーマの複雑さを示します。クラス数・プロパティ数が多いデータセット(例:wwPDB/RDF は647クラス、3,823プロパティ)は詳細なデータモデルを持ち、少ないデータセット(例:PubMed は2クラス、5プロパティ)はよりシンプルなフラ
ットな構造です。
5. ダウンロード
Download ページでは、各データセットのRDFデータファイルをダウンロードするためのリンクを提供しています。データは複数のRDFシリアライズ形式で利用可能です。
利用可能な形式
| 形式 |
拡張子 |
説明 |
適した用途 |
| N-Triples |
.nt |
1行に1トリプルのシンプルなテキスト形式 |
ストリーミング、一括 |
| 読み込み、行単位の処理 |
|
|
|
| Turtle |
.ttl |
プレフィックス省略を用いたコンパクトで人間が読みやすい形式 |
内 |
| 容の確認、可読性重視の用途 |
|
|
|
| RDF-XML |
.rdf |
XMLベースのシリアライズ形式 |
XMLツールチェーン、レガシーシステム |
| JSON-LD |
.jsonld |
JSONベースのLinked Data形式 |
Webアプリケーション、JavaScript環境 |
形式の提供ポリシー
すべての形式がすべてのデータセットで利用可能なわけではありません。提供状況は以下のルールに従います。
- サブミットされたオリジナルファイル — 各データセットは、データ提供者が元々サブミッ
トした形式のRDFファイルを最低限提供します。これは常に利用可能です。
- N-Triples — オリジナル形式に加えて、N-Triples(
.nt)形式のファイルがすべてのデータセットに対して必ず生成・提供されます。N-Triples は共通の基本形式として機能し、元のサブミット形式に関わらず、すべてのデータセットを統一的に処理できることを保証します。
- その他の形式(Turtle、RDF-XML、JSON-LD) — 利用可能な場合に提供されますが、すべて
のデータセットでの提供は保証されていません。提供の有無は、当該データセットについて形式変換が実施されているかどうかに依存します。
Downloadページで、フォーマット列にダッシュ(—)が表示されている場合、そのデータセットで
は当該形式が現在利用できないことを意味します。
形式の選び方
- トリプルストア(Virtuoso、GraphDB、Apache Jena 等)への一括読み込みには、パース速
度の面でN-Triplesが一般的に最適で、かつ常に利用可能です。
- データ構造の確認・理解には、Turtleが最も人間にとって読みやすい表現を提供します。
- Webアプリケーションとの統合には、JavaScriptで直接処理できるJSON-LDが自然な選択です。
- XMLベースのツールとの互換性が必要な場合は、RDF-XMLが適切です。
ダウンロードURL
ダウンロードリンクのパターン:https://rdfportal.org/download/{dataset_id}
例えば、ChEMBL RDFデータのダウンロード:https://rdfportal.org/download/chembl
6. ユースケースとチュートリアル
このセクションでは、ライフサイエンス研究におけるRDF Portalデータの実践的な活用例を紹介します。
チュートリアル 1:はじめてのSPARQLクエリ
このチュートリアルでは、ChEMBLからデータを取得するシンプルなSPARQLクエリの実行手順を説明します。
目標: 低分子化合物10件のChEMBL IDと名称を取得する。
ステップ 1: EBI SPARQLエンドポイント https://rdfportal.org/ebi/sparql を開きます。
ステップ 2: 以下のクエリを入力します。
PREFIX cco: <http://rdf.ebi.ac.uk/terms/chembl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?molecule_chemblid ?molecule_label
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?Molecule a cco:SmallMolecule ;
cco:chemblId ?molecule_chemblid ;
rdfs:label ?molecule_label .
}
LIMIT 10
ステップ 3: 「Run」をクリックしてクエリを実行します。ChEMBL IDと分子名が表示されま
す。
クエリの解説:
PREFIX 行はクエリ内で使用する名前空間の省略形を定義します
SELECT は返す変数を指定します
FROM はクエリ対象の名前付きグラフ(データセット)を指定します
WHERE はマッチするパターンを定義します — ここでは SmallMolecule という型を持ち、ChEMBL IDとラベルの両方を持つエンティティを探しています
LIMIT 10 は結果を10件に制限します
チュートリアル 2:特定のターゲットに対する承認薬の検索
目標: チロシンプロテインキナーゼABLをターゲットとする承認済み医薬品(開発フェーズ4
)を検索する。
PREFIX cco: <http://rdf.ebi.ac.uk/terms/chembl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX chembl_target: <http://rdf.ebi.ac.uk/resource/chembl/target/>
SELECT ?molecule_chemblid ?molecule_label
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?Molecule a cco:SmallMolecule ;
cco:chemblId ?molecule_chemblid ;
rdfs:label ?molecule_label ;
cco:highestDevelopmentPhase 4 ;
cco:hasMechanism ?mechanism .
?mechanism cco:hasTarget chembl_target:CHEMBL1862 .
}
LIMIT 100
このクエリは、分子の種類、開発フェーズ、特定の薬物ターゲットという複数の条件を組み合わせています。chembl_target:CHEMBL1862 を変更することで、他のタンパク質をターゲットとする
薬物を検索できます。
チュートリアル 3:クロスエンドポイントのフェデレーテッドクエリ
SPARQLは SERVICE キーワードを使ったフェデレーテッドクエリをサポートしており、単一のク
エリで複数のエンドポイントのデータを組み合わせることができます。
目標: UniProtのタンパク質エントリを取得し、対応するReactomeパスウェイとリンクする。
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX biopax3: <http://www.biopax.org/release/biopax-level3.owl#>
SELECT ?protein ?proteinName ?pathway ?pathwayName
WHERE {
SERVICE <https://rdfportal.org/sib/sparql> {
?protein a up:Protein ;
up:mnemonic ?proteinName .
FILTER(CONTAINS(?proteinName, "HUMAN"))
}
SERVICE <https://rdfportal.org/ebi/sparql> {
?pathway a biopax3:Pathway ;
biopax3:displayName ?pathwayName .
}
}
LIMIT 10
注意: フェデレーテッドクエリは中間結果のサイズによっては遅くなる場合があります。
常に LIMIT を使用し、FILTER 条件を適用してエンドポイント間で転送されるデータ量を削減してください。
チュートリアル 4:データセット構造の探索
新しいデータセットに対するクエリを書く前に、その構造を探索すると便利です。以下のクエリはどのエンドポイントでも使用できます。
データセット内の全クラスを一覧表示:
SELECT DISTINCT ?class (COUNT(?s) AS ?count)
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?s a ?class .
}
GROUP BY ?class
ORDER BY DESC(?count)
データセット内で使用されている全プロパティを一覧表示:
SELECT DISTINCT ?property (COUNT(?s) AS ?count)
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?s ?property ?o .
}
GROUP BY ?property
ORDER BY DESC(?count)
特定クラスのサンプルデータを取得:
PREFIX cco: <http://rdf.ebi.ac.uk/terms/chembl#>
SELECT ?s ?p ?o
FROM <http://rdf.ebi.ac.uk/dataset/chembl>
WHERE {
?s a cco:SmallMolecule ;
?p ?o .
}
LIMIT 20
7. FAQ・トラブルシューティング
一般的な質問
Q: RDF Portal は無料で利用できますか?
A: はい。RDF Portal は公的資金で運営されているインフラストラクチャであり、すべてのデータアクセスは無料です。個々のデータセットには独自のライセンスが設定されている場合があります。各データセットの詳細ページの「Licenses」フィールドをご確認ください。
Q: データはどのくらいの頻度で更新されますか?
A: 更新頻度はデータセットによって異なります。最新の更新履歴は Update log ページでご確認ください。
Q: 自分のRDFデータセットを登録できますか?
A: はい。Data submission ガイドラインをご参照ください。登録されたデータセットはすべて、DBCLS RDFガイドラインへの準拠を確認するためのDBCLSによる品質レビューを受けます。
SPARQLクエリに関する問題
Q: クエリがタイムアウトします。どうすればよいですか?
A: 以下の方法をお試しください。
LIMIT 句を追加して結果数を制限する
- より具体的な
FILTER 条件で検索範囲を絞り込む
SELECT * を避け、必要な変数のみを指定する
FROM を使って特定の名前付きグラフに対象を限定する(エンドポイント全体にクエリしない)
- 非常に大きな結果セットの場合は、データファイルをダウンロードしてローカルのトリプルス
トアに読み込むことを検討する
Q: FROM 句で使うべき名前付きグラフはどうやって確認できますか?
A: 各データセットの詳細ページにSPARQLエンドポイントURLと名前付きグラフURIが記載されてい
ます。以下のクエリで名前付きグラフを確認することもできます。
SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }
Q: クエリが結果を返しません。何が問題ですか?
A: よくある原因:
- 名前空間URIの誤り — プレフィックス宣言がデータセットのスキーマ図と一致しているか確認
してください
- 名前付きグラフの誤り —
FROM 句がデータセットのグラフURIと一致しているか確認してください
- 大文字・小文字の区別 — SPARQLではURIとリテラル値は大文字小文字が区別されます
- データ型の不一致 — 数値でフィルタリングする場合、型が一致しているか確認してください(例:整数型 vs 文字列型)
データとライセンス
Q: ダウンロードしたデータを再配布できますか?
A: 各データセットのライセンスによって異なります。データセット詳細ページの「Licenses」フ
ィールドをご確認ください。多くのデータセットは再配布を許可するオープンライセンスで提供されています。
Q: RDF Portal をどのように引用すればよいですか?
A: 以下の論文を引用してください。
Shuichi Kawashima, Toshiaki Katayama, Hideki Hatanaka, Tatsuya Kushida, Toshihisa Takagi. NBDC RDF portal: a comprehensive repository for semantic data in life sciences. Database (Oxford). 2018 Jan 1;2018:bay123. doi: 10.1093/database/bay123. PubMed: 30576482.
お問い合わせ
ご質問、バグ報告、フィードバックについては、About ページに記載されている連絡先情報を通じてDBCLSチームにお問い合わせください。