メディア芸術データベース

メディア芸術データベース(ベータ版) #

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
▶ 実行する

クリエイティブ・コモンズ・ライセンス By Shohei TOYOTA
この作品はクリエイティブ・コモンズ 表示 - 継承 4.0 国際ライセンスの下に提供されています。