Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在我的JavaBeans上实现Apache TinkerPop_Java_Neo4j_Cypher_Gremlin_Tinkerpop3 - Fatal编程技术网

在我的JavaBeans上实现Apache TinkerPop

在我的JavaBeans上实现Apache TinkerPop,java,neo4j,cypher,gremlin,tinkerpop3,Java,Neo4j,Cypher,Gremlin,Tinkerpop3,我不熟悉图形数据库(尽管我对语义Web技术有着丰富的经验),我想了解我的想法是否有意义 我有自己的数据模型,由Java的JavaBean对象组成,该模型非常类似于一个图,有一个节点接口(和一些子类)、一个边缘接口(和一些子类)、查询模型的方法(获取属性为'x'的节点实例、获取节点的所有边缘等) 我想用其中的一种查询语言(比如Cypher或Gremlin)来包装这个模型,这样就有了更标准化的东西,这样我就可以避免实现我自己的查询语言,最重要的是,我自己的查询引擎 一个明显的方法是使用Neo4j或一

我不熟悉图形数据库(尽管我对语义Web技术有着丰富的经验),我想了解我的想法是否有意义

我有自己的数据模型,由Java的JavaBean对象组成,该模型非常类似于一个图,有一个节点接口(和一些子类)、一个边缘接口(和一些子类)、查询模型的方法(获取属性为'x'的节点实例、获取节点的所有边缘等)

我想用其中的一种查询语言(比如Cypher或Gremlin)来包装这个模型,这样就有了更标准化的东西,这样我就可以避免实现我自己的查询语言,最重要的是,我自己的查询引擎

一个明显的方法是使用Neo4j或一些TinkerPop实现作为我的对象模型的后端(或者类似地,将我的对象转换/同步到这些框架之一的图形)。然而,由于该模型已经是类似于图形的,具有良好的搜索方法和高效的存储组件(从简单的XML文件到/从简单的XML文件),我也在想,也许我可以将查询语言适应于我的模型。TinkerPop似乎就是为了支持这一点而设计的


这有意义吗?小叮当是最好的(或好的)方式吗?是否有相关的文档/教程?

作为SimpleGraph的编撰者,我有类似的需求,促使我开始了 首先是开源项目

对于Pojo与Tinkerpop之间的转换,有

SimpleGraph的思想是将其他信息源“图形化”,例如Excel表格或SQL数据库的表格结构

由于您自己的数据结构已经是图形形式,显然与tinkerpop的映射要简单得多。在本例中,SimpleGraph方法是在的节点和边结构之间建立一个简单的反向力(链接),以便每个tinkerpop节点对应于您的一个节点,tinkerpop每个对应于您的一条边。我已经成功地使用了这种方法,例如,通过同时将XML结构元素映射到tinkerpop元素和图形编辑器中的图形表示元素,来实现UML模型的图形表示。因此,我的答案是:

  • 这有意义吗
  • 小叮当是最好的(或好的)方式吗
  • 是否有相关的文档/教程我对这件事既不同意也不反对

我还没有看到针对您的用例的特定教程。如果您尝试一下,例如使用SimpleGraph模块,您可能会感觉到事情是如何工作的

您是否可以选择使用Spring框架?如果是这样,你可以考虑。不过,对于您的用例来说,它可能太重了。谢谢@GaborSzarnyas,这似乎是一个有趣的选择,尽管这不是我想要的(可以使用neo4j作为后端,使用Java中的数据模型定义,我想使用我自己的对象/组件作为Cypher或其他查询语言的后端)。非常感谢,@Wolfang Fahl。SimpleGraph看起来很棒,我试试看。