我正在尝试编写一个SPARQL查询,它允许我查找从给定节点可到达的所有节点。目前,每个边都有前缀http://www.foo.com/edge#,并且有3个可能的边(使用,扩展,实现)。虽然我可以从“?start(edge:uses | edge:implements | edge:extends)*?到达”得到正确的结果“我想把它减少到一个语句,在edge之后的某种通配符:所以如果我添加了更多的边缘类型,然后我不需要扩展查询。这可能吗?
答案 0 :(得分:3)
请参阅此SPARQL - Restricting Result Resource to Certain Namespace(s)
如果你知道它总是在同一个命名空间中,你可能会看到:
?start ?edge ?reached
FILTER(REGEX(STR(?var), "^http://www.foo.com/edge#"))