我使用Corese在简单的FOAF文件中找到节点之间的最短路径,如下所示:
但是,当我使用以下查询时,它不会给我最短的路径。由于图形具有带循环的不同路径,因此结果仅包括每个节点的一条路径,该路径不是最短的路径。
查询:
select ?x ?y (pathLength($path) as ?p)
where { ?x s (foaf:knows)+::$path ?y.
graph $path {?x foaf:knows ?pd}.
?x foaf:nick "Ali". }
结果:
...
source target shortest path length
<http://www.example.org/Ali> to <http://www.example.org/Yu> 10
...
正如您所看到的,“Ali”有一个直接路径“Yu”,但查询提供了更长的路径。我在查询中遗漏了什么吗?