7SPARQL support の機能開発

守屋 勇樹
情報・システム研究機構 ライフサイエンス統合データベースセンター（DBCLS）

https://sparql-support.dbcls.jp/
トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

SPARQL support とは
Web ブラウザ上で動作する SPARQL クライアント・SPARQL クエリエディタ
クエリ記述を補助する機能を持っている

開発の背景

検索
標準化＆統合化

データ抽出

Databases

これまで多くのライフサイエンス分野のデータが知識グラフ化(RDF

問い合わせ言語 SPARQL を化) され、SPARQLエンドポイントが公開されている

使って検索

トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

SPARQL support の UISPARQL クエリ
RDF は '主語・述語・目的語' のト
リプルでリソースの関係性を記述した知識グラフ検索したいトリプルパターンをSPARQL クエリで記述する●●

基本はトリプルの集合なので難しくは無いが愚直にタイピングしていくのは面倒

結果●

Table, json 形式で検索結果が得られる

プロテオームデータベースから、実験で同定されたペプチド配列と、タンパク質上でのポジションを取得するクエリの例

トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

SPARQL support の機能 詳細は https://sparql-support.dbcls.jp/sparql-support_j.html#sparql_support
自動補間 : 変数や関数、句、PREFIX などをショートカットキー操作で補間?h|-->?hoge|

r|-->

rdf:|F|-->FILTER (|)

PREFIX obo:|-->PREFIX obo: <http://purl.obolibrary.org/obo/>|<id>|--><http://identifiers.org/>|

PREFIX #2|-->PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dct: <http://purl.org/dc/terms/>|

COPY #1|-->

クエリ全体をコピー

Z Shell のような補間でクエリ作成のコストを削減

クエリ管理 : 複数のクエリをブラウザに保存して管理

エンドポイント指定 : クエリに埋め込み# @endpoint https://example.org/sparql

トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

SPARQL のノーコード・ローコード化 (DBCLS の取り組み)
SPARQList

Endpoint browser

RDF-config

SPARQL と JavaScript で REST API化（API ユーザはノーコード)

視覚的にトリプルパターンを選択して、SPARQL クエリを自動生成簡潔にしたデータモデル Yaml から SPARQL クエ
リや Schema 図を自動生成

Grasp
GraphQL で RDF からデータ取得

いろいろな取り組みで SPARQL クエリ記述の削減を目指しているが、REST API の開発やメンテナンス、自動生成されたシンプルなクエリの編集などで、しばらくの間は、開発者はこれまで通り SPARQL クエリを記述していく必要がある
トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

課題
RDF portal への集約で統合して検索できるようになった● SPARQL クエリの複雑化● 全ての更新箇所の把握が困難
データ更新したらクエリが正常に動作しなくなることも 'DBあるある' だが、デバッグが煩雑
グラフ名が変更された

述語が変わった

グラフの階層が深くなった
API パラメータのデフォルトに使用していたエントリが無くなった

クエリのどこに問題があるかを体系的に調査するには、本来は SPARQL 構文解析が必要● 高コストトーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

複数行コメントアウト
SPARQLは１行コメントアウトのみ
初期から =b から =e までコメントアウトする機能を開発していたもう少し楽にデバッグ作業
できたら…

残った部分で検索することでデバッグ作業

複雑なクエリでは複数箇所コメントアウトしたり、省略した主語や行末のセミコロンを書き換える必要がある
トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

デバッグ検索機能
コメントアウトとは逆に、選んだ URI やトリプルパターンを対象に検索● ‘# @debug true’ でモード指定● 短縮 URI を右クリックで検索● プロパティパスとか、ブロック単位を範囲選択してプロパティパス

右クリックで検索
短縮 URI例) 選択した URI を主語としたトリプルがエンドポイントで取得できるか検証

トーゴーの日シンポジウム2022

トリプルパターン

主語や blank node の閉じ括弧、最後のピリオドなどを補完して検索

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

その他の更新 (トーゴーの日2018以降に追加）
結果から DESCRIBE

結果から Endpoint broweser
クリップボードへコピー

クエリや、クエリにアクセスするための URL をクリップボードへコピーすることで、クエリの共有を促進● 長いクエリを Slack や Docs に書かなくて良くなる

詳細は https://sparql-support.dbcls.jp/sparql-support_j.html#sparql_support

トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）

使い方
https://sparql-support.dbcls.jp/
アクセスするだけで利用可能
https://github.com/moriya-dbcls/sparql-support
github からダウンロードして、ローカルでも使える
https://github.com/dbcls/sparql-proxy
SPARQL-proxy に内包しているので、Docker で立てることも可能

募集
欲しい新機能などの相談は随時募集中

トーゴーの日シンポジウム2022

Licensed under a Creative Commons 表示4.0国際ライセンス©2022 守屋 勇樹（DBCLS）