geoalgeria
Version:
69 wilayas, 551 dairas, 1541 communes of Algeria: bilingual names, postal codes, coordinates, plus 3908 post offices & 2026 ATMs. JSON, CSV, GeoJSON, SQL, TypeScript.
111 lines (110 loc) • 6.84 kB
JSON
{
"title": "OpenStreetMap relation and Wikidata links for the communes and wilayas",
"source": "OpenStreetMap administrative relations (admin_level=8 for communes, admin_level=4 for wilayas) and their tags, via Overpass",
"endpoint": "https://overpass-api.de/api/interpreter",
"capture": "research/_commune-centres/osm-2026-09-29/admin-relations.json",
"linkage": "research/_commune-centres/osm-seat-reference.json",
"generator": "scripts/add-osm-links.mjs",
"generated": "2026-09-29",
"timestamp_osm_base": "2026-09-29T12:54:47Z",
"licence": "ODbL 1.0, (c) OpenStreetMap contributors",
"license": "ODbL-1.0",
"provenance_notes": [
"The license is the SPDX expression \"ODbL-1.0\" although the package declares \"SEE LICENSE IN LICENSE\": every value this file describes, `osm_relation_id` and the `wikidata` item, is an OpenStreetMap relation id or that relation's own `wikidata` tag, so this part alone is wholly ODbL 1.0, (c) OpenStreetMap contributors, as LICENSE states."
],
"attribution": "https://www.openstreetmap.org/copyright",
"tiers": "Two. The first tier is the 2026-09-29 commune-centre capture, whose Overpass query asks for boundary=administrative AND admin_level=8. The second tier is the three communes that query could not see: OpenStreetMap holds their relations with the right ref:ONS code but non-standard tags, so they are fetched by id into research/_osm-links/relations.json and listed under second_tier below with the tag defect that hid each one.",
"join": "First tier: the linkage scripts/audit-commune-centres.mjs decided, a commune relation joined on its ref:ONS tag, then on a pre-2019-reform ONS code resolved inside the mother wilaya's carved-out communes, then on six reviewed per-relation pins. Five of those pins are spelling gaps: the relation carries the documented pre-reform ONS code and this dataset spells the name differently. The sixth, commune 4401 Ain-Defla, is the one record in the dataset whose relation carries no ONS code at all; it was pinned on the relation's name together with being the single w44 relation still unclaimed once every other w44 commune had been joined on its code, and its admin_centre node falling inside wilaya 44. Second tier: an ONS-code match on a relation the first capture's tag filter excluded. A wilaya relation is joined on its ref tag. Every record but 4401 is linked on an ONS code carried by the relation itself; 4401 is linked by name confirmed by elimination, and no record is linked by a name alone.",
"wikidata": "The Q item is the relation's own wikidata tag, read as published and never looked up or guessed. A relation with no wikidata tag leaves the field null. There is one exclusion, listed under wikidata_excluded below: where the second-source guard proved a relation's tag names a different place, the field is null rather than carrying an item that answers the wrong place. Nothing is ever substituted, only refused.",
"carriers": [
"data/communes_w1_w23.json",
"data/communes_w24_w48.json",
"data/communes_w49_w69.json",
"data/wilayas.json",
"data/algeria.json"
],
"second_tier_capture": "research/_osm-links/relations.json",
"second_tier_timestamp_osm_base": "2026-10-02T10:16:05Z",
"total_communes": 1541,
"total_wilayas": 69,
"coverage": {
"communes_with_relation": 1540,
"communes_with_wikidata": 1538,
"wilayas_with_relation": 69,
"wilayas_with_wikidata": 69
},
"second_tier": [
{
"code_commune": 630,
"wilaya_code": 6,
"name_fr": "Souk Oufella",
"name_ar": "سوق اوفلا",
"osm_relation_id": 4069543,
"wikidata": "Q3087355",
"osm_name": "Souk Oufella",
"tag_defect": [
"no boundary tag"
],
"reason": "the relation carries ref:ONS 630 but no boundary tag, so the 2026-09-29 capture's boundary=administrative + admin_level=8 filter excluded it; fetched by id and linked on the ONS-code match. The tagging is an OpenStreetMap defect owed upstream, not a reason to leave the record unlinked"
},
{
"code_commune": 1634,
"wilaya_code": 16,
"name_fr": "Bir Touta",
"name_ar": "بئر توتة",
"osm_relation_id": 540555,
"wikidata": "Q4917124",
"osm_name": "Birtouta",
"tag_defect": [
"no boundary tag",
"no admin_level tag"
],
"reason": "the relation carries ref:ONS 1634 but no boundary tag and no admin_level tag, so the 2026-09-29 capture's boundary=administrative + admin_level=8 filter excluded it; fetched by id and linked on the ONS-code match. The tagging is an OpenStreetMap defect owed upstream, not a reason to leave the record unlinked"
},
{
"code_commune": 2110,
"wilaya_code": 21,
"name_fr": "Collo",
"name_ar": "القل",
"osm_relation_id": 6407308,
"wikidata": "Q2983525",
"osm_name": "Collo",
"tag_defect": [
"admin_level=11"
],
"reason": "the relation carries ref:ONS 2110 but admin_level=11, so the 2026-09-29 capture's boundary=administrative + admin_level=8 filter excluded it; fetched by id and linked on the ONS-code match. The tagging is an OpenStreetMap defect owed upstream, not a reason to leave the record unlinked"
}
],
"communes_without_relation": [
{
"code_commune": 4703,
"wilaya_code": 47,
"name_fr": "Dhayet Bendhahoua",
"name_ar": "ضاية بن ضحوة",
"reason": "no relation carrying ref:ONS 4703 is a commune: the only one is the Dayet Ben Dahoua daira, relation 6823963 at admin_level=6, which is a different place and covers more than this commune. Both fields stay null rather than linking a daira to a commune"
}
],
"communes_without_wikidata": [
{
"code_commune": 4401,
"wilaya_code": 44,
"name_fr": "Ain-Defla",
"osm_relation_id": 21037899,
"reason": "the relation carries no wikidata tag"
}
],
"wikidata_excluded": [
{
"code_commune": 3424,
"wilaya_code": 34,
"name_fr": "Tefreg",
"name_ar": "تفرق",
"osm_relation_id": 4421860,
"excluded_item": "Q3517130",
"correct_item": "Q7674990",
"found_by": "test/osm-wikidata-second-source.test.mjs, the Wikidata P31 check",
"decided": "Owner, 2026-10-02",
"reason": "the relation's wikidata tag names Achabou (Q3517130), a village inside this commune, not the commune: Wikidata types it as a village and describes it as being in Tafreg commune. The commune's own item is Q7674990, a commune of Algeria. An OpenStreetMap edit is owed on the relation; until it lands the field is null, because publishing the village item would answer a different place, and substituting Q7674990 would be resolving an item ourselves, which this dataset does not do"
}
]
}