clojure Ogre 添加顶点

clojure Ogre adding vertices

我正在使用 Clojure/Ogre 在 Tinkergraph 中添加顶点。由于我对这项技术很陌生,我想我可能错过了一些东西。

这是我尝试过的:

(def graph (open-graph {(graph/GRAPH) (.getName org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph)}))

(def g (traversal graph))

(traverse g (add-V :person) (property :name "Dave"))

在这些步骤之后,当我输入 'graph' 时,我看到没有添加任何顶点 - 输出如下:

#object[org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph 0x710f92c7 "tinkergraph[顶点:0 edges:0]"]

我猜是漏掉了非常简单的步骤之类的,但无法弄清楚。

非常感谢您的宝贵时间。期待解决方案


非常感谢斯蒂芬!如果你不介意的话,我还有一个问题。 根据您的评论,我添加了如下代码:

(def dave (traverse g (add-V :person) (property :name "Dave") (iterate!)))
(def josh (traverse g (add-V :person) (property :name "Josh") (iterate!)))

在此之后,现在我想在 dave 和 josh 之间添加一条边线。 我试过了:

(traverse g V (add-E :friends) (from dave) (to ted) (iterate!))

其中 returns 有错误。 我又在这里遗漏了什么吗? 提前致谢!

无论您使用哪种编程语言,您总是需要 iterate your traversal. In other words, you need a traversal termination step like iterate(), `toList(), etc. See the Ogre documentation 在“遍历”部分中列出这些内容,但基本上您只需要执行以下操作:

(traverse g (add-V :person) (property :name "Dave") (iterate!))

注意 iterate! 不是 return 遍历的结果。它只是消耗它。如果您需要遍历的结果,那么您需要查看其他终止步骤。在特定情况下,您希望拥有 Vertex 对象,因此您可能会使用 next!