ウィキデータ:SPARQLクエリサービス/クエリ・ヘルパー
.
クエリ・ヘルパーを利用するとSPARQLを理解しなくても、クエリの作成や既存のクエリの改変ができます。
このツールを使用すると、SPARQLクエリを視覚的なインターフェイスで行った入力に基づいて改変したり、その逆もできます。
最後の使用によって、クエリエディターの左側が表示されていない場合、ツールサイドバーの対応するアイコンをクリックしてクエリヘルパーを開いてください。
現在の制限事項
これは試験的なツールであるため、SPARQLクエリを破損する可能性があります。
- JSONシリアライゼーションには改行を入れないでください。
- テンプレートの配置は、例えば上部や下部などクエリの任意の場所を選択できます。
- テンプレートの内容がクエリのURL欄に追加されます。それが問題の原因になる可能性があります。
クエリの作成方法
この節ではクエリ・ヘルパーを使って、クエリをゼロから作成する方法を説明します。
このサンプルでは、ホッキョクグマとライオンをどちらも飼育している動物園の項目を求めます。
Pxxx や Qxxx といった識別子をインターフェース入力フィールドに直接入力して、正しく項目にアクセスできます。
フィルターに「分類 動物園」、「飼育生物 ホッキョクグマ」、「飼育生物 ライオン」を入力
- 「フィルター」をクリックする
- 入力欄をクリックし「動物園」と入力する
- 表示された候補から項目「動物園 (Q43501)」を選択
- 「フィルター」をクリックし 「ホッキョクグマ (Q33609)」を選択
- 「フィルター」をクリックし「ライオン (Q140)」を選択
欄を追加:「公式サイト」「画像」「位置座標」「成立日」「飼育生物」
- 「表示」をクリックし「公式ウェブサイト (P856)」を選択
- 「表示」をクリックし「画像 (P18)」を選択
- 「表示」をクリックし「位置座標 (P625)」を選択
- 「表示」をクリックし「成立日(P571)」を選択
- 「表示」をクリックし「飼育生物 (P1990)」を選択
自分のソースを確認 |
---|
SELECT ?zoo ?official_website ?image ?coordinate_location ?inception ?species_kept ?species_keptLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?zoo wdt:P31 wd:Q43501;
wdt:P1990 wd:Q33609, wd:Q140.
OPTIONAL { ?zoo wdt:P856 ?official_website. }
OPTIONAL { ?zoo wdt:P18 ?image. }
OPTIONAL { ?zoo wdt:P625 ?coordinate_location. }
OPTIONAL { ?zoo wdt:P571 ?inception. }
OPTIONAL { ?zoo wdt:P1990 ?species_kept. }
}
LIMIT 200
|
クエリの改変の方法
この節ではクエリ・ヘルパーを利用してクエリの編集をする方法を説明します。
「ネコ」を「動物園」に変える
- サンプルの「ネコのクエリ」を選択
- 「ネコ」(「フィルター」欄の右端)をクリックして値を変更する
- 入力欄をクリック、「動物園」と入力
- ドロップダウンの一覧から項目「動物園 (Q43501)」を選択
これでクエリは「ネコのインスタンス」ではなく「動物園のインスタンス」の項目を見つけるようになりました
フィルターの追加「国 ドイツ」
- 「フィルター」ボタンを押す
- 「ドイツ」と入力
- 「ドイツ (Q183)」を選択
- 自動的にできた「本国」という欄を変更するためにクリック
- 「国」と入力
- ドロップダウンの一覧から「国 (P17)」を選択
これでクエリは「動物園のインスタンス」かつ「国がドイツ」である項目のみを見つけるようになりました
「成立日」「画像」欄を追加
- 「表示」ボタンをクリックする
- 「成立日」と入力
- 「成立日 (P571)」を選択
- 「表示」ボタンをクリックする
- 「画像」と入力
- 「画像 (P18)」を選択
これでクエリの結果に「画像」と「成立日」の2つの列が追加され、表示形式をTimeline(タイムライン)またはImage Grid(格子状に並んだ画像)に変更できるようになりました。
タイトルを追加する
右側のペインにあるコード表示欄で、クエリの最初に#title: Your title
を追加します。"Your title"の部分は何でも好きなタイトルに変えてください。
クエリテンプレート
クエリテンプレートを利用する
定義されたクエリテンプレートを持つクエリでは、クエリヘルパー内に定義されたこのクエリの文字表現が表示されます。クエリ・ヘルパーを使うと、SPARQLがわからなくてもクエリの作成や既存のクエリの改変ができます。
このツールを使うと利用者が視覚的なインターフェイスを介して入力した内容に基づいて、SPARQLクエリを改変します。逆の操作も成立します。
操作はクエリ編集画面の左欄に表示されます。
この文章形式の表示では、青字の部分をクリックして改変できます。
詳細を指定する指示が表示されますが、変更したい場合は文字を入力して検索できます。
一覧からどれか1項目をクリックして選択すると、右欄の文字で表示したクエリ内容で該当する部分が書き換えられ、同様にSPARQLクエリも変更されます。
「#TEMPLATE」でページをテキスト検索することにより、クエリのサンプルの一覧内でクエリテンプレートが定義されている全てのクエリを見つけることができます。
クエリテンプレートの作成方法
クエリテンプレートはテンプレートの定義を提示することによって作成することができます。クエリの例にはテンプレートの定義を持つものがあります。
定義はJSONで表現され、クエリにSPARQLのコメントとして次のように挿入されます。
#TEMPLATE=[JSON_DEFINITION]
JSON定義例:
{
"template": "Largest ?c with ?sex head of government",
"variables": {
"?sex": {},
"?c": {
"query": "SELECT DISTINCT ?id WHERE { ?c wdt:P31 ?id. ?c p:P6 ?mayor. }"
}
}
}
キー | 値 | 使用例 | 説明 | SPARQLクエリの内容 |
---|---|---|---|---|
テンプレート | このテキストは利用者にクエリの説明として表示されます。テキスト内では変数を定義することができ、変数は実際の値によって置き換えられます。 | Largest ?c with ?sex head of government | このテキストでは「?c」と「?sex」の2変数を定義しています
この変数に対する値の定義は必須です SPARQLクエリ内に設定。 |
BIND(wd:Q6581072 AS ?sex)
BIND(wd:Q515 AS ?c)
|
変数 | この部分ではテンプレートから変数を定義しなければなりません。その変数に対する値をサジェストするSPARQLクエリを任意で設定することもできます。 | "?sex": {},
"?c": {
"query": "[SPARQL]"
}
|
「?c」と「?sex」の2変数を定義します
変数?cに対して、項目をサジェストするSPARQLクエリが定義されています。 |
SELECT DISTINCT ?id WHERE
{ ?c wdt:P31 ?id.?c p:P6 ?mayor. }
SELECT ?id ?label ?description WITH {
[QUERY]
} AS %inner
WHERE {
INCLUDE %inner
?id rdfs:label ?label.
?id schema:description ?description.
FILTER((LANG(?label)) = "en")
FILTER((LANG(?description)) = "en") }
ORDER BY DESC(?count)
LIMIT 20
|