25.4 プロパティ名の解決とグラフ変更

プロパティ名は、グラフ名と同様に動作します。公開済でないグラフのすべてのプロパティ名は、セッションに対してプライベートなネームスペース内にあります。PgxGraph.publishWithSnapshots()またはPgxGraph.publish()メソッドを使用してグラフが公開されると、そのプロパティも公開され、それらの名前はパブリック・ネームスペースに移動します。

グラフが公開された後も、新しく作成されたプロパティはセッションに対してプライベートになり、それらの名前はプライベート・ネームスペース内にあります。同じ名前を持つ他のプロパティがそのグラフについてすでに公開されていないかぎり、Property.publish()メソッドを使用して、それらのプロパティを個々に公開できます。

さらに、すでに公開されているプロパティと同じ名前で新しいプライベート・プロパティを作成することもできます(それらの名前が別々のネームスペースに属するため)。このような状況に対処し、正しいプロパティを取得するために、PGX APIにはgetVertexProperty(Namespace, String)およびgetEdgeProperty(Namespace, String)メソッドが用意されており、これらを使用して、プロパティ名を検索する対象とするネームスペースを指定できます。

グラフと同様に、ネームスペースを指定せずにプロパティを検索すると、プライベート・ネームスペースが最初に検索され、プロパティが見つからなければ、続いてパブリック・ネームスペースで検索が行われます。このケースは、getVertexProperty(String)またはgetEdgeProperty(String)メソッドとPGQL問合せに該当します。

同様に、グラフの変更によって、名前で参照されるプロパティの読取りまたは書込みが行われ、同じ名前を持つ2つのプロパティが存在する場合、プライベート・ネームスペース内のプロパティが選択されます。デフォルトの選択をオーバーライドするために、一部の変更メカニズムは、変更されたグラフにコピーされる特定のPropertyオブジェクトのコレクションを受け入れます。たとえば、このようなメカニズムはフィルタ式でサポートされています。詳細は、サブグラフの作成を参照してください。