Linked-data wrapper around the
GISCO Address API
(European register of addresses, 31 countries, sourced from national
registers). Addresses are locn:Address resources with GeoSPARQL
geometry, data.europa.eu NUTS
links and per-country attribution.
search?country=&province=&city=&road=&housenumber= — structured forward geocodingreverse?lon=&lat= — ~5 nearest addressesaddr/{country}/{postcode}/{city}/{road}/{housenumber} — dereferenceable address URI, built from the register attributescountries, provinces, cities, roads, housenumbers, postcodes, copyright — hierarchical lookups and per-country attribution/vintageThis is a structured geocoder, not a free-text one: there is no
single-string query. search takes the address split into its parts
(road, housenumber, plus postcode or
city); a road-only search returns every address on the street.
Matching is tolerant: input is canonicalized against the register's spellings
— case, Mercatorstr. → MERCATORSTRASSE,
Kiel → KIEL, LANDESHAUPTSTADT,
Paseo de la Castellana → PS CASTELLANA, umlauts,
misspellings, 1-3 → 1- 3 — and any
applied corrections are reported in the JSON response
("corrections").
Try: search?country=DE&postcode=24106&city=Kiel&road=Mercatorstr.&housenumber=1
Formats: append .ttl, .rdf, .nt or
.json (default), or content-negotiate via Accept.
The register is compiled from the national mapping and cadastral agencies (see copyright for who provides which country). So, as examples: the providers' own front doors, found in their own data.
WIEN(STADT), city
WIEN,LEOPOLDSTADT, house number literally 1- 3)TAGENSBO)PS CASTELLANA)Reverse geocoding, at the BKG front door: reverse.ttl?lon=8.6655691&lat=50.0904164
search and reverse are LIDS (Speiser & Harth,
ESWC 2011). Each call document <route>?<query> carries
the provenance record and relates two hash-URI entities: the input entity
<…#input> — a
vocab#AddressPattern holding the search
parameters as locn: properties, or a vocab#Location
point for reverse lookups — linked via vocab#output to the
output entity <…#output>, a
vocab#ResultSet whose rdfs:members are the matched
addresses. All URIs are mintable by construction: write the query, append the
fragment.
Address entities live at
addr/{country}/{postcode}/{city}/{road}/{housenumber}#it, with the
suffix-less URI as their document: the identifier is the address itself, in the
register's canonical attributes — no third-party identifier standard.
Anyone who knows an address can mint its URI (values uppercased,
percent-encoded; a / inside a value is written ~1,
RFC-6901 style); the wrapper dereferences it with one register search. The
Open Location Code (“plus
code”, a short open-sourced encoding of a small lat/lon cell) that GISCO
returns with every address is kept as a plain vocab#olc data
property for cross-referencing — it is not the identity. The
authoritative INSPIRE AD register identifiers, which GISCO does not expose,
are the sister project linked-geocoder's mandate.
Every served RDF document carries PROV records:
prov:hadPrimarySource (the exact upstream GISCO request URL),
prov:generatedAtTime, and prov:wasAttributedTo
<index#addressapiwrap>, the
prov:SoftwareAgent described at index.ttl.
Attribution to the national provider (dct:rights, one per country
in the result) and dct:source sit on the document as well;
per-country data vintage is in copyright.