Linked Dataの基盤技術となるRDFへ問い合わせを行う言語、SPARQLには様々な関数が用意されています。今回は基本となる集計関数をご紹介いたします。
目次
COUNT
集約グループごとに変数に含まれる値の数をカウント。
例.日本語版DBpediaでビートたけしが監督した映画の数をカウントする。
select (count(?film) as ?count)
where {
?film dbpedia-owl:director dbpedia-ja:ビートたけし .
}
SUM
集約グループごとに変数の値を合計する関数。
例. 日本語版DBpediaでビートたけしが監督した映画の上映時間を合計する。
select (sum(?screen_time) as ?sum)
where {
?film dbpedia-owl:director dbpedia-ja:ビートたけし ;
prop-ja:上映時間 ?screen_time .
}
MIN・MAX
集約グループごとに変数の最小値、最大値をそれぞれ返す関数。
例. 日本語版DBpediaでビートたけしが監督した映画の上映時間が最小のものと最大のものを取得する。
<最小値>
select (min(?screen_time) as ?min)
where {
?film dbpedia-owl:director dbpedia-ja:ビートたけし ;
prop-ja:上映時間 ?screen_time .
}
<最大値>
select (max(?screen_time) as ?max)
where {
?film dbpedia-owl:director dbpedia-ja:ビートたけし ;
prop-ja:上映時間 ?screen_time .
}
AVG
集約グループごとに変数の最小値、最大値をそれぞれ返す関数。
例. 日本語版DBpediaでビートたけしが監督した映画の上映時間の平均値を取得する。
select (avg(?screen_time) as ?avg)
where {
?film dbpedia-owl:director dbpedia-ja:ビートたけし ;
prop-ja:上映時間 ?screen_time .
}