個々の有向グラフを永続化することに興味があります。この質問は、本格的なグラフ データベース ソリューションを求めているのではなく、保存に使用できるドキュメント形式と個々の任意の有向グラフを求めています。 どの表記法とファイル形式が最も賢明な選択になるかはわかりません。
私の主な懸念事項は次のとおりです。
表現力・柔軟性- さまざまな種類のグラフを表現できる能力が欲しい。標準的なユースケースは単純な有向グラフですが、ツリー、循環グラフ、マルチグラフを表現できるはずです。最低限、エッジとノードのラベル付けと重み付けのサポートを期待します。ハイグラフとエッジ構成/ハイパーエッジを記述するための表記法も非常に望ましいですが、そのようなソリューションが存在しない可能性があることは承知しています。
Type System-Independence - グラフの構造的な性質を表現することに興味があります。一部のソリューションには、型指定されたエッジとノード用の拡張可能な型システムが含まれています (例: RDF / OWL )。型付き要素のプリミティブ (ノード/エッジ/属性) への明確に定義された標準的な分解がある場合にのみ、そのような表現に興味があります。ここで私が避けようとしているのは、同等性が識別できない同等のグラフの複数の表現の機能です。
Canonical Representation - グラフを標準的に表現できるメカニズムが必要です (canonical-representations の語彙的等価性を使用して等価性を判断できるような方法で)。
プレゼンテーションに依存しない - グラフの表示に依存しない表記法を希望します。これには、空間的な向き、色、フォントなどが含まれます。データを表すことにのみ関心があります。DOT language、DGML、またはSVGについて(少なくともこの特定の目的では)気に入らない機能の 1 つは、視覚的表現に重点を置いていることです。
標準化 / オープン / 互換性- 私がしなければならない実装作業が少ないほど良い。形式が標準化されており、その形式を操作するための信頼できるツールが既に存在する場合は、その形式がより望ましいと言えます。この要件に付随して、フォーマットの互換性が高くなければならないというもう 1 つの要件があります。Microsoft の DGMLのプロプライエタリな性質は、Visual Studio ツールと、(現在) 主に .NET を使用しているという事実にもかかわらず、私の嫌悪感の理由です。W3C が RDF 標準を公開しているという事実は、RDF の限られたサブセットを表現ツールとして検討する動機となっています。GXLとGraphMLにも感謝します、十分に文書化された xml スキーマがあるため、xml 互換のソフトウェア パッケージとデータを統合する機能が容易になります。
シンプルさ / 読みやすさ - 人間が読める構文と解釈の容易さを高く評価しています。また、解析を簡素化する表現も高く評価しています。このため、私はGMLを気に入っていますが、現実的な選択肢になるほど主流ではないことを懸念しています。複雑な (DAG 以外の) 構造を表すそれぞれの能力がそれほど制限されていない場合は、読みやすさのためにJSONまたはYAMLも検討します。
効率性 / 簡潔な表現- 最終的に選択する形式が何であれ、必然的に永続化してネットワーク経由で転送する必要があることを考慮する価値があります。したがって、ファイル サイズは関連する考慮事項です。
概要
ウィッシュリストのすべての基準を満たすソリューションを見つけることができない可能性が高いことを認識しています。私は単に、私が望むものに最も近く、サポートされていないユース ケースの拡張性を制限しないファイル形式を求めているだけです。