我是数据库数据库的新手(尽管我在语义Web技术方面拥有丰富的经验),但我想了解一下我的想法是否有意义。
我有自己的数据模型,该模型由Java的JavaBean对象组成,该模型与图形非常相似,具有一个Node接口(和一些子类),Edge接口(和一些子类),查询模型的方法(获取属性='x'的Node实例,获取节点的所有边,等等)。
我想用其中一种查询语言(例如Cypher或Gremlin)包装该模型,以便进行更标准化的处理,从而避免实现自己的查询语言,最重要的是,我自己的查询引擎。
一种明显的方法是使用Neo4j或某些TinkerPop实现作为我的对象模型的后端(或者类似地,将我的对象转换/同步为那些框架之一的图形)。但是,由于该模型已经像图一样,具有良好的搜索方法和高效的存储组件(到/来自简单XML文件),因此我还认为也许可以使查询语言适合我的模型。 TinkerPop似乎旨在支持这一点。
这有意义吗? TinkerPop是最好的(或好方法)吗?是否有相关的文档/教程?
最佳答案
作为SimpleGraph的开发者,我有类似的需求,导致我开始
首先是SimpleGraph开源项目。
为了将Pojos与Tinkerpop之间进行转换,有一个ORM/OGM stack FERMA。
SimpleGraph的想法是“石墨化”其他信息源,例如Excel Tabels或SQL数据库的表格结构。
由于您自己的数据结构已经是图形形式,因此往返tinkerpop的映射显然要简单得多。在这种情况下,SimpleGraph方法将是节点和边缘结构之间的简单后推力(链接),以便每个tinkerpop节点对应于您的一个节点,tinkerpop每个对应于您的一个边缘。我已经成功使用了这种方法,例如通过将XML结构元素同时映射到图形编辑器中的tinkerpop元素和图形表示元素来实现UML模型的图形表示。所以我的答案是:
这有意义吗?是
TinkerPop是最好的(或好方法)吗?是
是否有相关的文档/教程?我不会说是和不是
我还没有看到针对您的用例的特定教程。如果您尝试一下使用SimpleGraph模块,您可能会感觉到事情是如何工作的。
关于java - 通过我的JavaBeans实现Apache TinkerPop,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46553607/