GraphMLによるグラフ・スキーマの識別

GraphMLを使用し、グラフ・データベース・スキーマを作成する方法。

頂点および辺とそのプロパティの定義は、GraphMLでグラフ・データベースを作成するときの重要な最初のステップです。GraphMLは、頂点および辺を識別するXML形式です。GraphMLでグラフを定義する最初の手順には、頂点および辺のプロパティの定義が含まれます。GraphMLを使用することの短所は、これらのインデックスを定義できないことです。

手順

  1. ファイルのGraphMLヘッダーは、XML情報を次のように識別します。
    <?xml version='1.0' encoding='UTF-8'?>
    <graphml xmlns="http://graphml.graphdrawing.org/xmlns" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://
    graphml.graphdrawing.org/xmlns 
    http://graphml.graphdrawing.org/xmlns/1.1/graphml.xsd">
  2. 新しいファイルのスキーマを識別するためのグラフ・インスタンスを作成します。
    <graph id="graph" edgedefault="directed">
  3. 頂点のプロパティを定義します。
    <key id="labelV" for="node" attr.name="labelV" attr.type="string"/>
    <key id="id" for="node" attr.name="id" attr.type="int" />
    <key id="aname" for="node" attr.name="aname" attr.type="string"/>
    <key id="gender" for="node" attr.name="gender" attr.type="string"/>
    <key id="recipeTitle" for="node" attr.name="recipeTitle" attr.type="string" />
    <key id="instructions" for="node" attr.name="instructions" attr.type="string" />
    <key id="bookTitle" for="node" attr.name="bookTitle" attr.type="string" />
    <key id="publishDate" for="node" attr.name="publishDate" attr.type="int" />
    <key id="ISBN" for="node" attr.name="ISBN" attr.type="string" />
    <key id="iName" for="node" attr.name="iName" attr.type="string" />
    <key id="mealTitle" for="node" attr.name="mealTitle" attr.type="string"/>
    <key id="mCreateDate" for="node" attr.name="mCreateDate" attr.type="string"/>
    <key id="calories" for="node" attr.name="calories" attr.type="int"/>
    <key id="revname" for="node" attr.name="revname" attr.type="string"/>

    各頂点には頂点ラベルがあるため、labelVのIDのプロパティは必ず定義されます。追加の頂点プロパティは、ID、属性名、および属性タイプと一緒に定義されます。for="node"文は各プロパティを頂点プロパティとして定義します。

  4. 辺プロパティを定義します。
    <key id="labelE" for="edge" attr.name="labelE" attr.type="string"/>
    <key id="stars" for="edge" attr.name="stars" attr.type="string"/>
    <key id="ratedDate" for="edge" attr.name="ratedDate" attr.type="string"/>
    <key id="comment" for="edge" attr.name="comment" attr.type="string"/>
    <key id="amount" for="edge" attr.name="amount" attr.type="string"/>

    各辺にはラベルで表される辺識別子があるため、labelEのIDのプロパティは必ず定義されます。追加の辺プロパティは、ID、属性名、および属性タイプと一緒に定義されます。for="edge"文は各プロパティを辺プロパティとして定義します。