26.10.5.6 フィルタ式の結合

サブグラフのフィルタリングに使用されるフィルタ式を他のフィルタ式と組み合せて、新しいフィルタ式を作成できます。

フィルタは、次の操作を使用して組み合せることができます。

  • 交差
  • 結合
2つのフィルタの交差では、両方のフィルタで受け入れられる場合にのみ、頂点またはエッジが保持されます。

ノート:

2つのフィルタの交差は、フィルタ式のANDとして動作しません。
2つのフィルタの結合では、いずれかのフィルタで受け入れられる場合に、頂点またはエッジが保持されます。

ノート:

フィルタの結合は、フィルタ式のORとして動作しません。

次の例では、エッジ・フィルタは頂点フィルタと交差しています。作成されるサブグラフには、PGXという名前を持つ頂点と、コストが5より大きいエッジのみが含められます。

opg4j> var edgeFilter = EdgeFilter.fromExpression("edge.cost > 5")
opg4j> var vertexFilter = VertexFilter.fromExpression("vertex.name = 'PGX'")
opg4j> var combinedFilter = edgeFilter.intersect(vertexFilter)
EdgeFilter edgeFilter = EdgeFilter.fromExpression("edge.cost > 5");
VertexFilter vertexFilter = VertexFilter.fromExpression("vertex.name = 'PGX'");
GraphFilter combinedFilter = edgeFilter.intersect(vertexFilter);
edge_filter = EdgeFilter("edge.cost > 5")
vertex_filter = VertexFilter("vertex.name = 'PGX'")
combined_filter = edge_filter.intersect(vertex_filter)

一方、これらのフィルタの結合で作成されるサブグラフには、PGXという名前を持つ頂点、またはコストが5より大きい入力エッジまたは出力エッジを持つ頂点が含められます。また、コストが5より大きいエッジと、出力および入力頂点の名前がPGXであるエッジも含められます。