我正在开展一个项目,该项目涉及使用从其他来源提取的图表。目前我们使用python的networkx模块来分析图形。
我现在面临的选择是存储图形的格式。对于纯粹基于python的解决方案来说,Pickle似乎是一个不错的选择。但是,我们现在处于原型设计阶段,我们很有可能必须切换到C ++以获得性能和可伸缩性问题。
因此,我希望我的图表以大多数图形库广泛支持的格式存储,以最大限度地减少项目中未来贡献者所面临的麻烦。
请您就我应该使用哪种格式给我一些建议?
答案 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不会做这个工作吗?
您有几个选项,例如Neo4j或AllegroGraph,您可以轻松找到几个用于python或任何其他语言的绑定,并且大多数解决方案还提供了REST API
注意我提供的first link不是最新的,现在有更多的解决方案,即使它写的不是,也可以使用Python的API它。您还可以查看here(图表数据库部分)。
编辑我发现看起来也很有趣,它似乎是一个合适的格式,用于处理和存储JSON样式或分隔文本的图形:
另外,您可能需要查看此处: