Skip to content

Document deviations from the OpenLR whitepaper - #29

Merged
bnaul merged 2 commits into
mainfrom
docs/spec-deviations
Aug 26, 2026
Merged

Document deviations from the OpenLR whitepaper#29
bnaul merged 2 commits into
mainfrom
docs/spec-deviations

Conversation

@bnaul

@bnaul bnaul commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Documentation-only follow-up to an audit of the decoder against openlr-whitepaper_v1.5.pdf (Chapter G §12, plus §5–7). No behavior changes.

  • CLAUDE.md: new "Known Deviations from the OpenLR Whitepaper (v1.5)" section covering
    • HERE-isms the code intentionally follows: last-LRP bearing encoded in travel direction (spec says against the incoming line; verified on all 47,931 corpus codes), binary offsets ignored and positive_offset/negative_offset redefined as projection distances, FRC0–4 only.
    • Unimplemented spec features: no shared-edge constraint at intermediate LRPs for ≥3-LRP references, PointAlongLine returns a path not a point, single-segment bearing instead of 20 m BEARDIST, partial FOW inference (no junction/oneway columns), unsupported location types, float lengths.
    • Implementation notes: penalised A*, widened LFRCNP + SlipRoad exemption, max_candidate_distance_m semantics, 3% edge-drop rule.
  • README.md: short "Deviations from the OpenLR Spec" summary linking to CLAUDE.md.
  • src/candidates.rs: corrected the max_candidate_distance_m docstring — it gates the decode on one LRP having a close candidate, not each candidate.

Test plan

  • cargo build passes (comment-only Rust change)

🤖 Generated with Claude Code

https://claude.ai/code/session_01QStLGJkKBjXLPD8KkpsSjY

bnaul and others added 2 commits August 26, 2026 08:04
Audit of the decoder against openlr-whitepaper_v1.5 (Chapter G §12).
Adds a 'Known Deviations' section to CLAUDE.md and a summary to README
covering HERE-isms (last-LRP bearing in travel direction, ignored
binary offsets, FRC0-4 only) and unimplemented spec features (multi-LRP
consistency, PointAlongLine offset/SOR/ORI, BEARDIST bearing, partial
FOW inference, unsupported location types).

Also corrects the max_candidate_distance_m docstring: it gates the
decode on at least one LRP having a close candidate, not each candidate.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@bnaul
bnaul merged commit d794647 into main Aug 26, 2026
0 of 2 checks passed
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