GFQL Cypher: current LDBC IC3/IC5 official read-shape residuals

Aperta
#2,249 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

Start with the pinned official IC3 and IC5 query files in pyg-bench and minimize each query to its first unsupported construct. The probes identify IC3 whole-row carriers (countryX, countryY, person) and IC5 entity aggregation, relationship multiplicity, and later forum scope as barriers. Determine whether to support these shapes or document a capability boundary; done requires preserving campaign status until that decision and keeping dataset conformance and timing work separately gated.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

gfql p2

Current evidence

Current product master 9c2e88855619fffa25d330593f33888c79bc34d7 rejects the pinned official IC3 and IC5 read queries before execution:

  • IC3 (interactive-complex-3.cypher): GFQLSyntaxError — current compiler says only the alternating MATCH ... WITH ... MATCH read shape is supported.
  • IC5 (interactive-complex-5.cypher): GFQLValidationError — current row lowering says it supports one MATCH source alias at a time and points to #1273.
  • Query text and parameters are source-pinned in pyg-bench main 80c49f672d29fd2323cf9e4319b34ffa7dad87ad.
  • These are current-status probes, not a rerun of the historical May #999 measurements.

The equivalent narrow synthetic IC3/IC5 adapter/GFQL workaround passes all six typed positive/empty-or-negative cases on pandas, Polars, DGX cuDF, and Polars-GPU. That is an adapter route, not dataset conformance proof.

Scope

Do not reopen #999 or #1273: their admitted shapes were completed. Track these separately as the remaining official benchmark shapes.

Acceptance

  1. Minimize each official query to the first unsupported construct.
  2. Decide whether each is a parser/read-shape gap, lowering gap, or expected decline with a documented capability boundary.
  3. If supported, add focused positive/negative row-oracle tests and clarify the misleading stale residual message.
  4. Preserve current IC3/IC5 campaign status until these are resolved or explicitly declined.
  5. Keep dataset conformance and timing/comparison work separately gated.

2026-10-26 exact-master feasibility update

On pygraphistry master d53fba85532949fd8881d6cb8079ebbdf17cb111, pyg-bench main 80c49f672d29fd2323cf9e4319b34ffa7dad87ad, and pinned official IC3/IC5 query files, bounded throwaway probes classified deeper barriers without retaining a product patch:

  • IC3: relaxing only the parser and compile-time suffix-WITH caps lets a minimal two-reentry shape compile and return the hand-computed positive row [{"a.id":"a"}] and empty negative row. The full official query then declines because countryX, countryY, and person are non-source whole-row carriers. A parser-only relaxation does not make IC3 runnable.
  • IC5: allowing the first aggregate-only alias guard advances collect(friend) to the relationship-multiplicity guard; a further throwaway relaxation reaches lost forum scope after the later suffix. #1273's closed scalar/disjoint-source cases do not establish support for this entity-aggregate carrier. A correct implementation must preserve node identity, relationship multiplicity, and later scope together.

The product source was restored clean after these probes. Keep both official shapes as typed capability declines and this issue OPEN. Reassess implementation when a real MCP workflow needs them or a bounded generalized design can pass positive/negative row, multiplicity, and pandas/Polars/cuDF/Polars-GPU parity gates. Synthetic adapter/GFQL parity and separate SF0.1 dataset-backed adapter probes do not certify literal official Cypher or competitive timing.

Lingua principale
Python
Stelle
2.6k
Fork
229
Merge medio
1g 5h
PR unite (30g)
99

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di graphistry/pygraphistry

Tutte le issue di graphistry/pygraphistry

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.