我正在尋找Gremlin版本的可自定義的PageRank算法。有幾個舊版本,其中一個(從:http://www.infoq.com/articles/graph-nosql-neo4j)被粘貼在下面。我無法將流程融入當前基於GremlinGroovyPipeline的結構中。什麼是現代化的相當於這個或類似的東西?Gremlin中可自定義的PageRank算法?
$_g := tg:open()
g:load('data/graph-example-2.xml')
$m := g:map()
$_ := g:key('type', 'song')[g:rand-nat()]
repeat 2500
$_ := ./outE[@label='followed_by'][g:rand-nat()]/inV
if count($_) > 0
g:op-value('+',$m,$_[1]/@name, 1.0)
end
if g:rand-real() > 0.85 or count($_) = 0
$_ := g:key('type', 'song')[g:rand-nat()]
end
end
g:sort($m,'value',true())
另一版本可在幻燈片55的http://www.slideshare.net/slidarko/gremlin-a-graphbased-programming-language-3876581上找到。使用if語句並根據它們更改遍歷的能力對於定製非常有用。
千恩萬謝