Found during adversarial review of #192.
The new scorer makes predicate_id coverage visible, and the current corpus still has 147 of 152 causal-graph edges without a grounded relation CURIE. Every current record is flagged with edges_without_predicate_id.
This is not a blocker for #192: the free-text predicates are evidence-backed and the schema only makes predicate_id optional. It is still the largest remaining graph-readiness gap because downstream code cannot interpret assembles into, anchors, recruits, carries out, or constrains as stable relations.
Suggested fix
- Triage the most common edge predicates and map exact matches to RO, GO-CAM, BFO, or another accepted relation namespace.
- Record deliberate no-matches rather than forcing broad relation terms when the graph edge is more specific than the ontology.
- Keep
scripts/score_causal_graphs.py as the progress meter; edges_with_predicate_id should climb from 5 to 152 only when the mappings are curator-reviewed.
Measured on PR #192 by running:
uv run python scripts/score_causal_graphs.py --limit 25
Found during adversarial review of #192.
The new scorer makes
predicate_idcoverage visible, and the current corpus still has 147 of 152 causal-graph edges without a grounded relation CURIE. Every current record is flagged withedges_without_predicate_id.This is not a blocker for #192: the free-text predicates are evidence-backed and the schema only makes
predicate_idoptional. It is still the largest remaining graph-readiness gap because downstream code cannot interpretassembles into,anchors,recruits,carries out, orconstrainsas stable relations.Suggested fix
scripts/score_causal_graphs.pyas the progress meter;edges_with_predicate_idshould climb from 5 to 152 only when the mappings are curator-reviewed.Measured on PR #192 by running: