Repository navigation
ogar-action-handler: compose OGIT's allowed-edge whitelist through DR64 relcomp - #363
Conversation
…64 relcomp Lab probe. OgitTables' Allowed lanes become Boolean relations and are composed with lance-graph's relcomp kernel (dr-math-binding-probe, dev-dependency), checked pair by pair against enumeration: - verb x type targets composed with type x verb sources gives the schema-level table of chainable verb pairs (4,861 on the OGIT fork); - named verbs as type x type relations, two-verb compositions, and a three-verb chain in both associations; - the consistsOf / isPartOf inverse candidate's schema mirror is measured (24 of 59 / 142 pairs), not asserted. The test also prints what the OGIT reader drops: 102 rejected files (74 attributes, 14 entities, 14 verbs) and 508 unresolved references (32 in allowed edges). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMPWTwovjYJEUMuGPb4
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
What this adds
crates/ogar-action-handler/tests/ogit_schema_composition.rsis a probe that answers "which OGIT verbs can follow each other?" in two independent ways and checks that the answers agree:OgitTables(theAllowedSrc/AllowedVerb/AllowedDstlanes) into two relations,targets(verb × type) andsources(type × verb). It composes them withdr-math-binding-probe's relcomp kernel over 64 × 64 Boolean registers, using blocks wherever an axis is wider than 64.dr-math-binding-probeis added as a dev-dependency (git, lance-graphmain). The OGIT tree comes from the sameogit_checkout::root()that CI already uses throughOGIT_FORK_PATH.Results (local run against the OGIT checkout)
The tests:
consistsOf ; isPartOfgives 51 type pairs,isPartOf ; containsgives 3, andcontains ; containsgives 122.consistsOf ; isPartOf ; consistsOfgives the same relation in both associations, and that relation equals enumeration. A non-empty check makes sure the comparison is not between two empty relations.Finding: what OGAR's reader drops
The reader rejects 102 files: 74 under
/attributes/, 14 under/entities/and 14 under/verbs/. It also leaves 508 references unresolved: 476 in TypeAttr and 32 in Allowed.An earlier census in Python, which read the raw files, counted 12,229 chainable pairs. The same Python run over OGAR's own edges gives 4,861. The difference comes from edges in files the reader rejects. Every number in this PR therefore describes OGIT as OGAR reads it, not OGIT as it is on disk.
Disable runs (each red, then restored)
targetsfrom the source laneLimitation
The typed tests take each named verb's relation from
verb_relation, and so does the enumeration they are compared against. A bug in that extraction would therefore show up on both sides and pass. Only D2 and D4 test the lane wiring directly.The tests check that composition and enumeration agree; they do not pin exact counts. CI reads OGIT at its moving
master, so the numbers above can change from one run to the next.Generated by Claude Code