SPARQL support は web ブラウザ上で動作する SPARQL クライアント・SPARQL クエリエディタです
"Ctrl+Space" または "Tab" で補完、"Ctrl+Enter" で実行

endpoint 指定

# @endpoint http://example.org/

または '## endpoint http://example.org/' (legacy format)

Auto-Completion

"Ctrl+Space" または "Tab" キーでインデント、変数名、PREFIX などを補完

e.g.)	
?h|             -->   ?hoge|
r|              -->   rdf:|                                                       * 小文字
F|              -->   FILTER (|)                                                  * 大文字
PREFIX obo:|    -->   PREFIX obo: <http://purl.obolibrary.org/obo/>|              * 1
<id>|           -->   <http://identifiers.org/>|                                  * 2

*1 Prefix URIは prefix.cc から取得しています。そのため、意図したものにならない場合もあります。prefix.cc には1日1個、新規登録できます
*2 個人的な短縮URIの展開。初期値は上記の例のみ。コメント行に予め記述しておくことで追加(# id:<http://identifiers.org/>)

他のタブのクエリまたは PREFIX をコピー

e.g.) 2番目のタブのクエリの PREFIX をコピー
PREFIX #2|    -->   PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>     * 3
                    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
                    PREFIX dct: <http://purl.org/dc/terms/>
		    |
e.g.) 1番目のタブのクエリ 全体をコピー
COPY #1|      -->   省略

*3 テキストエリア1行目でのみ有効

その他の補完

# @endpoint|  ->   # @endpoint http://example.org/|                               * 1行目行頭のみ (直近で使用した endpoint 10個)
Def|  ->   DEFINE sql:select-option "order"|                                      * 行頭のみ (Virtuoso 用)

Tabbed Interface

右上の "+", "-" で、複数クエリを管理。ブラウザを閉じてもクエリを保持
"Ctrl+Shift" : 隣のタブに移動 ("Ctrl+Alt+Shift", "Ctrl+[1-9]")
"Ctrl+[+/-]" : タブの追加・削除(Shift不要)

ラベルの付与

# @label query_label

innerMode

右上の "table", "json", "endpoint" でモード変更
"table" で結果を table 表示
"json" で結果を JSON 表示
"endpoint" で endpoint 側で結果を表示
結果をページ内に表示(短縮uri)
結果を取得し、'$' で始まる変数を補完(タブキー補完)

e.g.) タブ補完
$p|             -->   rdf:type
                -->   rdfs:subClassOf
                -->   piero:inRpairInSideA
                -->   piero:inRpairInSideB

Copy to clipboard

左下の Icon からクエリ、クエリへの URL をコピー

Command

"Ctrl+Enter" で実効

- SPANG ライクな典型クエリ発行ショートカット

e.g.) 
# spang -S tax:9606 -L 100;|    -->   # spang -S tax:9606 -L 100;                 *4, 5
                                      SELECT *
                                      WHERE {
				        tax:9606 ?p ?o .
				      }
		                      LIMIT 100|

*4 -S (subject), -P (predicate), -O (object), -L (limit), -N (count), -G (graph list), -F (from a graph) に対応
*5 コマンド行より下のコードを消去して、置き換えます

- Font

# font-size: 20px;
# font-family: Courier;

- クエリ全消去

# clear_sparql_queries;                                 * 一行目に入力 (#バルス;)

- Proxy SSL mixed content (permanent)

# mixed-content-proxy: true;                            * true (default), false

https: で動作している SPARQL suppoort から http: のエンドポイントを利用する場合、'sparql-support.dbcls.jp' サーバ経由でアクセスします

Beta機能

debug用 multi-line comments
- =begin, =end の間をコメントとしてスルー (=b, =e も可, innerMode のみ)

=begin
     multi
     line
     comments
=end
   
=b multi-line
   comments =e

Sparql-doc 形式

# @endpoint http://dbpedia.org/sparql
# @param city=Tokyo
# @param hoge=fuga

PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
  dbpedia:{{city}} ?p ?o .
}

Debug search
- クエリの一部で指定したterm、トリプルパターンがエンドポイントで取得できるか調査 (innerMode のみ)
- コメントでモードを指定
- オレンジ色の term を右クリックし、主語、述語、目的語として検索
- または範囲選択をして右クリックし、プロパティパス(述語)、トリプルパターンとして検索

# @debug true                 * LIMIT 1 (default)
# @debug true 10              * LIMIT 10

Proxy SSL mixed content and CORS blocking (temporary)
- 'sparql-support.dbcls.jp' サーバ経由、 コメントに sparql-doc 形式で

# @temp-proxy true

Predicate 検索
- "?subject ??" 行を書いて実行すると predicate と object のサンプル表示 ("?subject ^??" で逆引き, innerMode のみ)

## endpoint http://dbpedia.org/sparql
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT *
WHERE {
  dbpedia:Tokyo dbo:isPartOf ?parent .
  ?parent ??
}

----- results bindings -----
??	        sample
dbo:utcOffset	"+9"
owl:sameAs	http://rdf.freebase.com/ns/m.0g3bw
dbo:timeZone	dbpedia:Japan_Standard_Time
dbo:length	1.3e+06
rdfs:label	"Honshu"
dbo:country	dbpedia:Japan
...

Endpoint browser で開く
- 結果に Mouse over + Opt(Alt) key + click

利用方法

Online

SPARQL support にアクセス

UserScript

例:virtuosoのUI上で使用

UserScript を用いることで、Virtuoso の web インターフェース等の、任意のサイトのテキストエリアで SPARQL support が利用できるようになります

sparqlSupport.user.js
ターゲットURLを "// @include" 行に記述
(or URLを変更してダウンロード)

要: userscript manager (web browser extension)

Embed

ユーザのサイトに埋め込むことができます

要: CodeMirror

	root
	+---codemirror/
	|   +---lib/
 	|       +---codemirror.js
	|       +---codemirror.css
	|
	+---sparql-suppor.js
	+---sparql.js # colors mod. & fixed indent 
	+---sparql-fold.js
	
	base.css
      

e.g.

<html>
  <head>
    <script type="text/javascript" src="./js/codemirror/lib/codemirror.js"></script>
    <script type="text/javascript" src="./js/codemirror/addon/edit/matchbrackets.js"></script>
    <script type="text/javascript" src="./js/codemirror/addon/edit/closebrackets.js"></script>
    <script type="text/javascript" src="./js/codemirror/addon/fold/foldcode.js"></script>
    <script type="text/javascript" src="./js/codemirror/addon/fold/foldgutter.js"></script>
    <link rel="stylesheet" type="text/css" href="./js/codemirror/lib/codemirror.css">
    <link rel="stylesheet" type="text/css" href="./js/codemirror/addon/fold/foldgutter.css">
    <script type="text/javascript" src="./js/sparql-support.js"></script>
    <script type="text/javascript" src="./js/sparql.js"></script>
    <script type="text/javascript" src="./js/sparql-fold.js"></script>
    <link rel="stylesheet" type="text/css" href="./css/base.css">
  </head>
  <body>
    <div>
      <form action="http://endpoint" method="get">
	<textarea id="query" cols="100" rows="15">
      </textarea>
      <input type="submit" value="Run Query" id="submit_button">
      </form>
    </div>
  <script type="text/javascript">
     var id = "query";
     var editor = CodeMirror.fromTextArea(document.getElementById(id), {
       mode: "application/sparql-query",
       matchBrackets: true,
       autoCloseBrackets: true,
       lineNumbers: true,
       sparqlSupportAutoComp: true,      // Auto completion
       sparqlSupportQueries: true,       // Tabbed interface
       sparqlSupportInnerMode: true,     // Inner mode
       extraKeys: {"Tab": function(instance) { return false; },
                   "Ctrl-Space": function(instance) { return false; },
                   "Ctrl-Q": function(cm){ cm.foldCode(cm.getCursor()); }},
       foldGutter: true,
       gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"]
     });
   </script>
  </body>
</html>
      

SPARQList supportSPARQList 用 markdown エディタです。(SPARQList は SPARQL クエリの実行結果を成形して返す REST API です)
SPARQList support は SPARQL と JavaScript を段階毎に実行する環境を提供します。


編集する SPARQLet を選択します
    • new SPARQLet
新規 SPARQLet を作成します
    • remove SPARQLet
表示中の SPARQLet を削除します
    • read markdown
SPARQList markdown を読み込みます (CORS を許可している SPARQList サーバの場合 SPARQLet のURLで読み込みます)
    • add step
SPARQLet に Parameters, SPARQL, JavaScript ステップを追加します
ステップの言語環境を変更します (Handlebars: output only)
ステップをリネームします
    • copy markdown
表示中の SPARQLet の markdown をクリップボードにコピーします

推奨環境: Google Chrome (v67+), Firefox (v61+), Safari (v11+), Microsoft Edge(v42+)

Endpoint browser は視覚的なネットワークグラフを用いて endpoint 内の RDF データを探索する web サービスです。ノードをクリックしていくことで、SPARQL クエリを発行できます

Start browsing

endpoint: 目的とする endpoint の URL
start node: スタートとなるノードのURI (またはリテラル)

Node

Edge

色(カウント): 淡(少) <--> 濃(多)

Mode


browsing: ノードをクリックしていくとで、endpoint 内の RDF データを探索 (ショートカット: ctrl+"b", tmp. press & hold "b")


- (opt.) inverse link: ノードを目的語として、主語を検索 (ショートカット: ctrl+"i")
- (opt.) federated search: 他の endpoint で検索 (ショートカット: ctrl+"f")、エンドポイントを入力、または次のアイコンから選択:

subgraph to SPARQL: ネットワークグラフから SPARQL クエリの構築 (ショートカット: ctrl+"s", tmp. press & hold "s")


remove node: グラフノードの削除 (ショートカット: ctrl+"r", tmp. press & hold "r")

Controle


property: エッジプロパティの表示非表示
RDF-config: RDF-config の生成(詳しい作成方法

- prefix: 使用している prefix のリスト。prefix の変更が可能
- model: RDF-config model

クリッカブルテキストの色:
node_0: 未定義のprefixや変数名の変更
var_name: 自動提案の変数名の変更
var_name: 設定済のprefixや変数名の変更
object: 目的語を新規主語として選択
{{expand foobar}}: blank ノードや主語の展開
predicate: 述語の cardinality を設定

layer arrangement: ノードを層状に配置
forse sim.: ノードの自動配置シミュレーションのオンオフ
scroll zoom: マウス、タッチパッドなどのスクロール操作によるグラフのズーム機能のオンオフ

最近の履歴

SPARQL support [src]

SPARQList support

Endpoint browser [src]