13.4 PGQLによる頂点およびエッジ・ラベル

ラベルは、グラフのエッジおよびノードにタイプ情報を添付する方法で、すべてのノードが同じものを表しているわけではないグラフの制約に使用することができます。たとえば:

SELECT p.name
FROM MATCH (p:person) -[e1:likes]-> (m1:movie),
     MATCH (p) -[e2:likes]-> (m2:movie)
WHERE m1.title = 'Star Wars'
  AND m2.title = 'Avatar'

この例では、ラベルpersonの頂点セット、ラベルmovieの頂点セットおよびラベルlikesのエッジ・セットが含まれるグラフを問い合せます。ラベル式は、コロン(:)またはキーワードISのいずれかで始め、その後に1つ以上のラベルを続けることができます。複数のラベルを使用する場合、ラベルは縦棒(|)で区切られます。

次の問合せは、ラベル式にキーワードISを使用した前述の問合せの例を示しています。

SELECT p.name
FROM MATCH (p IS person) -[e1 IS likes]-> (m1 IS movie),
     MATCH (p IS person) -[e2 IS likes]-> (m2 IS movie)
WHERE m1.title = 'Star Wars'
  AND m2.title = 'Avatar'

関連項目:

PGQL仕様のラベル式セクション