0

我想使用 SPARQL 构造查询生成一个 RDF 集合(即rdf:first/rdf:rest链表),将变量的所有分组绑定放入一个集合中。

所以对于数据

@prefix ex: <https://example.com/ns#> .
ex:example1  a          ex:Example ;
             ex:name    "Example1" ;
             ex:even    false .

ex:example2  a          ex:Example ;
             ex:name    "Example2" ;
             ex:even    true .

ex:example3  a          ex:Example ;
             ex:name    "Example3" ;
             ex:even    false .

ex:example4  a          ex:Example ;
             ex:name    "Example4" ;
             ex:even    true .

ex:example5  a          ex:Example ;
             ex:name    "Example5" ;
             ex:even    false .

如果 SELECT 查询

PREFIX ex: <https://example.com/ns#>
select (group_concat(?name) as ?names) where {
  ?a ex:even ?even;
  ex:name ?name 
} group by ?even

产量

names
Example1 Example3 Example5
Example2 Example4

包含作为 rdf 集合的绑定的相应CONSTRUCT查询会是什么样?names子,即类似于

( "Example1" "Example3" "Example5" )
( "Example2" "Example4")

(假设上面的TTL解释)

背景:我想使用 SHACL-AF SPARQLRules 生成 SHACL 形状,而我正在努力解决的一件事是生成sh:in (...)列表作为多个查询解决方案的聚合生成的位置。

4

0 回答 0