Filed by #244 (p7-s4). Named in osm_mapping.md §6 and ADR-0012.
The obligation
OpenStreetMap data is licensed ODbL 1.0, which requires that any produced work derived from it carry attribution. A .xodr built by importing an OSM extract is such a work.
What p7-s4 does today
The importer reports the licence and the source file in the import diagnostics, and states plainly that attribution remains the user's obligation. That is honest but weak: the notice lives in a panel the user closes, and nothing travels with the exported file.
Why it was not done in p7-s4
There is no free-text provenance field in OpenDRIVE's <header>, so the carrier would have to be an rm: <userData> code — and under ADR-0008 every rm: code owes a parser, a fuzz-corpus sample, a round-trip test and a registry row in the ADR table, all gated by core/tests/test_rm_registry.cpp. That is a feature, not a line of code, and bundling it into an import sprint is how it would get done badly.
Note the roads already carry provenance — the OpenDRIVE id is osm.<way>.<segment> — which is machine-readable and survives a round trip. What is missing is the licence statement, not the lineage.
Scope
- A new registered
rm: code (something like rm:attribution, root scope) carrying source name, licence identifier and import date.
- The full ADR-0008 obligation set: parser, writer, fuzz-corpus sample, round-trip test, registry row,
rm_codes.hpp entry.
- Decide whether this is OSM-specific or a general import-provenance carrier. It should almost certainly be general — GIS layers and lidar tiles have the same question and today have the same non-answer.
- Surface it somewhere a user can read it without opening the XML.
Worth checking first
Whether ASAM has added a provenance element in a revision newer than 1.9.0. If a normative carrier exists, use it and do not invent an rm: code — that is the ADR-0008 rule.
Filed by #244 (p7-s4). Named in osm_mapping.md §6 and ADR-0012.
The obligation
OpenStreetMap data is licensed ODbL 1.0, which requires that any produced work derived from it carry attribution. A
.xodrbuilt by importing an OSM extract is such a work.What p7-s4 does today
The importer reports the licence and the source file in the import diagnostics, and states plainly that attribution remains the user's obligation. That is honest but weak: the notice lives in a panel the user closes, and nothing travels with the exported file.
Why it was not done in p7-s4
There is no free-text provenance field in OpenDRIVE's
<header>, so the carrier would have to be anrm:<userData>code — and under ADR-0008 everyrm:code owes a parser, a fuzz-corpus sample, a round-trip test and a registry row in the ADR table, all gated bycore/tests/test_rm_registry.cpp. That is a feature, not a line of code, and bundling it into an import sprint is how it would get done badly.Note the roads already carry provenance — the OpenDRIVE id is
osm.<way>.<segment>— which is machine-readable and survives a round trip. What is missing is the licence statement, not the lineage.Scope
rm:code (something likerm:attribution, root scope) carrying source name, licence identifier and import date.rm_codes.hppentry.Worth checking first
Whether ASAM has added a provenance element in a revision newer than 1.9.0. If a normative carrier exists, use it and do not invent an
rm:code — that is the ADR-0008 rule.