Skip to content

pv lint --gate shapes: grade an external data graph (A-box) not built by pv extract #5892

Closed as not planned

Description

@noahgift

Question

pv lint --gate shapes grades the graph that pv extract <dir> builds from contracts. rmedia has SHACL shapes that judge an A-box produced by a script from a runtime receipt, not a contract. Is there (or will there be) a supported way to point the shapes gate at an external data graph?

Either would unblock us:

  1. a data-graph input, e.g. pv lint --gate shapes --shapes S.ttl --data A.ttl, or
  2. one extract: per asset family, so each family's A-box is emitted by pv extract.

Measured (pv 0.71.4, 5027da6)

  • pv lint --help lists --gate <GATE> and --shape <ID> but no data-graph / A-box flag.
  • pv extract takes only a contract dir.
  • Today rmedia runs Apache Jena shacl validate for this (Java). Tracking issue: paiml/rmedia#836 (replace Jena with pv), operator ruling 2026-10-04.

Minimal repro (paiml/rmedia, launch-date gate)

  • Shapes: scripts/coursera/shacl/launch-date-shapes.ttl (66 lines, one sh:NodeShape targeting cb:LaunchDateReceipt; constructs: minCount, maxCount, pattern, hasValue).
  • A-box builder: scripts/coursera/launch-date-abox.sh over scripts/coursera/fixtures/launch-date/receipt.json.
  • Falsifier: scripts/coursera/launch-date-falsify.sh (planted violation must exit 1; an empty A-box must refuse).

What we need to know

Which of 1 or 2 is wanted, so the gate can keep its two falsifiers (violation fires, empty A-box refuses) on pv. sh:hasValue is also refused at parse today; we would like to know whether that is planned or whether we should rewrite it as sh:in with one value.

Activity

  1. added this to the 0.73.0 milestone on Oct 21, 2026
  2. noahgift commented on Oct 22, 2026

    @noahgift
    MemberAuthor

    Tracked in #2870 (triage 2026-10-22).

  3. noahgift commented on Oct 22, 2026

    @noahgift
    MemberAuthor

    tracked in #2870

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

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions