Skip to content

Clarify path identity for parallel relations in NetworkX graph traversal #10

Description

@DivyamTalwar

@haolpku

Summary

The NetworkX provider stores relation- and origin-distinct edges in a MultiDiGraph, but traverse deduplicates paths using only the node sequence. Parallel relations between the same nodes are therefore suppressed according to insertion order.

Evidence

At the current main baseline (96e49f9e006f1f5a44f9838bdfbb74f27885363a), two edges A -> B with relations authored and reviewed produce the same path key (A, B). The first edge survives and the second is skipped before its relation, weight, or provenance can be returned. Reversing insertion order changes which relation is visible.

This is a deterministic reduced identity witness; the public traversal contract still needs confirmation.

Decision requested

Should path identity be:

  • node sequence only, with a documented deterministic representative policy; or
  • relation sequence / exact edge identity, so relation- and origin-distinct alternatives are returned?

Any implementation must preserve relation_filter, max_hops, and max_results, keep cycle control, and bound combinatorial growth. A focused regression should cover parallel relations, same relation from different origins, insertion-order reversal, filters, caps, cycles, and reload from persisted graph.

No implementation PR is opened until the path-identity contract is confirmed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions