选择(组合)多个属性值 - SPARQL / RDF(Select (combine) multi

2019-10-19 16:00发布

我有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

我怎么解决这个问题?

Answer 1:

为了得到?对IT资源的联合组。 这也允许你使用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



文章来源: Select (combine) multiple attribute values - SPARQL / RDF
标签: rdf sparql