Repository navigation
D-GRAMMAR-CONSTRAINTS-0: German dative roles as typed relational constraints (lab) - #1947
Merged
Merged
Conversation
…traints (lab) Research crosswalk of Constraint Grammar 3, Universal Dependencies, Haspelmath semantic maps, Grammatical Framework, the 2026 Bayesian universals study and spaCy's matchers, against DR / RelAlg / mask-risc and DT64 ON/WHEN/DO. Completes the lab probe crates/grammar-constraints-probe (own workspace, excluded from the root workspace) started in the previous commit. - UD German-GSD gives the recipient of geben and the experiencer of gefallen the same annotation (obl:arg + Case=Dat), so a rule over the dependent's own lanes cannot separate them; the head hop decides. - One mask-risc program per rule, head read in place via Pred::EqU32Via: 4/4 against gold, 0 false positives, 0 false negatives, 1 UNKNOWN abstention, Direction/Purpose ambiguity kept, 0 B on the hot path, ~1.2 us for five rules over 40 tokens; 8 negative controls as predicted, 9 source disables red. - First missing interface: DT64 WHEN (SetExpr) has no hop leaf, and R2IL refuses WHEN execution (GuardNotExecutable). - P1 census (English EWT, Latin PROIEL): same frame x slot shape, slot realization language-specific. No parser, no new ClassId or F### word, no production change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLBmi7EtDd15CGwGb8
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
AdaWorldAPI
marked this pull request as ready for review
November 3, 2026 21:20
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. |
AdaWorldAPI
pushed a commit
that referenced
this pull request
Nov 3, 2026
Source audit and lab falsifier for two read-only DT64 methods, CandidateRecipient and CandidateExperiencer, that share obl:arg + Case=Dat and differ in the head verb's frame. Extends crates/grammar-constraints-probe (src/when.rs, tests/when.rs, examples/when_cost.rs). - The #1947 head hop (Pred::EqU32Via, foreign[fk[i]]) is gather-shaped: ADMISSION B does not admit a position derived from another column as a read address, and EXO-140 is still unclassified. A correction note is added to the #1947 report. - DT64 states the dependent's own conditions but not the head frame (only an opaque Sym); admit checks witness equality only; validate does not check guard lanes; no read-only DO exists; R2IL still refuses WHEN. - Co-addressed form ("the join is the layout"): the head's frame as a lane at the dependent's coordinate makes the WHEN row-local in today's SetExpr with distinct witnesses and no EqU32Via in the query. The cross-row read moves into a counted producer (EXO-46 / D-RMAP-1). - Lab composer: admit, check description against witness, lower description and a shared global WHERE into one program. Both forms match an independent oracle and gold; 10 negative controls as predicted; 9 source disables red; 0 B per hot run. No production change, no ClassId, no F###. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLBmi7EtDd15CGwGb8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Research crosswalk and lab probe only. This PR adds no parser, no grammar compiler, no new ClassId or
F###word, and no production change..claude/probes/2026-11-03-d-grammar-constraints/REPORT.mdcrates/grammar-constraints-probe. It has its own workspace and is added to the rootexclude.Question
Can a grammatical constraint be written as a typed relation over existing observations and answered by the existing DR / RelAlg / mask-risc fold? Where do Constraint Grammar 3, Universal Dependencies (UD), Grammatical Framework (GF), spaCy and MeTTa start to need semantics beyond that fold?
Findings
obl:argwithCase=Dat.iobjappears once in the whole treebank. UD's German documentation confirms this directly: "verbs of giving … have one oblique dative argument". So a rule that only reads the dependent noun's own annotations cannot tell the two roles apart. The head verb decides.Pred::EqU32Via). Against an independent gold annotation:depreloperand makes a dative instrument come out as a Recipient.}); the other was a guard no fixture could reach. Both were fixed before these numbers were taken.SetExprhas no leaf that follows the head pointer, so the recipient and experiencer guards normalize to the same witness. Separately, R2IL refuses any WHEN at execution (GuardNotExecutable) and refuses three-valued truth. The head lookup itself only runs throughEqU32Via, whose call sites are EXO-140-unclassified.doputs the recipient inobl:arg+Dat.giveputs it iniobj, or inoblwith to.likeputs the experiencer innsubj.Owner decisions
OrientationhasCoreplus 7 functions; DeepNSM-v2'shaspelmathset has 8 and includes Judicantis.Test plan
cargo test --manifest-path crates/grammar-constraints-probe/Cargo.tomlclippy -D warningsandfmtare clean. The UD treebanks (GSD and EWT are CC BY-SA; PROIEL is CC BY-NC-SA) were fetched for measurement only and are not committed.Refs: #1917 (it names this UD
HEAD/DEPRELseam as open), #1942, #1943, #1944; EXO-46, EXO-50, EXO-73, EXO-108, EXO-140.Generated by Claude Code