メディア芸術データベース(ベータ版) #
https://mediaarts-db.bunka.go.jp/
メディア芸術データベース・ラボ (MADB Lab) #
https://mediag.bunka.go.jp/madb_lab/
SPARQLクエリエディタ #
Endpoint: https://mediag.bunka.go.jp/sparql
クエリ集 #
全リソースを種別ごとに集計する #
1PREFIX schema: <https://schema.org/>
2PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
3
4SELECT
5 ?additionalType ?class ?genre (COUNT(*) AS ?count)
6WHERE {
7 ?resource a ?class;
8 schema:additionalType ?additionalType ;
9 schema:genre ?genre .
10}
11GROUP BY ?class ?additionalType ?genre
12ORDER BY ?additionalType
マンガ単行本「鬼滅の刃 1 」の情報を取得する #
https://mediaarts-db.bunka.go.jp/id/M464950
1PREFIX schema: <https://schema.org/>
2PREFIX ma: <https://mediaarts-db.bunka.go.jp/data/property#>
3PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
4
5SELECT *
6WHERE {
7 <https://mediaarts-db.bunka.go.jp/id/M464950> ?p ?o .
8}
マンガ単行本の一覧を取得する #
「マンガ単行本」を表すクラス https://mediaarts-db.bunka.go.jp/data/class#MangaBook
1PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2PREFIX schema: <https://schema.org/>
3PREFIX ma: <https://mediaarts-db.bunka.go.jp/data/property#>
4PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
5
6SELECT
7 ?id ?label ?creator ?datePublished
8WHERE {
9 ?item a class:MangaBook ;
10 schema:identifier ?id ;
11 rdfs:label ?label ;
12 schema:creator ?creator ;
13 schema:datePublished ?datePublished .
14}
15LIMIT 1000
マンガ単行本とその所蔵館の一覧を取得する #
https://mediaarts-db.bunka.go.jp/id/M464950
を主語とするTurtle形式のRDFデータ1
1<https://mediaarts-db.bunka.go.jp/id/M464950>
2 a class:MangaBook ;
3 rdfs:label "鬼滅の刃 1" ;
4 schema:identifier "M464950" ;
5 schema:additionalType class:CM ;
6 schema:genre "マンガ単行本" ;
7 dcterms:creator <https://mediaarts-db.bunka.go.jp/id/C53400> ;
8 dcterms:publisher "P4080000000" ;
9 ma:jpno "22740403" ;
10 ma:ndc "726.1" ;
11 ma:note "【言語】日本語 / JPN" ;
12 schema:alternateName "残酷" ;
13 schema:brand "ジャンプコミックス" , "ジャンプ コミックス"@ja-Hrkt-Hrkt ;
14 schema:creator "[著]吾峠呼世晴" ;
15 schema:datePublished "2016-06-08" ;
16 schema:description "残酷" ;
17 schema:inLanguage "日本語" ;
18 schema:isPartOf <https://mediaarts-db.bunka.go.jp/id/C361806> ;
19 schema:isbn "9784088807232" ;
20 schema:location "東京" ;
21 schema:name "キメツ ノ ヤイバ"@ja-Hrkt-Hrkt , "鬼滅の刃" ;
22 schema:position "1.0" ;
23 schema:provider [ ma:materialIdentifier <https://id.ndl.go.jp/bib/027321240> ;
24 ma:note "2016-06" ;
25 ma:ownerIdentifier "2" ;
26 ma:subMaterialIdentifier "1" ;
27 schema:name "国立国会図書館" ;
28 schema:price "400円"
29 ] ;
30 schema:provider [ ma:materialIdentifier "10071400016547" ;
31 ma:note "1刷 / 付:帯・カバー / 付:「ジャンパラ!」(JUMP PARADISE) Vol.156" ;
32 ma:ownerIdentifier "6" ;
33 ma:subMaterialIdentifier "1" ;
34 schema:name "大阪府立中央図書館国際児童文学館" ;
35 schema:price "400円"
36 ] ;
37 schema:publisher "集英社 ∥ シュウエイシャ" ;
38 schema:size "18cm / 18cm × 12cm" ;
39 schema:volumeNumber "1" .
空白ノードの構文を使ってパターンを指定します。
1PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2PREFIX schema: <https://schema.org/>
3PREFIX ma: <https://mediaarts-db.bunka.go.jp/data/property#>
4PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
5
6SELECT
7 ?id ?label ?creator ?datePublished ?providerName
8WHERE {
9 ?item a class:MangaBook ;
10 schema:identifier ?id ;
11 rdfs:label ?label ;
12 schema:creator ?creator ;
13 schema:datePublished ?datePublished ;
14 schema:provider [
15 schema:name ?providerName
16 ] .
17}
18LIMIT 1000
参考: MADB Lab: データ利活用例その2:マンガの連携機関所蔵リスト
マンガ雑誌単号の掲載内容を取得する #
https://mediaarts-db.bunka.go.jp/id/M701954
1PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
2PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
3PREFIX schema: <https://schema.org/>
4PREFIX ma: <https://mediaarts-db.bunka.go.jp/data/property#>
5PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
6
7SELECT
8 ?magazineLabel ?pageStart ?pageEnd ?name ?alternativeHeadline
9WHERE {
10 <https://mediaarts-db.bunka.go.jp/id/M701954>
11 rdfs:label ?magazineLabel ;
12 schema:hasPart ?part .
13
14 ?part schema:name ?name ;
15 schema:pageStart ?pageStart ;
16 schema:pageEnd ?pageEnd ;
17 ma:pageExclude ?pageExclude .
18 OPTIONAL {
19 ?part schema:alternativeHeadline ?alternativeHeadline .
20 }
21}
22ORDER BY xsd:float(?pageStart)
「魔法少女」を含むタイトルを検索する #
CONTAINS
関数を使って、文字列の部分一致を条件に指定します。
1PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
2PREFIX schema: <https://schema.org/>
3PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
4
5SELECT *
6WHERE {
7 ?s rdfs:label ?label ;
8 schema:genre ?genre .
9 FILTER CONTAINS(?label, "魔法少女")
10}
11LIMIT 100
「マリオ」が登場する作品のゲームパッケージ #
1PREFIX schema: <https://schema.org/>
2PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
3PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
4PREFIX ma: <https://mediaarts-db.bunka.go.jp/data/property#>
5
6SELECT ?gamePackage ?gamePackageLabel
7WHERE {
8 ?gamePackage ma:embodimentOf ?gameVariation ;
9 rdfs:label ?gamePackageLabel .
10 ?gameVariation ma:variationOf ?gameWork .
11 ?gameWork schema:character ?character .
12 FILTER (CONTAINS(?character, "マリオ"))
13}
発行者毎にマンガ雑誌単号の数を集計する #
1PREFIX schema: <https://schema.org/>
2PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
3PREFIX ma: <https://mediaarts-db.bunka.go.jp/data/property#>
4
5SELECT ?publisher (COUNT(*) AS ?count) WHERE {
6 ?アイテム a class:MangaMagazineIssue ;
7 schema:publisher ?publisher
8}
9GROUP BY ?publisher
10HAVING (COUNT(*) >= 100)
11ORDER BY DESC(COUNT(*))
ゲームプラットフォーム毎にゲームパッケージ数を集計する #
1PREFIX schema: <https://schema.org/>
2PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
5
6SELECT ?platform (COUNT(*) AS ?count) WHERE {
7 ?s a class:GamePackage ;
8 schema:gamePlatform ?platform .
9}
10GROUP BY ?platform
11ORDER BY DESC(?count)
公開年毎にTVアニメシリーズ数を集計する #
1PREFIX schema: <https://schema.org/>
2PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
5
6SELECT ?y (COUNT(DISTINCT *) AS ?count) WHERE {
7 ?s a class:AnimationTVRegularSeries ;
8 schema:datePublished ?datePublished .
9}
10GROUP BY (SUBSTR(?datePublished, 1, 4) AS ?y)
11ORDER BY ASC(?y)
タイトルに「!」「?」を多く含むTVアニメシリーズを取得する #
REGEX
関数を使って正規表現パターンに一致する文字列を検索します。
1PREFIX schema: <https://schema.org/>
2PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
5
6SELECT ?name ?mark (STRLEN(?mark) AS ?length) WHERE {
7 ?s a class:AnimationTVRegularSeries ;
8 rdfs:label ?name .
9 FILTER(LANG(?name) = "")
10 FILTER (REGEX(?name, "[!!\\??]+"))
11 # 記号部分を抽出
12 BIND (REPLACE(?name, "[^!!\\??]*([!!\\??]+)[^!!\\??]*", "$1") AS ?mark)
13}
14ORDER BY DESC(STRLEN(?mark))
15LIMIT 100
※ 現在『てっぺんっ!!!!!!!!!!!!!!!』という「!」を15個含むタイトルのアニメが放送されており、恐らく過去最多を更新しました。
登場キャラクター名がタイトルであるアニメ #
schema:actor
の値として以下のような形式で記述されていることを利用し、正規表現を用いて検索します。
【キャラクター名】キャスト名 / 【キャラクター名】キャスト名 ...
1PREFIX schema: <https://schema.org/>
2PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
5SELECT
6 ?series ?genre ?seriesName ?actors
7WHERE {
8 ?series a ?animeColClasses ;
9 schema:name ?seriesName ;
10 schema:genre ?genre ;
11 schema:actor ?actors .
12 VALUES ?animeColClasses {class:AnimationTVRegularSeries class:AnimationTVSpecialSeries class:AnimationMovieSeries}
13 FILTER(LANG(?seriesName) = "")
14 # タイトルがキャラクター名と同じ
15 FILTER(REGEX(?actors, CONCAT("【", ?seriesName ,"】")))
16}
新海誠さんの参加作品を取得する #
schema:contributor
の値として以下のような形式で記述されていることを利用し、正規表現を用いて検索します。
[役割名]スタッフ名 / [役割名]スタッフ名 ...
1PREFIX schema: <https://schema.org/>
2PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
3PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
4PREFIX class: <https://mediaarts-db.bunka.go.jp/data/class#>
5
6SELECT
7 ?series ?seriesName (GROUP_CONCAT(DISTINCT ?role) AS ?roles)
8WHERE {
9 ?series a ?animeColClasses ;
10 schema:name ?seriesName ;
11 schema:genre ?genre ;
12 ^schema:isPartOf ?item .
13 VALUES ?animeColClasses {class:AnimationTVRegularSeries class:AnimationTVSpecialSeries class:AnimationMovieSeries}
14 {
15 ?series schema:contributor ?contributers .
16 } UNION {
17 ?item schema:contributor ?contributers .
18 }
19 FILTER(LANG(?seriesName) = "")
20 FILTER(REGEX(?contributers, "新海[\\s ]*誠"))
21 # 役割名だけを抽出する
22 BIND(REPLACE(?contributers, ".*\\[(.+?)\\]新海[\\s ]*誠.*", "$1") AS ?role)
23}
24GROUP BY ?series ?seriesName
-
メディア芸術データベース(ベータ版)データセット 2022年2月17日版(ver1.1)より ↩︎