我的RDF如下:
resource: r1 <dc:title>Mathematics</dc:title><dc:title>Chemistry</dc:title><dc:size>39</dc:size>
resource:r2 <dc:title>Biology</dc:title><dc:size>42</dc:size>
我有这个SPARQL查询来提取值:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
select distinct ?resource ?title ?size where {
?resource dc:title ?title
?resource dc:size ?size
}
结果:
resource title size
r1 Mathematics 39
r1 Chemistry 39
r2 Biology 42
但我希望得到以下结果:
resource title size
r1 Mathematics, Chemistry 39
r2 Biology 42
我该如何解决这个问题?
答案 0 :(得分:2)
要获得资源组合组。这也允许您使用GROUP_CONCAT
将标题修改为字符串(具体顺序取决于评估)。
PREFIX dc: <http://purl.org/dc/elements/1.1/>
select ?resource ?size (GROUP_CONCAT(?title) AS ?titles) where {
?resource dc:title ?title
?resource dc:size ?size
} GROUP BY ?resource ?size
但是您可能更好地进行排序并在应用程序代码中进行细粒度处理:
ORDER BY ?resource ?size ?title
而不是GROUP BY
。