data-structures - 持久表达有向图的最标准文件格式和表示法是什么?

标签 data-structures rdf file-format directed-graph graphml

我对持久化个体有向图感兴趣。这个问题并不是要求一个全面的图数据库解决方案,而是要求一种我可以用来保存和单独任意有向图的文档格式。 我不知道什么符号和文件格式是最明智的选择。

我主要关心的是:

  1. 表现力/灵 active - 我希望能够表达不同类型的图表。虽然标准用例是一个简单的有向图,但应该可以表达树,cyclical graphs , multi-graphs 。至少,我希望支持边缘和节点的标记和加权。用于描述 higraphs 的符号和 edge composition/hyper-edges也将是非常可取的,尽管我知道这样的解决方案可能不存在。

  2. 类型系统独立性 - 我对表示图的结构质量感兴趣。一些解决方案包括用于类型化边和节点的可扩展类型系统(例如 RDF/OWL )。如果有明确定义的类型元素规范分解为基元(节点/边/属性),我只会对这种表示感兴趣。我在这里试图避免的是等效图的多重表示的能力,其中等价性是不可辨别的。

  3. 规范表示 - 应该有一种机制允许图被规范地表示(这样规范表示的词汇等价性可以用来确定等价性)。

  4. 与演示无关 - 我更喜欢不依赖于图表演示的表示法。这将包括空间方向、颜色、字体等。我只对表示数据感兴趣。我不喜欢的功能之一 DOT language , DGMLSVG (至少对于这个特定目的)是对视觉表示的关注。

  5. 标准化/开放/兼容 - 我需要做的实现工作越少越好。如果格式是标准化的并且已经存在用于处理该格式的可靠工具,那么它是更可取的。伴随此要求的是另一个要求,即格式应该高度兼容。 Microsoft's DGML的专有性质这是我厌恶的一个原因,尽管有 Visual Studio 工具并且我主要使用 .NET(现在)。 W3C 发布 RDF 标准的事实是考虑将 RDF 的有限子集作为表示工具的动机。我也很欣赏GXLGraphML ,因为他们有详细记录的 xml 模式,从而促进了将其数据与任何 xml 兼容的软件包集成的能力。

  6. 简单/可读性 - 我欣赏人类可读的语法和易于解释的能力。我也很欣赏简化解析的表示法。为此,我喜欢GML ,但我担心它还不够主流,不足以成为现实的选择。我也会考虑JSONYAML为了可读性,如果它们各自表示复杂(非 DAG)结构的能力不那么受限的话。

  7. 效率/简洁表示 - 值得考虑的是,无论我最终选择什么格式,都不可避免地必须通过某些网络进行持久化和传输。因此,文件大小是一个相关的考虑因素。

概述

我认识到我很可能无法找到满足我愿望 list 上所有标准的解决方案。我只是要求最接近我想要的文件格式,并且对于不支持的用例不限制可扩展性

最佳答案

关于data-structures - 持久表达有向图的最标准文件格式和表示法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16364294/

相关文章:

sparql - DELETE/INSERT 操作可用于删除包含空白节点的三元组 : how?

sql-server - sqflt8、sqlmoney 和其他原生 SQL 数据类型的二进制存储格式是什么?

python - 使用 python(字节数组和 numpy)读取 middlebury 'flow' 文件

c++ - 如何将 C++ 映射传递到 RTI DDS connext 发布者并在 RTI 订阅者处接收

data-structures - Clojure 中的多态性

python - 从 Excel 到分割的 Python 结构

algorithm - 如何找到字符串的排列?

java - 如何通过Jena API生成rdf集合?

rdf - 如何使用 Jena 创建获取某种类型资源的方法?

delphi - BDE 对 .sch 模式文件使用什么标准?