Sparql 如何计算RDF三重存储中两个节点之间的路径长度?

Sparql 如何计算RDF三重存储中两个节点之间的路径长度?,sparql,rdf,jena,breadth-first-search,dijkstra,Sparql,Rdf,Jena,Breadth First Search,Dijkstra,我有一个RDF triple store,里面有30000多个triple。我想知道存储区中所有边的任意两个三元组之间的最短路径(如果它们之间存在路径) 和我要找的东西很相似。但是,建议的解决方案适用于树,我的解决方案将是一个具有多条路径和空白节点的有向图 是否可以使用SPARQL查询找到两个节点之间的最短路径长度?对于我的用例来说,性能根本不是问题 或者使用Dijkstra或BFS算法是更好的解决方案 谢谢你的帮助 简短回答:正如问题已经指出的那样,使用单个SPARQL查询是不可能的。这不是S

我有一个RDF triple store,里面有30000多个triple。我想知道存储区中所有边的任意两个三元组之间的最短路径(如果它们之间存在路径)

和我要找的东西很相似。但是,建议的解决方案适用于树,我的解决方案将是一个具有多条路径和空白节点的有向图

是否可以使用SPARQL查询找到两个节点之间的最短路径长度?对于我的用例来说,性能根本不是问题

或者使用Dijkstra或BFS算法是更好的解决方案


谢谢你的帮助

简短回答:正如问题已经指出的那样,使用单个SPARQL查询是不可能的。这不是SPARQL的用途。您必须使用其他一些图形数据库与它们的图形查询语言相结合,如Cypher、Gremlin、GraphQL等。或者,如果数据适合内存(30000个三元组很小,因此它肯定可以工作),则只需使用一个简单的图形库,如JGraphT即可。@AKSW非常感谢!这是很有帮助的。如果你为你的问题找到了一个合适的解决方案,你最终可以把它作为答案贴在这里。我可以想象,这个问题也与其他人相关,因此他们可能对如何绕过SPARQL的限制感兴趣。Cheers简短回答:正如问题已经指出的那样,使用单个SPARQL查询是不可能的。这不是SPARQL的用途。您必须使用其他一些图形数据库与它们的图形查询语言相结合,如Cypher、Gremlin、GraphQL等。或者,如果数据适合内存(30000个三元组很小,因此它肯定可以工作),则只需使用一个简单的图形库,如JGraphT即可。@AKSW非常感谢!这是很有帮助的。如果你为你的问题找到了一个合适的解决方案,你最终可以把它作为答案贴在这里。我可以想象,这个问题也与其他人相关,因此他们可能对如何绕过SPARQL的限制感兴趣。干杯