Skip to content

GFQL type system follow-on A: public declarative schema model + stable exports #1337

Closed

Description

@lmeyerov

Summary

Follow-on child slice for #1046: provide a stable public declarative schema surface that maps cleanly to current internal GFQL schema catalogs.

Parent

Goal

Expose a user-facing schema declaration API (node/edge/schema contracts) with stable import paths, while preserving compatibility with current binder/preflight internals.

In scope

  • Public schema model module(s) and stable exports
  • Declarative node/edge contracts, including topology constraints
  • Adapter path from public schema objects to internal GraphSchemaCatalog
  • Strict/permissive validation policy wiring at schema-binding seam

Out of scope

  • Schema inference implementation
  • Public Arrow/plottable schema boundary APIs

Acceptance

  1. Users can declare graph schema objects via stable public imports.
  2. Declared schema can be bound and consumed by binder/preflight validation.
  3. Topology/property mismatches produce clear compile-time/preflight diagnostics.
  4. Tests cover declaration, adapter mapping, and schema-bound validation behavior.
  5. CHANGELOG/docs updated with public API contract and migration notes.

Related

Activity

  1. lmeyerov commented on May 7, 2026

    @lmeyerov
    ContributorAuthor

    Scoping alignment note: lane D #1345 tracks cross-lane API contract alignment in parallel.\n\nThis lane A issue remains independently executable and non-blocked by D; please include compatibility notes needed for D drift checks.

  2. lmeyerov commented on May 17, 2026

    @lmeyerov
    ContributorAuthor

    Coordinator research follow-up note for #1337 / #1457 scope:

    The type-system research reinforces keeping this lane narrow:

    • Land the public declared schema contract as open and Arrow-backed.
    • Do not expand this issue/PR into full label algebra, schema effects, remote payload transport, or tutorial work.
    • Cypher labels should be described as predicates over label membership.
    • NodeType / EdgeType should be treated as trait-like contracts, not nominal Java-style classes.
    • Conjunctive labels such as (:A:B) should eventually merge trait/property fragments, but conflict/presence policy belongs in follow-ons, not this merge gate.

    Follow-ons now carry the broader work:

    Practical coordinator rule: do not block #1457 on the full graph type calculus.

  3. lmeyerov commented on May 20, 2026

    @lmeyerov
    ContributorAuthor

    Coordinator audit cross-link: typed-schema cluster dispatch audit posted on #1058:

    #1058 (comment)

    This issue/PR was included in the 2026-05-20 audit covering #1457/#1337/#1338/#1339/#1485/#1465 and downstream implications for #1567/#1580.

  4. lmeyerov commented on May 25, 2026

    @lmeyerov
    ContributorAuthor

    Merged PR #1457 as 3d85344d083295a05c7619baa1a5e415a8d69b8f.

    Closeout:

    • Public schema surface landed as experimental: NodeType, EdgeType, GraphSchema, EdgeTopology from graphistry.schema plus top-level re-exports.
    • Docs/docstrings/changelog now mark the surface experimental, and the schema docs example uses real graphistry.edges(...).nodes(...).bind(schema=schema) graph binding.
    • Local validation contract is explicit: provided schema only in this PR; local dataframe fallback still works; no schema inference yet; gfql_remote(...) does not transport the bound GraphSchema.
    • Review skill reconverged after final docs/changelog changes.
    • CI/RTD green on head 117e52436974e2cf8681f2712c6f68adda0e6c8b.

    Follow-ons remain #1338 schema inference, #1339 Arrow/plottable boundary enforcement/coercion, #1485 schema effects, and #1465 remote schema transport.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions