GXL (.gxl)

予備知識

    • GXLグラフデータ形式.
    • グラフの保管と交換に使用される.
    • GXLはGraph Exchange Languageから派生した頭字語である.
    • XMLベースの形式.
    • 型付き,属性付き,有向・無向グラフを表す.
    • ネストしたグラフ,ハイパーグラフも保管できる.
    • ユーザ定義の辺,頂点のタイプをサポートする.
    • 2000年に研究団体のグループにより開発された.

ImportとExport

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

Import要素

  • 一般的なImport 要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • データ表現要素:
  • "AdjacencyMatrix"辺情報(行列のリストとして与えられる)
    "EdgeAttributes"辺属性(規則のリストとして表示される)
    "EdgeLabels"辺ラベルを表す文字列のリスト
    "EdgeRules"すべてのグラフの結合性データ(規則の配列として与えられる)
    "EdgeTypes"辺の型(文字列のリストとして与えられる)
    "Graph"ファイルに保管されている最初のグラフ(Graphオブジェクトとして与えられる)
    "Graphics"このファイルに保持された最初のグラフ(グラフプロットとして描画される)
    "GraphicsList"グラフィックスオブジェクトのリストとして与えられる全グラフ
    "GraphList"Graphオブジェクトのリストとして与えられる全グラフ
    "VertexAttributes"頂点の属性(規則のリストとして表示される)
    "VertexCount"それぞれのグラフの頂点の数(整数のリストとして与えられる)
    "VertexList"頂点(文字列のリストとして与えられる)
    "VertexTypes"頂点の型(文字列のリストとして与えられる)
  • Importは単純なGXLファイルには"Graph"を,複数のグラフのGXLファイルには"GraphList"をデフォルトで使用する.
  • 複数のグラフを含むGXLファイルの要素指定:
  • "GraphNames"文字列のリストで与えられるグラフ名
    elem,"name""name"で指定されるグラフの要素 elem
    elem,nこのファイルの n 番目のグラフのデータ表現要素 elem
    elem,{n1,n2,}グラフ n1, n2, の要素 elem
    elem,Allリストで与えられる,全グラフに対する要素 elem

オプション

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

例題

すべて開くすべて閉じる

  (9)

GXLから有向グラフをインポートする:

このファイルで利用できるImport要素を示す:

このファイルから辺と頂点のリストと連結規則をインポートする:

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

無向グラフをインポートし,グラフプロットとして描画する:

このグラフの隣接行列をインポートする:

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

辺規則をGXLにエキスポートする:

隣接行列をGXLにエキスポートする:

スコープ  (3)

グラフをインポートし,頂点ラベルを表示してプロットする:

有向グラフをエキスポートする:

隣接行列をGXLにエキスポートする: