概要
本章では、ジャパンサーチのRDFストアに対して、更新日ごとに関連するCHO(Cultural Heritage Object)の数をカウントし、最新の日付から降順にソートして表示するSPARQLクエリを紹介します。このクエリは、ジャパンサーチのデータ全体の更新状況を時系列で俯瞰するために有用です。
CHO(Cultural Heritage Object)とは
ジャパンサーチの利活用スキーマにおいて、CHO(Cultural Heritage Object、文化遺産オブジェクト)は、書籍、絵画、彫刻、写真、地図など、あらゆる文化資源のメタデータを表現するための中心的な概念です。各CHOは一意のURIを持ち、jps:sourceInfoを通じてソース情報(データ提供元の情報や更新日など)に関連付けられています。
RDFのトリプル(主語・述語・目的語の3つ組)で表現すると、例えば以下のようになります。
ここでcobas-12345がCHOのURIであり、そのソース情報を通じて更新日2023-08-01が記録されています。
SPARQLクエリ
基本的なクエリ
以下のクエリは、更新日ごとのCHO数をカウントし、最新の日付から順にソートして表示します。
PREFIX jps: <https://jpsearch.go.jp/term/property#>
PREFIX schema: <http://schema.org/>
SELECT ?date (COUNT(?cho) AS ?count) WHERE {
?cho jps:sourceInfo/schema:dateModified ?date .
}
GROUP BY ?date
ORDER BY DESC(?date)
クエリの解説
?cho jps:sourceInfo/schema:dateModified ?date: プロパティパスを使用して、CHOからソース情報を経由して更新日を一度に取得しています。jps:sourceInfoとschema:dateModifiedの2つのプロパティを/で連結することで、中間ノード(ソース情報)を明示的に記述せずに済みます。COUNT(?cho) AS ?count: 各更新日に関連するCHOの数をカウントします。COUNTはSPARQLの集約関数で、グループ内の行数を数えます。GROUP BY ?date: 更新日ごとにグループ化します。GROUP BYを使用しないと、COUNTは全体の件数を1つだけ返します。ORDER BY DESC(?date):DESC(降順)を指定して、最新の日付から順に結果を表示します。ASCに変更すると、最も古い日付から順に表示されます。
LIMIT付きクエリ
結果が多い場合は、LIMITを使って表示件数を制限できます。
PREFIX jps: <https://jpsearch.go.jp/term/property#>
PREFIX schema: <http://schema.org/>
SELECT ?date (COUNT(?cho) AS ?count) WHERE {
?cho jps:sourceInfo/schema:dateModified ?date .
}
GROUP BY ?date
ORDER BY DESC(?date)
LIMIT 30
このクエリでは、最新の30日分のデータのみを取得します。
年単位での集計
日単位ではなく年単位で集計したい場合は、YEAR関数を使用します。
PREFIX jps: <https://jpsearch.go.jp/term/property#>
PREFIX schema: <http://schema.org/>
SELECT ?year (COUNT(?cho) AS ?count) WHERE {
?cho jps:sourceInfo/schema:dateModified ?date .
BIND(YEAR(?date) AS ?year)
}
GROUP BY ?year
ORDER BY DESC(?year)
BIND式を使って日付から年を抽出し、年ごとにグループ化しています。この形式のクエリは、ジャパンサーチのデータ蓄積の長期的な推移を把握するのに適しています。
出力結果の例
クエリの実行結果として、以下のような形式のデータが得られます。
| date | count |
|---|---|
| 2023-08-15 | 15000 |
| 2023-08-14 | 8500 |
| 2023-08-10 | 12000 |
| 2023-07-25 | 5000 |
| 2023-07-20 | 22000 |
| … | … |
各行は、その日に更新されたCHOの数を示しています。数値の大きい日には、大規模なデータ更新やバッチ処理が行われたことが推測されます。
時系列分析の観点
このクエリの結果を時系列で分析すると、以下のような知見を得ることができます。
- データ更新の頻度: データが定期的に更新されているか、不定期に更新されているかを把握できます。
- 大規模更新のタイミング: 特定の日に大量のデータが更新されている場合、新しいデータセットの追加や既存データの一括更新が行われたことが分かります。
- データ品質のモニタリング: 更新が長期間途切れている場合、データ連携に問題が生じている可能性を示唆します。
RDFストアのトリプル数やその構成を分析することは、データセットの全体像を理解するための重要な手法です。本クエリのような集計は、ジャパンサーチのようなアグリゲーションサービスにおけるデータの動態を把握するための基礎的なアプローチとなります。
関連記事
- RDFストアのトリプル数を数える2: 共起頻度 - RDFトリプルに対する共起頻度の計算方法について紹介しています。ジャパンサーチのRDFストアを例として、集約クエリの活用方法を解説しています。