我正在尝试编写一个SPARQL查询,它允许我找到从给定节点可到达的所有节点。目前,每条边都有前缀http://www.foo.com/edge#,并且有3条可能的边(使用、扩展、实现)。虽然我可以从"?start ( edge: uses | edge:implements | edge:extends)* ?reached“得到正确的结果,但我想将其简化为一条语句,在edge :之后添加某种通配符,这样如果我添加了更多的边类型,就不需要扩展查询了。这个是可能的吗?
发布于 2012-12-03 19:29:11
查看此SPARQL - Restricting Result Resource to Certain Namespace(s)
如果您知道它将始终位于同一个名称空间中,那么您的代码可能如下所示:
?start ?edge ?reached
FILTER(REGEX(STR(?var), "^http://www.foo.com/edge#"))
https://stackoverflow.com/questions/13678069
复制相似问题