我是图数据库的新手(尽管我对语义Web技术有丰富的经验),我想了解我所想到的是否有意义。
我有自己的数据模型,由Java的JavaBean对象组成,模型非常类似于一个图,有一个节点接口(和几个子类)、一个边缘接口(和几个子类)、查询模型的方法(获取带有属性= 'x‘的node实例、获取节点的所有边,等等)。
我想用其中一种查询语言(比方说Cypher或Gremlin)来包装这个模型,这样我就有了更标准化的东西,这样我就可以避免实现我自己的查询语言,最重要的是,我自己的查询引擎。
一种明显的方法是使用Neo4j或某些TinkerPop实现作为对象模型的后端(或者类似地,将对象转换/同步为其中一个框架的图)。但是,由于模型已经像图一样,有很好的搜索方法和高效的存储组件(对于或来自简单的XML文件),我也在想,也许我可以根据我的模型改编一种查询语言。TinkerPop似乎就是为了支持这一点而设计的。
这有道理吗?TinkerPop是最好的(或好的)方法吗?是否有关于这方面的文档/教程?
发布于 2018-12-15 07:44:51
作为SimpleGraph的参与者,我有着类似的需求,这使得我首先开始了SimpleGraph开源项目。
对于Pojos到和从Tinkerpop的转换,有一个ORM/OGM堆栈FERMA。
SimpleGraph的思想是“图形化”其他信息源,例如Excel或SQL数据库的表格结构。
由于您自己的数据结构显然已经以图形形式存在,因此与tinkerpop之间的映射要简单得多。在这种情况下,SimpleGraph方法将是节点和边缘结构之间的简单回退和强制(链接),因此每个tinkerpop节点对应于您的一个节点,而tinkerpop每个对应于您的边缘之一。我成功地使用了这种方法,例如,通过将XML结构元素映射到图形编辑器中的tinkerpop元素和图形表示元素来实现UML模型的图形表示。所以我的答案是:
我还没有看到您的用例的特定教程。如果您做了一些实验,例如使用SimpleGraph模块,您可能会感觉到事情是如何工作的。
https://stackoverflow.com/questions/46553607
复制相似问题