SPARQLthon46/sparql-rest-api
提供:TogoWiki
(版間での差分)
(ページの作成:「[https://apiblueprint.org/ API Blueprint] のような簡単な DSL (Markdown) で SPARQL 検索の結果を取得する REST API サーバを構築できると便利そ...」) |
|||
39行: | 39行: | ||
``` | ``` | ||
</pre> | </pre> | ||
+ | |||
+ | イメージとしては、上記のような Markdown を spec.md など適当なファイルに保存して、 | ||
+ | |||
+ | <pre> | ||
+ | node sparql-rest-api-server.js spec.md --port 8080 | ||
+ | </pre> | ||
+ | |||
+ | のように起動すると http://localhost:8080/organism?9606 などが実行できるサーバが起動して | ||
+ | |||
+ | <pre> | ||
+ | [ "Homo sapiens" ] | ||
+ | </pre> | ||
+ | |||
+ | のような JSON が返ってくる感じ。 | ||
TODO: | TODO: |
2016年7月26日 (火) 02:20時点における最新版
API Blueprint のような簡単な DSL (Markdown) で SPARQL 検索の結果を取得する REST API サーバを構築できると便利そう。
# GET /organism?tax_id + Response 200 (application/json) ```sparql http://dev.togogenome.org/sparql-test SELECT ?organism WHERE { GRAPH <http://togogenome.org/graph/taxonomy> { <http://identifiers.org/taxonomy/{{tax_id}}> :organism ?organism_id . ?organism rdfs:label ?organism . } } ```
SERVICE 句の効率が悪い(もしくはサポートされていないエンドポイントの)ために、 多段の SPARQL クエリを共通の変数名でカスケードできるようにしてみたらどうか。
# GET /pathway?protein_id + Response 200 (application/json) ```sparql http://dev.togogenome.org/sparql-test SELECT ?pathway_id WHERE { GRAPH <http://togogenome.org/graph/uniprot> { <http://identifiers.org/uniprot/{{protein_id}}> :pathway ?pathway_id . } } ``` ```sparql http://sparql.uniprot.org/sparql SELECT ?pathway WHERE { {{pathway_id}} rdfs:label ?pathway . } ```
イメージとしては、上記のような Markdown を spec.md など適当なファイルに保存して、
node sparql-rest-api-server.js spec.md --port 8080
のように起動すると http://localhost:8080/organism?9606 などが実行できるサーバが起動して
[ "Homo sapiens" ]
のような JSON が返ってくる感じ。
TODO:
- 結果は JSON でよいか
- 結果が1つの場合と複数の場合で分けるべきか (or 必ず1要素でも配列で返すのか)
- そもそも値だけの配列の JSON より、入力変数を伴うキー付きのハッシュの JSON の方がうれしいかも↓?
[ { "protein_id": "queryの入力id", "pathway": "queryの出力id" } ]