3

私は、他のソースから抽出されたグラフを操作するプロジェクトに取り組んでいます。現在、グラフの分析に python のnetworkxモジュールを使用しています。

私は今、グラフを保存するためのフォーマットを選択するという課題に直面しています。Pickle は、純粋に Python ベースのソリューションに適しているようです。ただし、現在はプロトタイプの段階にあり、パフォーマンスとスケーラビリティの問題のために C++ に切り替えなければならない可能性が非常に高くなります。

したがって、プロジェクトの将来の貢献者が直面する手間を最小限に抑えるために、ほとんどのグラフ ライブラリで広くサポートされている形式でグラフを保存したいと考えています。

どの形式を使用すればよいか、何か提案をいただけますか?

4

2 に答える 2

4

TGFはあなたのソリューションです。

パイソンの例:

 #!/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
于 2012-06-22T10:09:43.067 に答える
0

ここではあまり関係がありませんが、グラフベースのデータベースは役に立ちませんか?

たとえば、 Neo4jやAllegroGraphなどのオプションがいくつかあります。Pythonやその他の言語のバインディングも簡単に見つけることができ、ほとんどのソリューションでは REST API も提供されます。

私が提供した最初のリンクは最新のものではないことに注意してください。現在、より多くのソリューションがあり、Python 用の API は、書かれていない場合でも利用できます。こちらも参照してください(セクション グラフ データベース)。

編集これも見てみると興味深いことがわかりました.JSONスタイルまたは区切りテキストのいずれかでグラフを処理および保存するのに適した形式のようです:

また、こちらもご覧ください。

于 2012-06-22T10:34:08.073 に答える