Graphlet (.gml)

予備知識

    • Graphlet GMLグラフデータ形式.
    • グラフの保管と交換に使われる.
    • GMLはGraph Modeling Languageの頭字語である.
    • Graphletグラフ編集ソフトウェアのネイティブ形式.
    • 属性付きの有向・無向グラフを保管する.
    • ユーザ定義のグラフ,辺,頂点属性を含むことができる.
    • ASCII形式.
    • 1995年に開発された.

ImportとExport

  • Import["file.gml"]は指定のファイルに保管された,単独のGraphオブジェクトとして与えられたグラフをインポートする.
  • Export["file.gml",expr]は1つのグラフの隣接行列または辺情報をGraphlet GML形式にエキスポートする.
  • Import["file.gml",elem]はGraphlet GMLファイルから指定の要素をインポートする.
  • Import["file.gml",{elem,suba,subb,}]はサブ要素をインポートする.
  • Import["file.gml",{{elem1,elem2,}}]は複数の要素をインポートする.
  • インポート形式はImport["file","Graphlet"]またはImport["file",{"Graphlet",elem,}]で指定できる.
  • Export["file.gml",expr,elem]expr が要素 elem を指定するものとして扱って,Graphlet GMLファイルを作成する.
  • Export["file.gml",{expr1,expr2,},{{elem1,elem2,}}]はそれぞれの expri が対応する elemi を指定するものとして扱う.
  • Export["file.gml",expr,opt1->val1,]は指定されたオプションの要素が指定された値を取るものとして expr をエキスポートする.
  • Export["file.gml",{elem1->expr1,elem2->expr2,},"Rules"]はエキスポートする要素を規則を使って指定する.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport 要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • データ表現要素:
  • "AdjacencyMatrix"辺情報(行列として与えられる)
    "EdgeAttributes"辺属性(規則のリストとして表示される)
    "EdgeRules"グラフの連結性データ(規則の配列として与えられる)
    "Graph"ファイルに保管されたグラフ(Graphオブジェクトとして与えられる)
    "GraphAttributes"グラフ属性(規則のリストとして表される)
    "Graphics"このファイルに保持されたグラフ(グラフプロットとして描画される)
    "VertexAttributes"頂点の属性(規則のリストとして表示される)
    "VertexCount"グラフの頂点の数
    "VertexList"文字列のリストとして与えられる頂点
  • ImportはGraphlet GMLからインポートする際に,デフォルトで"Graph"要素を使用する.

オプション

  • 一般的なImportオプション:
  • ImageSizeAutomaticグラフを表示する画像の全体的な大きさを指定する
  • GMLからインポートする際は,Graphがサポートするすべてのオプションを与えることができる.一般的な設定を示す:
  • EdgeLabelsAutomatic辺に対するラベルとラベルの配置
    EdgeWeightAutomatic辺の重み
    VertexCoordinatesAutomatic頂点に対する中心座標
    VertexLabelsAutomatic頂点に対するラベルとラベルの配置
    VertexShapeAutomatic頂点のグラフィックスの形状
  • "Graphics"としてインポートする際は,GraphPlotがサポートするすべてのオプションを与えることができる.一般的な設定は次の通りである:
  • DirectedEdgesAutomatic辺を有向矢印で示すかどうか
    EdgeLabelsAutomatic辺に与えられたラベルを含むかどうか
    EdgeShapeFunctionAutomatic辺に明示的なグラフィックスを与える関数
    VertexLabelsAutomatic頂点名をラベルとして示すかどうか
    VertexShapeFunctionAutomatic頂点に明示的なグラフィックスを与える関数
  • Exportオプション:
  • DirectedEdgesAutomaticエキスポートするデータが有向グラフを表すかどうか
  • 辺規則または対称隣接行列からエキスポートするとき,デフォルトでは辺は無向であるとされる.
  • Graphオブジェクトをエキスポートする際,Wolfram言語のグラフ属性値はしばしばCompressを使って文字列としてエキスポートされる.

例題

すべて開くすべて閉じる

  (7)

Graphlet GMLからグラフをインポートし,Graphオブジェクトとして描画する:

頂点のリストと属性をインポートする:

グラフプロットに頂点ラベルと鏃を示す:

GraphオブジェクトをGMLにエキスポートする:

有向グラフを表す辺規則のリストをGMLにエキスポートする:

上記例と同じグラフの非対称隣接行列をGMLにエキスポートする:

Graphlet GMLグラフの隣接行列表現をMatrixPlotとして描画する:

スコープ  (5)

頂点ラベルとその属性が規則の形式を取るリストを構築する:

Sparse6ファイルに保管されている最初のグラフをGraphlet GMLファイルに変換する:

辺規則,および辺とグラフの属性のリストからGraphlet GMLファイルを生成する:

隣接行列を頂点ラベルと属性と共にエキスポートする:

ラスタ画像をラベルとして持つGraphオブジェクトをエキスポートする: