如何将图形数据结构保存到文件?例如,软件的功能调用图

时间:2019-04-13 13:50:50

标签: data-structures graph graph-databases call-graph

我正在研究如何表示软件的功能调用图并将数据结构保存到文件中。我知道在内存中图形可以采用邻接表或正交表的形式。我的问题是如何将数据结构保存到文件中,以便以后可以将其重新加载到内存中以进行进一步的操作。它可以用json表示,还是用Graph数据库(例如Neo4j)表示?此外,如果转储到Neo4j中,是否可以计算函数调用相似度?

1 个答案:

答案 0 :(得分:0)

  

它可以用json表示还是用Graph数据库(例如Neo4j)表示?

都可以。 您可以使用json表示图,例如GraphSONJSON Graph等。 也可以将它们加载到诸如Neo4j之类的图形数据库中。

  

还有,如果转储到Neo4j中,是否可以计算函数调用相似度?

我不熟悉函数调用相似性,但是Neo4j的图形算法包(https://neo4j.com/docs/graph-algorithms/current/algorithms/similarity/)中有一些关于相似性的算法,您可以看看。

但是,如果您所有的计算都在内存中完成,这意味着您仅读取一次磁盘上的数据,然后选择自己进行计算,那么直接将内存图数据结构转储到磁盘上可能是一个更好的主意,易于实现,并可能为您提供更好的数据加载性能。

图形存储的格式高度依赖于图形计算的形式,因此,如果您可以提供一些有关计算函数调用相似性的信息,它将为我的回答提供很好的帮助。