MADB Lab ロゴ メディア芸術データベース・ラボ

English

データセットおよびSPARQLクエリサービスの利用方法

Updated on 2021-10-13

メディア芸術データベースのデータ構成について

メディア芸術データベースのデータセットは、Linked Open Dataに対応した形式であるResource Description Framework(RDF)で記述されます。ここではデータの基本的な構造を概説します。より詳細なデータセットのメタデータスキーマについては MADBメタデータスキーマ仕様書をご参照ください。

メディア芸術データベースは、メディア芸術(ここではマンガ・アニメーション・ゲーム・メディアアートの4分野を指す)作品やその資料、所蔵情報などの対象物に関する情報を提供しています。本データセットでは、こうした提供する情報の記述対象をリソースと呼び、固有のIDに基づくURIを用いて記述しています。
メディア芸術データベースのデータモデルでは、作品を体現する資料を表す「アイテム」、アイテムの集合を表す「コレクション」という分類でリソースを整理しています。また、RDFでは同種のリソースが共通して備える特徴に基づき抽象化した概念をクラスと呼びます。本データセットのメタデータスキーマでは、アイテムをItemクラス、同一分野のアイテムのみで構成されるコレクションをCollectionクラス、複数の分野のアイテムで構成されるコレクションをCurationクラスとして定義しています。

マンガ分野のリソースを記述したデータの例を以下に図示します。リソースが属するクラスは rdf:type というプロパティで記述されています。この図に記述されたプロパティrdf:typeを確認すると、あるマンガ単行本を表すアイテムのリソースと、そのコレクションであるリソースが存在することが分かります。これら2つのリソースの関係は schema:isPartOf というプロパティで記述されます。また、このアイテムのリソースの所蔵情報は schema:provider というプロパティに入れ子の構造で記述されます。

リソースのURI

ItemクラスやCollectionクラス、Curationクラスのリソースには、https://mediaarts-db.bunka.go.jp/id/ にメディア芸術データベースID(MADB-ID)の組み合わせで生成される一意なURIが与えられています。MADB-IDは、ItemクラスのリソースにはM+連番、Collectionクラス、CurationクラスのリソースにはC+連番の規則に従って付与されています。

所蔵情報などの一部のリソースには参照可能なURIは与えられず、関連するリソースの一部の付加情報として記述されます。具体的には、RDF形式の本データセットにおいては、空白ノードとして記述されます。

データセットで使用する語彙

メディア芸術データベースのデータセットでは、Schema.orgやDCMI Metadata Termsなどの国際的に標準として用いられる語彙のほか、独自に定義する以下の語彙を使用します。

語彙 名前空間名 接頭辞
MADBMS独自語彙(クラス) https://mediaarts-db.bunka.go.jp/data/class/ class:
MADBMS独自語彙(プロパティ) https://mediaarts-db.bunka.go.jp/data/property/ ma:

Turtle形式:

メディア芸術データベースが提供しているデータについて

データセット

メディア芸術データベースでは、公開する全データをファイルとして公開・提供しています。このデータセットはウェブ上でデータを共有するための技術標準であるLinked Open Dataに対応した形式で記述され、誰でも自由に利用できます。ウェブサイト・ウェブAPIでは提供していない複雑な検索を御自身で行える他、他のデータベースとリンクさせて組み合わせて利用することが可能です。また、御自身で開発されるサービスに組み込んで御活用いただけます。
データセットの仕様や詳細についてはメディア芸術データベースのメタデータスキーマとして提供されています。

データセット・メタデータスキーマはダウンロードページよりダウンロードいただけます。
※GitHubからもダウンロードいただけます(https://github.com/mediaarts-db/dataset

SPARQL エンドポイント

使い方

まず、リソースのジャンルを示すプロパティschema:genre を用いて簡単なクエリを実行してみます。クエリ 1は、ジャンルが「マンガ雑誌単号」であるリソースを取得するクエリです。変数 ?アイテム に当該リソースのURIがバインドされ、クエリの結果として得られます。また、プロパティrdfs:label を用いて人間が識別するための名称を同時に取得しています。

クエリ1

PREFIX ma:     <https://mediaarts-db.bunka.go.jp/data/property/>
PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <https://schema.org/>
SELECT ?アイテム ?ラベル
WHERE {
?アイテム schema:genre "雑誌巻号" ;
rdfs:label ?ラベル .
}
LIMIT 1000
                    

→SPARQLクエリサービスで実行する

本データセットが提供する一部のリソースは、URIによって参照することができない空白ノードを用いて記述されています。例えば、あるマンガ雑誌単号の目次に関する情報は、プロパティ schema:hasPart の目的語にあたる空白ノードとして記述されます。
SPARQLでは、空白ノードに対するクエリは [] を用いた構文で次のように記述することができます。クエリ 2では、あるマンガ雑誌単号について、その内容細目(いわゆる目次)の情報を開始ページやサブタイトルなどの記述項目のセットとして取得し、ORDER BY句を用いて開始ページの小さい順にソートしています。

クエリ2

PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <https://schema.org/>
PREFIX ma:     <https://mediaarts-db.bunka.go.jp/data/property/>
PREFIX class:  <https://mediaarts-db.bunka.go.jp/data/class/>
SELECT
?マンガ雑誌単号ラベル ?開始ページ ?終了ページ ?マンガ雑誌内容細目ジャンル ?サブタイトル ?マンガ雑誌掲載履歴
WHERE {
<https://mediaarts-db.bunka.go.jp/id/M535428> a class:Item ;
    schema:genre "雑誌巻号" ;
    rdfs:label ?マンガ雑誌単号ラベル ;
    schema:hasPart [
      schema:genre ?マンガ雑誌内容細目ジャンル ;
      schema:pageStart ?開始ページ ;
      schema:pageEnd ?終了ページ ;
      schema:alternativeHeadline ?サブタイトル ;
      ma:relatedCollection ?マンガ雑誌掲載履歴 ;
    ] .
}
ORDER BY xsd:float(?開始ページ)
                    

→SPARQLクエリサービスで実行する

SPARQLでは、1つのクエリの中で他のSPARQLエンドポイントに対してクエリを実行することができます。つまり、複数のSPARQLエンドポイントに存在するデータをつなげた結果を得ることができます。このようなクエリをフェデレーテッドクエリ(federated query)と呼び、本エンドポイントは フェデレーテッドクエリhttps://www.w3.org/TR/2013/REC-sparql11-federated-query-20130321/に対応しています。
例えばクエリ 3では、メディア芸術データベースのリソースURIをもとに、SERVICE句で指定したWikidataのSPARQLエンドポイントに対してそのリソースのタイトルを取得するクエリを実行しています。Wikidataでは様々な言語で記述されたタイトルのデータが提供されており、このクエリではそれらをまとめて取得することができます。LANG(?タイトル)は、?タイトル の言語タグを取得するための記述です。

クエリ3

PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <https://schema.org/>
PREFIX ma:     <https://mediaarts-db.bunka.go.jp/data/property/>
PREFIX wdt:    <http://www.wikidata.org/prop/direct/>
SELECT
?wikidataEntity ?タイトル (LANG(?タイトル) AS ?言語タグ)
WHERE {
# 例: アニメ映画シリーズ「君の名は。 your name.」
<https://mediaarts-db.bunka.go.jp/id/C413599> schema:identifier ?メディア芸術データベースID .
SERVICE <https://query.wikidata.org/sparql> {
# wdt:P7886 はWikidataでメディア芸術データベースのID(URI)を示すプロパティ
?wikidataEntity wdt:P7886 ?メディア芸術データベースID ;
                rdfs:label ?タイトル .
}
}
                    

→SPARQLクエリサービスで実行する

制限
性能を考慮して以下の制限事項を設定しています。
  • リクエスト推定実行時間が60秒を超えることが想定される場合、エラーメッセージを表示します。
  • 同じIPアドレスから短時間で連続的な呼び出しを検知した場合、そのIPアドレスからの接続を一時的に遮断する場合があります。