2020/10/31

SPARQL

ヒント&クエリ集
2020アーバンデータチャレンジ京都：
ジャパンサーチ・タウン【参考資料】

国立国会図書館電子情報部電子情報流通課

横田志帆子

目次
1. SPARQLを使ってみよう！
2. クエリ集①：ある地域に関係するコン
テンツの種類や概数の調べ方

3. クエリ集②：各種コンテンツの探し方
4. 付録
2

SPARQLを使ってみよう！
3

SPARQLを使ってみよう！
ジャパンサーチトップ＞開発者向け＞EasySparql
https://jpsearch.go.jp/rdf/sparql/easy/
名前空間は指定済み（入力不要）
使い方①
ここにSELECT文を入力してクエリを実行する

使い方②
キーワードを入れてEasySPARQLを実行する

4

SELECT文の基本的な構成
PREFIXPREFIX句：接頭辞宣言

SELECT 変数1 変数2 ... 変数j
WHERE{RDFトリプル文.
～中略～
RDFトリプル文m.
}
結果修飾語句SELECT句：ここで列挙されている変数の順序組が出力される。

WHERE句：ここで列挙されているRDFトリプル文がすべて真となるような、変数割り当てが検索される。
出力結果を制御する命令

出典： http://www.aise.ics.saitama-u.ac.jp/~gotoh/IntroSPARQL.html

5クエリ集①

ある地域に関係するコンテンツの種類や概数の調べ方
6

場所情報として京都府が関連付けられたコンテンツの種類と数を調べる

SELECT ?type (count(?cho) as ?count)
WHERE {?cho a ?type; schema:spatial place:京都.}
GROUP by ?type
ORDER BY desc(?count)
type

count

type:図書51480

type:動物標本
type:雑誌

type:行政文書
type:植物標本

type:古書・古文書
type:地図資料
type:菌標本

type:電子資料
type:建築
type:考古type:建造物・建築
type:芸術・美術

41897
32629
22763
19782
3239
2560
1227
713

• 「京都」を「大阪」や「奈良」に変更して検索することも可能。
（「都」「道」「府」「県」は省略して正規化されている。）• ?type、?cho、?countは任意の変数。

6105885575507場所情報として京都府が関連付けられたコンテンツのプロバイダと数を調べる
SELECT ?provider (count(?cho) as ?count)
WHERE {?cho jps:sourceInfo/schema:provider ?provider ;schema:spatial place:京都.}
GROUP BY ?provider
ORDER BY desc(?count)providerchname:NDLデジタルコレクション
chname:サイエンスミュージアムネット
chname:国立公文書館デジタルアーカイブ
chname:全国書誌
chname:文化遺産オンライン
chname:ColBase
chname:ARC古典籍ポータル
chname:ARC浮世絵ポータル
chname:叡智の杜Web(宮城県図書館)
chname:連歌・演能・雅楽データベース
chname:みちしる
chname:写真原板データベース
chname:魚類写真資料データベース
chname:アートコモンズ

count71743
63061
23438
17331
1947909868775643
532436400
228
2218位置情報として京都府のGeohashコードを持つコンテンツのプロバイダと数を調べる
SELECT ?provider (count(?cho) as ?count)
WHERE {?cho jps:sourceInfo/schema:provider ?provider;jps:spatial/jps:value/schema:geo <http://geohash.org/xn0x1pw0n>.}
GROUP BY ?provider
ORDER BY desc(?count)provider（add en labels）
chname:NDLデジタルコレクション
chname:サイエンスミュージアムネット
chname:国立公文書館デジタルアーカイブ
chname:全国書誌
chname:文化遺産オンラインchname:ARC浮世絵ポータル
chname:ColBase
chname:ARC古典籍ポータル
chname:叡智の杜Web(宮城県図書館)
chname:連歌・演能・雅楽データベース
chname:みちしる
chname:写真原板データベース
chname:魚類写真資料データベース
chname:アートコモンズ

count
71756
63061
23438
18407
1947
1050
909
883
643
532
436
400
228
2219サムネイル画像を持つコンテンツのプロバイダと数を調べる
SELECT ?provider (count(?thumbnail) as ?count)
WHERE {?cho jps:sourceInfo/schema:provider ?provider ;rdfs:label ?label .
OPTIONAL {?cho schema:image ?thumbnail}} コンテンツのライセン
スは別途確認が必要。
GROUP BY ?provider
ORDER BY desc(?count)provider（add en labels）

count

chname:NDLデジタルコレクション

480386chname:魚類写真資料データベース

119197chname:ARC浮世絵ポータル

116615chname:東京大学学術資産アーカイブズ

63169

chname:ADEAC

38290

chname:データカタログサイト

27291

chname:ARC古典籍ポータル

21627

chname:ColBase

16461

chname:国立美術館所蔵作品総合目録

10894

chname:写真原板データベース

7756

chname:慶應デジタルコレクション

4600

10場所情報として京都府が関連付けられ、サムネイル画像を持つコンテンツのプロバイダと数を調べる
SELECT ?provider (count(?thumbnail) as ?count)
WHERE {?cho jps:sourceInfo/schema:provider ?provider ;rdfs:label ?label ;schema:spatial place:京都.
コンテンツのライセン
OPTIONAL {?cho schema:image ?thumbnail}} スは別途確認が必要。
GROUP BY ?provider
ORDER BY desc(?count)provider（add en labels）

count

chname:NDLデジタルコレクション

14194

chname:ARC浮世絵ポータル

774

chname:ARC古典籍ポータル

594

chname:みちしる

436

chname:写真原板データベース

326

chname:魚類写真資料データベース

228

chname:ColBase203

chname:データカタログサイト

16

chname:古地図コレクション

8chname:群馬県立図書館デジタルライブラリー811

クエリ集②
各種コンテンツの探し方
12京都府に関係する陶磁/京都府で出土された陶磁

SELECT ?s ?label
WHERE {?s schema:spatial place:京都 ;rdfs:label ?label ;a type:陶磁 .}slabelhttps://jpsearch.go.jp/data/cobas-79738 壷https://jpsearch.go.jp/data/cobas-79290 骨壷

class一覧：https://jpsearch.go.jp/static/developer/introduction/jps-class202008.xlsx

https://jpsearch.go.jp/data/cobas-79445 坩塙
SELECT ?s ?label
WHERE {?s jps:spatial [jps:value place:京都 ;jps:relationType role:発見.出土] ;rdfs:label ?label ;role一覧：https://ja type:陶磁.}
psearch.go.jp/staticslabel /developer/propert
https://jpsearch.go.jp/data/cobas-79738 壷
y_structured/roles-d13
efinition.xlsx

場所情報として京都府が関連付けられ、時間情報が12世紀のコンテンツ
SELECT DISTINCT ?s ?label ?when ?type
WHERE {?s schema:spatial place:京都 ;schema:temporal ?when ;rdfs:label ?label ;a ?type .
?when jps:start ?start; jps:end ?end .
FILTER (?start >= 1101 && ?end < 1200)}
slabelwhentype
https://jpsearch.go.jp/data/bunka-147101 醍醐寺薬師堂
time:1121 type:建築
https://jpsearch.go.jp/data/bunka-149681 白描絵料紙墨書金 time:1192 type:芸
光明経〈巻第三／〉術・美術
https://jpsearch.go.jp/data/bunka-185896 蓮華王院本堂（三 time:1112 type:建築十三間堂）
https://jpsearch.go.jp/data/bunka-156375 教王護国寺蓮花門 time:1185 type:建築
https://jpsearch.go.jp/data/bunka-156455 法界寺阿弥陀堂
time:1185 type:建築
https://jpsearch.go.jp/data/bunka-186096 宇治上神社拝殿
time:1185 type:建築
https://jpsearch.go.jp/data/bunka-200779 高山寺石水院（五 time:1185 type:建築所堂）

14

場所情報として京都府が関連付けられ、時間情報として平安時代が関連付けられたコンテンツ
SELECT DISTINCT ?s ?label ?type
WHERE {?s schema:spatial place:京都 ;jps:temporal [jps:era time:平安時代] ;rdfs:label ?label ;a ?type}s
https://jpsearch.go.jp/data/cobas-72272
https://jpsearch.go.jp/data/cobas-72273
https://jpsearch.go.jp/data/cobas-72274
https://jpsearch.go.jp/data/cobas-72276
https://jpsearch.go.jp/data/cobas-71760
https://jpsearch.go.jp/data/cobas-71761
https://jpsearch.go.jp/data/cobas-71766
https://jpsearch.go.jp/data/cobas-66231
https://jpsearch.go.jp/data/cobas-71758
https://jpsearch.go.jp/data/cobas-71759
https://jpsearch.go.jp/data/cobas-72268

label

木製経筒蓋
木製経筒蓋
火舎
六器残缺
皿
小鋺
銀塊
聖宋元宝
白磁皿
白磁小盃
菊花双鳥鏡

type
type:金工
type:金工
type:金工
type:金工
type:金工
type:金工
type:金工
type:金工
type:金工
type:金工
type:金工15

場所情報として京都府が関連付けられ、人物情報として歌川豊国が関連付けられたコンテンツ
SELECT ?s ?label ?type
WHERE {?s schema:spatial place:京都 ;jps:agential [jps:value/owl:sameAs* chn
ame:歌川豊国] ;rdfs:label ?label ;a ?type .}slabelhttps://jpsearch.go.jp/data/arc_nishikie-MFA_11_16392「祇園御輿はらい ねり type:版画
物姿」 「矢矧の長者牛若丸」「うぢ屋君の」「付添 みつ」[玉屋景物]
type:古書・古文書

https://jpsearch.go.jp/
data/dignl-2533806

type16

場所情報として京都府が関連付けられ、サムネイル画像を持つコンテンツ
SELECT ?s ?label ?thumbnail
11枚目のスライドにある他のWHERE {?s schema:spatial place:京都 ;プロバイダでも抽出が可能。
schema:image ?thumbnail ;rdfs:label ?label ;jps:sourceInfo/schema:provider chname:NDLデジタルコレクション.}
LIMIT 200slabel

thumbnailhttps://jpsearch.go.jp/data/dignl 頭書増補訓蒙図彙-11446228
21巻
https://jpsearch.go.jp/data/dignl 日月日記
-1138123https://jpsearch.go.jp/data/dignl 東北日記-1138139
https://jpsearch.go.jp/data/dignl 義経記 8巻-2574945
https://jpsearch.go.jp/data/dignl 源平盛衰記 48巻目
-2544762
録1巻

17

付録
18

各種記号
記号

使い方

?○○

変数と組み合わせて未知の要素を表す（$でも良い）

a.
;
<>
""
/+
*
?

「rdf:type」の代わり
トリプルパターンの区切り
2回目以降の主語の省略
接頭辞を用いずにURIを記述する際に使う文字列を記述する際に使う
プロパティ階層を連結して簡潔に記述するプロパティが1回以上反復する構文を表す
プロパティが0回以上連続する構文を表す
0回もしくは1回を意味する
19

頻出語句
語句

使い方

PREFIX

名前空間の接頭辞を宣言する

SELECT

問い合わせ対象のRDFストアから条件にマッチするデータを取得
する

WHERE {～}

条件句を表すDISTINCT

SELECTの後ろに置き、検索結果から重複している結果を取り除く

UNION

複数のクエリ結果を結合する

OPTIONAL {～}必須ではないパターンを指定する

SERVICE

異なるエンドポイントから得られるデータを統合して得る

FILTER (～)

特定の条件に合致したデータだけに絞り込む

BIND～AS～

ASの前の変数や式の演算結果をASの後の変数と紐づける

GROUP BY～

結果修飾語句として使用。どのデータベースからどれだけのコンテンツ情報が提供されているかを一覧表示する

ORDER BY～

結果修飾語句として使用。指定した変数の値に応じて整列させる

LIMIT

結果修飾語句として使用。取得結果の最大数を指定する(COUNT(○○) AS ○○) 集約グループごとに変数に含まれる値の数を数えて返す

20

EasySPARQLのパラメータ
パラメータ
when値
YYYY[,YYYY] | 時代名

備考

YYYYは西暦年（の範囲）

who

都道府県名 | nnn,mmm nnn,mmmは緯度経度の数字
名前先頭に~を加えると別名も含め検索

what

クラス名

keyword

主題／キーワード

先頭に~を加えると上位クラスも含
め検索
先頭に=を加えると完全一致

text

任意の文字列すべての文字列フィールド対象

formatjson | xml

limit

最大取得件数

返り値のフォーマット（略すとAcceptヘッダによる）

wheretitle

タイトル（に含まれる文字列）

先頭に=を加えると完全一致

略すとシステム設定値

21