如何编写返回RDF列表的SPARQL CONSTRUCT查询?

时间:2017-05-27 21:59:43

标签: sparql rdf graph-databases

假设我在Turtle中表达了以下RDF三元组:

@prefix sorg: <http://www.schema.org/> .

<https://example.com/Foo> sorg:hasPart ( "item1" "item2" "item3" ) .

如何编写检索列表的SPARQL CONSTRUCT查询?如果不可能,我如何编写SELECT查询,以正确的顺序返回列表元素?我找到了this resource,但它似乎并不能保证按顺序返回元素。

1 个答案:

答案 0 :(得分:1)

这将为您构建 - 链接到原始属性以获取列表,以便您可以根据需要过滤等等(只需将内容和属性更改为您的用例)。

prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

CONSTRUCT {
    ?thing <urn:prop:to:list> ?list .
    ?listRest rdf:first ?head ; 
       rdf:rest ?tail .
} WHERE {
    ?thing <urn:prop:to:list> ?list .

    ?list rdf:rest* ?listRest .
    ?listRest rdf:first ?head ;
       rdf:rest ?tail .
}