5

我正在使用最新的社区 Neo4j (2.2.0-M03) 来存储我的图表。我有兴趣从 Python 访问它。根据 Neo4j 官方文档,有几种选择。

根据我通过检查文档、玩了一会儿和检查这篇文章的理解,py2neo 是唯一支持 Neo4j 2(和标签)的。但是,如果我想在 Neo4j 上编写和运行特定算法,我应该通过灯泡使用 Gremlin,但它似乎不支持 Neo4j 2。

现在,我想使用一些目前不在 Neo4j 中的自定义算法,比如传播激活。是否直接在 Java 中的 Neo4j 中编写算法并通过 py2neo 使用密码命令从 Python 运行它们是唯一的选择?我错过了什么吗?

干杯

PS。我想发布我引用的所有软件的链接,但不幸的是,我需要至少 10 个声誉才能发布超过 2 个链接...

4

1 回答 1

4

这是一个非常棘手的问题,您似乎需要设计指导而不是一个快速的 neo4j 问题。根据您使用传播激活的方式,最好不要修改服务器,但我无法确定,因为可能涉及您的用例。请记住,您始终可以将 neo4j 用作图形存储,然后将更高级别的概念(例如传播激活)放入应用程序代码中,而不是服务器中。

这个问题假设我认为你想把它放在服务器中。那么有哪些选择呢?从广义上讲,您可以编写一个服务器插件并扩展 RESTful API(这对您使用 py2neo 没有帮助)另一方面,我认为现在不支持定义您自己的自定义密码函数,所以您不一定修改密码语言本身,然后使用 py2neo 绑定来利用一个花哨的新密码功能。 其他地方给出的建议表明您可能需要考虑对实施的传播激活进行非托管扩展。如果您再次这样做,我看不出 py2neo 会如何帮助您。

短期内,我认为你应该考虑不要修改 neo4j 本身,而是将你的传播激活放在可能使用 py2neo 的 python 代码中。从长远来看,如果 neo4j 提出了一种执行密码用户定义函数 (UDF) 的方法,我理解这是在开发路线图上(也许?),那么这可能是一个更好的选择,但我不会推荐它没有很多更多的要求和细节。

于 2015-01-30T17:13:08.613 回答