用于存储图形的格式

时间:2012-06-22 10:04:54

标签: python graph bulbs tinkerpop

我正在开展一个项目,该项目涉及使用从其他来源提取的图表。目前我们使用python的networkx模块来分析图形。

我现在面临的选择是存储图形的格式。对于纯粹基于python的解决方案来说,Pickle似乎是一个不错的选择。但是,我们现在处于原型设计阶段,我们很有可能必须切换到C ++以获得性能和可伸缩性问题。

因此,我希望我的图表以大多数图形库广泛支持的格式存储,以最大限度地减少项目中未来贡献者所面临的麻烦。

请您就我应该使用哪种格式给我一些建议?

2 个答案:

答案 0 :(得分:4)

TGF是您的解决方案。

python示例:

 #!/usr/bin/python

import fileinput, re

depends = {}
for line in fileinput.input():
    m = re.match('(.+):\s*(.*)',line) # find every depenency line of the form "<item>: <dependencies>"
    if m:
        item = m.group(1)
        dependency_list = m.group(2)
        print item,item # node definition

        if dependency_list: # there are dependencies
            depends[item] = dependency_list.split() # store the list into a dictionary for later

print "#" # end of node list, start of edge list

for item in depends:
    for dependency in depends[item]:
        print item,dependency # edge definition

答案 1 :(得分:0)

我不是在这里非常相关,但是graph-based database不会做这个工作吗?

您有几个选项,例如Neo4jAllegroGraph,您可以轻松找到几个用于python或任何其他语言的绑定,并且大多数解决方案还提供了REST API

注意我提供的first link不是最新的,现在有更多的解决方案,即使它写的不是,也可以使用Python的API它。您还可以查看here(图表数据库部分)。

编辑我发现看起来也很有趣,它似乎是一个合适的格式,用于处理和存储JSON样式或分隔文本的图形:

另外,您可能需要查看此处: