Skip to content

feat: add predicate relationship metadata#5

Draft
jonathanprozzi wants to merge 4 commits into
feat/predicate-metadata-backfillfrom
feat/predicate-relationship-metadata
Draft

feat: add predicate relationship metadata#5
jonathanprozzi wants to merge 4 commits into
feat/predicate-metadata-backfillfrom
feat/predicate-relationship-metadata

Conversation

@jonathanprozzi

@jonathanprozzi jonathanprozzi commented Jun 2, 2026

Copy link
Copy Markdown
Member

Status

Superseded by the classification-owned matrix approach in #7. This draft remains open only as historical review context for the predicate-level relationship experiment.

What This Experiment Tried

  • Adds predicate-level relationship metadata keyed by subject classification slug.
  • Adds expected object type hints and schema.org property names for a selected set of backfilled metadata predicates.
  • Propagates relationship metadata through predicate records and covers the shape in registry tests.

Why It Should Not Merge As-Is

This shape puts classification-specific relationship metadata inside @0xintuition/predicates, which creates the coupling we want to avoid. It also mixes identifier namespaces in expectedObjectTypes and duplicates the subject/predicate relationship data that classifications now own through metadataPredicates.

The replacement direction is #7:

  • @0xintuition/predicates defines reusable predicate vocabulary.
  • @0xintuition/classifications owns the matrix keyed by (subjectClassification, predicate).
  • Expected objects are typed as classification, schema, primitive, same-classification, or any.
  • Schema mappings carry explicit match type: exact, semantic, broader, or narrower.

Stack

This branch is stacked on feat/predicate-metadata-backfill, but it should stay draft and out of the merge path unless we intentionally revive part of the experiment.

@jonathanprozzi jonathanprozzi force-pushed the feat/predicate-metadata-backfill branch from 95dafee to 8101682 Compare June 2, 2026 19:15
@jonathanprozzi jonathanprozzi force-pushed the feat/predicate-relationship-metadata branch from 00fa2dd to 83f0d65 Compare June 2, 2026 19:17
@jonathanprozzi jonathanprozzi force-pushed the feat/predicate-metadata-backfill branch from 8101682 to ace5ba1 Compare June 3, 2026 18:31
@jonathanprozzi jonathanprozzi force-pushed the feat/predicate-relationship-metadata branch from 83f0d65 to 5a42a41 Compare June 3, 2026 18:32

Copy link
Copy Markdown
Member Author

Disposition note: this PR should stay draft / review-only and should not be merged as-is.

The relationship metadata shape explored here has been superseded by the classification-owned metadata predicate matrix in PR #7. That matrix moves subject/object relationship contracts out of predicate specs and keys them by (subjectClassification, predicate), which avoids predicate -> classification coupling and keeps object target namespaces explicit.

Useful review value from this PR: it helped identify the contract requirements. Merge path: #3 -> #4 -> #6 -> #7 -> #8, with this PR excluded unless we intentionally revive a narrowed piece later.

@jonathanprozzi jonathanprozzi force-pushed the feat/predicate-metadata-backfill branch from 86358a2 to b1b4e50 Compare June 12, 2026 19:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant