From f2f392ce241fd6c767c08f46eb0844b64999ac39 Mon Sep 17 00:00:00 2001 From: Babibubebon Date: Thu, 8 Sep 2022 13:05:15 +0900 Subject: [PATCH] add queries --- content/docs/federated_query.md | 6 +++++- content/docs/mediaartsdb.md | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/content/docs/federated_query.md b/content/docs/federated_query.md index e9855e7..e8a7ab8 100644 --- a/content/docs/federated_query.md +++ b/content/docs/federated_query.md @@ -177,4 +177,8 @@ Wikipediaのカテゴリは上記のようなクエリで汎用的に使うこ 他にも以下のようなカテゴリを使うことで、いわゆる「聖地」による作品のキュレーションとして活用することができます。 -- [`http://ja.dbpedia.org/resource/Category:湘南を舞台とした作品`](http://ja.dbpedia.org/resource/Category:湘南を舞台とした作品) \ No newline at end of file +- [`http://ja.dbpedia.org/resource/Category:湘南を舞台とした作品`](http://ja.dbpedia.org/resource/Category:湘南を舞台とした作品) + - [Wikipedia: Category:湘南を舞台とした作品](https://ja.wikipedia.org/wiki/Category:%E6%B9%98%E5%8D%97%E3%82%92%E8%88%9E%E5%8F%B0%E3%81%A8%E3%81%97%E3%81%9F%E4%BD%9C%E5%93%81) +- [`http://ja.dbpedia.org/resource/Category:京都府を舞台とした作品`](http://ja.dbpedia.org/resource/Category:京都府を舞台とした作品) + - [Wikipedia: +Category:京都府を舞台とした作品](https://ja.wikipedia.org/wiki/Category:%E4%BA%AC%E9%83%BD%E5%BA%9C%E3%82%92%E8%88%9E%E5%8F%B0%E3%81%A8%E3%81%97%E3%81%9F%E4%BD%9C%E5%93%81) \ No newline at end of file diff --git a/content/docs/mediaartsdb.md b/content/docs/mediaartsdb.md index 5353a69..00c44b9 100644 --- a/content/docs/mediaartsdb.md +++ b/content/docs/mediaartsdb.md @@ -303,7 +303,42 @@ WHERE { schema:actor ?actors . VALUES ?animeColClasses {class:AnimationTVRegularSeries class:AnimationTVSpecialSeries class:AnimationMovieSeries} FILTER(LANG(?seriesName) = "") + # タイトルがキャラクター名と同じ FILTER(REGEX(?actors, CONCAT("【", ?seriesName ,"】"))) } {{< / yasgui-query >}} + +### 新海誠さんの参加作品を取得する {#anime-staff-name} +`schema:contributor` の値として以下のような形式で記述されていることを利用し、正規表現を用いて検索します。 + +``` +[役割名]スタッフ名 / [役割名]スタッフ名 ... +``` + +{{< yasgui-query yasgui-id="madb-lod" title="新海誠さんの参加作品を取得する" >}} +PREFIX schema: +PREFIX rdf: +PREFIX rdfs: +PREFIX class: + +SELECT + ?series ?seriesName (GROUP_CONCAT(DISTINCT ?role) AS ?roles) +WHERE { + ?series a ?animeColClasses ; + schema:name ?seriesName ; + schema:genre ?genre ; + ^schema:isPartOf ?item . + VALUES ?animeColClasses {class:AnimationTVRegularSeries class:AnimationTVSpecialSeries class:AnimationMovieSeries} + { + ?series schema:contributor ?contributers . + } UNION { + ?item schema:contributor ?contributers . + } + FILTER(LANG(?seriesName) = "") + FILTER(REGEX(?contributers, "新海[\\s ]*誠")) + # 役割名だけを抽出する + BIND(REPLACE(?contributers, ".*\\[(.+?)\\]新海[\\s ]*誠.*", "$1") AS ?role) +} +GROUP BY ?series ?seriesName +{{< / yasgui-query >}}