10

ダフトパンクのディスコグラフィーをdbpediaから入手したいのですが、アルバムごとに次のように表示します。1)タイトル2)リリース年3)ウィキペディアのページなので、次のクエリを作成しました。

PREFIX d: <http://dbpedia.org/ontology/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX : <http://dbpedia.org/resource/>

SELECT DISTINCT  str(?name) YEAR(?relDate) AS ?relYear ?wiki WHERE {
    ?album a d:Album .
    ?album foaf:name ?name .
    ?album d:artist :Daft_Punk .   
    ?album foaf:isPrimaryTopicOf ?wiki .
    ?album d:releaseDate ?relDate .       
}

ORDER BY ?relDate

2つの異なるリリース年を持つ1つのアルバム(Alive 2007)があるという事実を除いて、これは機能します(ここで見ることができます)が、2つのうちの最も早いものだけを示したいと思います。このアルバムが最初のデートで1回だけ表示されるようにするには、クエリをどのように編集すればよいですか?回答ありがとうございます。

4

1 に答える 1

7

SPARQL 1.1の機能を使用して結果がグループ化されている場合は、MIN 集計を使用してリリース年の最小値を抽出できます。GROUP BY

たとえば、次のようなものです。

PREFIX d: <http://dbpedia.org/ontology/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX : <http://dbpedia.org/resource/>

SELECT str(?name) MIN(YEAR(?relDate)) AS ?relYear ?wiki
WHERE {
    ?album a d:Album .
    ?album foaf:name ?name .
    ?album d:artist :Daft_Punk .   
    ?album foaf:isPrimaryTopicOf ?wiki .
    ?album d:releaseDate ?relDate .       
}
GROUP BY ?name ?wiki
ORDER BY ?relYear
于 2013-03-18T15:53:59.907 に答える