👻
Cultural JapanのRDFストアに格納されている展覧会情報の活用
概要
Cultural JapanのRDFストアには、展覧会に関する情報が格納されています。rdf:type
にtype:展覧会
を指定する以下のようなクエリを用いて、一覧を取得できます。
PREFIX type: <https://jpsearch.go.jp/term/type/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select distinct * where {
?s rdf:type type:展覧会;
rdfs:label ?label .
}
これらの展覧会の情報を活用するための一例について紹介します。
展覧会の一覧
各展覧会は、jps:temporal
やjps:spatial
といった値を持っています。(これらは複数の値を持つ場合があります。)
https://ld.cultural.jp/data/apmoa-exhib-2021-soga
そこで以下のようなクエリにより、展覧会のメタデータを含む、一覧の取得を行うことができます。
PREFIX type: <https://jpsearch.go.jp/term/type/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema: <http://schema.org/>
PREFIX jps: <https://jpsearch.go.jp/term/property#>
select distinct
?s ?label ?access ?image
(GROUP_CONCAT(DISTINCT ?spatial_labels; separator="|") AS ?spacial_label)
(GROUP_CONCAT(DISTINCT ?temporal_labels; separator="|") AS ?temporal_label)
(GROUP_CONCAT(DISTINCT ?jps_temporals; separator="|") AS ?jps_temporal)
(GROUP_CONCAT(DISTINCT IF(BOUND(?descriptions), CONCAT(str(?descriptions), IF(lang(?descriptions) != "", CONCAT("@", lang(?descriptions)), "")), ""); separator="|") AS ?description)
(COUNT(DISTINCT ?workFeatured) AS ?countOfWorkFeatured)
where {
?s rdf:type type:展覧会;
rdfs:label ?label .
optional { ?s jps:accessInfo/schema:provider/rdfs:label ?access . }
optional { ?s schema:spatial/rdfs:label ?spatial_labels . }
optional { ?s schema:temporal/rdfs:label ?temporal_labels . }
optional { ?s jps:temporal/schema:description ?jps_temporals . }
optional { ?s schema:description ?descriptions . }
optional { ?s schema:image ?image . }
optional {?s schema:workFeatured ?workFeatured }
}
group by ?s ?label ?spatial_label ?temporal_label ?description ?jps_temporal ?access ?image
order by ?s
複数の値を持ちうるschema:description
について、結果を|
でつなぐ、といった処理を加えています。
まとめ
本記事では展覧会の一覧を取得する部分までしか辿りつきませんでした。IIIFコレクションへの変換や、各展覧会の情報の活用などについては、別の記事に記載したいと思います。
Cultural JapanのRDFストアの活用、および、同一のフィールドに複数の値を持ちうるレコードに対する検索を行う際などの参考になりましたら幸いです。
Discussion