我正在尝试使用特定图形完成一些相对简单的分析。
在Marklogic SPARQL中,路径使用以下模式创建
path+ (one or more duplicate path links)
path* (zero or more duplicate path links)
path? (zero or one path link)
path1/path2 (traversing through 2 different links)
从这里开始,我要实现的一项分析是检索满足节点X和节点Y之间特定条件的所有节点。基于此,我的查询将类似于
?nodeX <nodeID> 1
?nodeY <nodeID> 250
?nodeX <nodeLink>* ?nodeY
这对我来说似乎并不正确,因为我不认为这允许我检索将nodeX链接到nodeY的路径。
我还想知道是否可以做类似的事情
Betweeness centrality
,它衡量在图中每个顶点对的最短路径之间找到一个顶点的次数。
Closeness centrality
,它是一个顶点到图形中所有其他可达顶点的距离的度量。
==更新== 根据建议,我设法使用以下查询来检索路径。
?nodeX <nodeID> "1"
?nodeY <nodeID> "250"
?nodeX <nodeLink>* ?v
?v ?p ?u
?u <nodeLink>* ?nodeY
当我尝试在查询中执行<p> | !<p>
时发生错误,并指出!
不是有效的表达式。但是,我相信我仍然可以使用?path
来接受谓词。