如何在Java中使用Gremlin/Tinkerpop?

如何在Java中使用Gremlin/Tinkerpop?,java,artificial-intelligence,gremlin,tinkerpop3,Java,Artificial Intelligence,Gremlin,Tinkerpop3,我正在从事一个项目,该项目涉及在Java中使用知识表示,我得到的印象是某种语义网络是实现这一点的方法 Gremlin/Tinkerpop对于图形生成和遍历似乎有很好的语法,但我只能让它在独立的shell中工作。它是一种JVM语言,所以它大概有某种JavaAPI?我尝试将源文件夹添加到Eclipse项目中,但结果却是错误百出,无法正常工作 有更好的方法吗?可能是一个编译库,类似于我用来处理用户输入的斯坦福CoreNLP库?Tinkerpop 3提供了一个API(就像JDBC用于RDBMS)和(特定

我正在从事一个项目,该项目涉及在Java中使用知识表示,我得到的印象是某种语义网络是实现这一点的方法

Gremlin/Tinkerpop对于图形生成和遍历似乎有很好的语法,但我只能让它在独立的shell中工作。它是一种JVM语言,所以它大概有某种JavaAPI?我尝试将源文件夹添加到Eclipse项目中,但结果却是错误百出,无法正常工作

有更好的方法吗?可能是一个编译库,类似于我用来处理用户输入的斯坦福CoreNLP库?

Tinkerpop 3提供了一个API(就像JDBC用于RDBMS)和(特定于供应商的)实现。内存中的参考实现也可用。 因此,首先您需要决定您需要的实现。出于学习目的,我建议首先使用参考实现(TinkerGraph)

最简单的开始方法是使用maven。为此,请添加以下依赖项:

<dependency>
    <groupId>org.apache.tinkerpop</groupId>
    <artifactId>tinkergraph-gremlin</artifactId>
    <version>${tinkergraph.version}</version>
</dependency>
现在,您可以在Java(或其他JVM基础)语言中使用API

Graph g = TinkerGraph.open(); // open in-memory Graph

注意:Tinkerpop3需要Java 8(它提供了一个基于Java 8流和lambdas的非常好的API!)。

我知道这并不是直接回答你的问题,但我当时就在你现在的位置,这些信息可能会派上用场

我们目前正在使用tinkerpop 3.0.1——与titan 1.0.0一起孵化,用于一个正在工作的项目。 我强烈建议你仔细检查一下

我目前正在尝试一种设计模式,其中groovy中有一个基本的graph utilities类(gremlin groovy与您提到的独立shell非常相似)。 utils类的要点是包装所有遍历、访问和检索功能(从node/sx、遍历边y和获取propz,等等)。这一点很重要,因为tinkerpop往往会在不同版本之间进行一些更改,这是一个单一的更改点。 然后我使用常规java和这个UTIL类来实现我自己的ORM之类的东西

下面是一些我觉得有用的groovy源代码(每个视频大约4分钟):

PS:下面是一些有用的groovy代码片段,可以节省您的时间:

注意.fill(result)作为一种从shell获取信息的方法

def result = []
g.V().values().fill(result)
return result.first()
def result = []
g.V().values().fill(result)
return result.first()