Represents the paths found by the Filtered Find Paths search.
We use a memory-optimized representation to avoid storing redundant information because
it is often the case that a path shares some entities and relationships with many other paths,
especially if the Filtered Find Paths configuration uses 'KGPathMode.All'.
Definition: a relationship group contains Knowledge Graph relationships associated to a single edge in the local graph.
Paths are encoded this way:
The path 'p' uses relationships groups PathsBuffer[PathsEndIndex[p-1] .. PathsEndIndex[p]], and:
- the origin of the first relationship group is the origin of the path
- the destination of the last relationship group is the destination of the path
A path of length zero (with entity 'e') has a single relationship group containing no relationship and where the origin and the destination are 'e'.
The relationships group 'g' has origin EntitiesUIDs[RelationshipsGroupsFrom[g]] and destination EntitiesUIDs[RelationshipsGroupsTo[g]].
Its relationships are RelationshipsGroupsUIDsBuffer[RelationshipsGroupsUIDsEndIndex[g-1] .. RelationshipsGroupsUIDsEndIndex[g]]
if RelationshipsFrom[i] >= 0, relationship RelationshipsGroupsUIDsBuffer[i] has origin EntitiesUIDs[RelationshipsFrom[i]]
else the relationship has been deleted after pathfinding.
if RelationshipsTo[i] >= 0, relationship RelationshipsGroupsUIDsBuffer[i] has destination EntitiesUIDs[RelationshipsTo[i]]
else the relationship has been deleted after pathfinding.
Note that origin and destination of a relationship may not match origin and destination of the relationship group
because the relationship can be traversed backwards.
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3.5 or higher.