0

各頂点に「タイプ」と「テキスト」の 2 つのプロパティがあるミニチュアのグレムリン有向グラフがいくつかあります。「text」プロパティの値は単なる英語のテキストですが、「type」プロパティは次のセットから選択した値を持つことができます。

NP, PP, VP, ADVP, ADJP, SBAR, PRT, INTJ, O

これらのグラフのすべてのエッジには、「次へ」という同じラベルが付いています。

ノードの次のパターンを持つグラフを選択できるようにしたい:

1) [text=","] --> type="VP" --> type="ADVP" --> type="NP"
2) type="NP" --> [text="," Upto 3 nodes with any text and type text=","] --> type="VP" --> [text=":" OR "that"]

括弧内のパターン要素は、オプションであることを意味します。

したがって、最初のパターンでは、オプションでテキスト「,」を含むノード、その後にタイプ「VP」、「ADVP」、「NP」のノードが続くグラフを選択する必要があります。

2 番目のパターンでは、ノード タイプが「NP」であるグラフを選択する必要があります。その後に、テキスト「」を持つノードで始まるオプションのノード シーケンスが続き、次に任意のテキストとタイプを持つ最大 3 つのノード、次にテキストを持つノードが続きます。 "、"。このオプションのシーケンスの後に、タイプ「VP」のノードが続き、最後にテキスト「:」または「that」のノードが続きます。

最初のパターンに一致する 2 つのサンプル グラフは次のとおりです。

パターン1

以下は、2 番目のパターンに一致するサンプル グラフです。 ここに画像の説明を入力

基本的な Gremlin トラバーサルは理解していますが、上記のパターンのオプション要素を処理する方法がわかりません。

Gremlin でそのようなパターンのクエリを作成する方法はありますか? そうでない場合は、そのようなグラフを作成してクエリを実行するための非Gremlinベースのアプローチを提案できますか?

4

1 に答える 1