gchq / Gaffer

A large-scale entity and relation database supporting aggregation of properties
Apache License 2.0
1.75k stars 354 forks source link

Change GafferPopEdge id representation #3223

Closed cn337131 closed 3 weeks ago

cn337131 commented 1 month ago

Edge ids are currently represented as

Arrays.asList(getVertexId(outVertex), getVertexId(inVertex)) 

The List representation is causing issues when used as a GraphStep seed, this representation should be changed to a String.

Should also consider including the edge label as part of the ID to force them to be unique in the case that multiple edges exist between that same 2 vertices, e.g. something like the Tinkerpop representation "[source-label->target]"

As part of this ticket, he GafferPopGraph.getElementSeeds method should be improved. Note: this method should create EdgeSeeds from inputs with and without the label

e.g.

g.E("[1-knows->2]")
g.E("[1,2]")