Skip to content

A chain should be able to walk a named path pattern, not only a reference field #371

Closed

Description

@dmarx

Problem

A chain walks reference fields: relation takes one field or several (#211), and sibling is one more, all declared on the chain's own scheme. ADR-126 keeps it so: a chain may walk a relation only if the chain's own scheme is its sole target.

That leaves lines the record states and no chain can draw. ADR-127 names one: in a downstream record an argument runs claim → inference → claim. The step from claim to claim is two edges through another scheme, and the chain stops at the inference. ADR-127 left "chains over a derived relation" for after the logic core.

Direction (settled in discussion)

Not a field list, and not user-written clingo rules. Use named path patterns in Cypher's pattern syntax, which pass ADR-125's "rule in the line" test:

patterns:
  follows_from: (b:CLAIM)<-[:concludes]-(i:INF)<-[:premise_of]-(a:CLAIM)
  • Node labels are schemes and edge types are reference fields.
  • luria parses a small subset with its own lark grammar and lowers it to clingo, so the logic core stays the one engine.
  • A chain walks a pattern wherever it walks a field, and named inner nodes render as "through".
  • A partial match is no step. What a record calls unfinished is a pattern it writes, and rendering such a pattern is Render a named path pattern as a page listing its matches #373.

Decision: ADR-tmpfdvjo. Implementation: #372.

Out of scope (each its own decision)

Activity

  1. changed the title [-]A chain should be able to walk a derived relation, not only a reference field[/-] [+]A chain should be able to walk a named path pattern, not only a reference field[/+] on Oct 13, 2026
  2. added a commit that references this issue on Oct 13, 2026
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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions