Framework for creating interactive maps that combine and display details about entities associated with geographic features from OpenStreetMap and Wikidata. The types of geographic features and related entities to show are choosen by editing a configuration file and automatically handled by the framework.
Data source pattern | Image |
---|---|
OpenStreetMap elements linked to related entities through *:wikidata keys (for example name:etymology:wikidata ). Can be configured with osm_wikidata_keys (JSON array of OSM keys to use). |
|
Wikidata entities with the property P625 ("coordinate location") and specific properties linking to related entities. Can be configured with osm_wikidata_properties (JSON array of Wikidata property P-IDs to use). |
|
OpenStreetMap wikidata=* tag combined with Wikidata direct properties. Can be configured with osm_wikidata_properties (JSON array of Wikidata property P-IDs to use). |
|
Wikidata entities with the property P625 referenced by a related entity through reverse properties (for example P119 ("place of burial")). Can be configured with wikidata_indirect_property (Wikidata property P-ID to use). |
|
OpenStreetMap wikidata tag combined with Wikidata reverse properties. Can be configured with wikidata_indirect_property (Wikidata property P-ID to use). |
|
Wikidata property P625 used as qualifier for reverse properties. Can be configured with wikidata_indirect_property (Wikidata property P-ID to use) and wikidata_image_property (Wikidata property P-ID to use to get an image of the map feature). |
|
Case insensitive search of names used by multiple roads far from each other which have exactly and only the same etymology (obtained from the sources above) and propagation of that etymology to all elements with the same name. Can be enabled/disabled with propagate_data . Feature meant specifically for Open Etymology Map. |
For more details see CONTRIBUTING.md.
The most basic deployment can be launched by using Docker and executing these shell commands:
- Create the
.env
configuration file from the template (.env.example)curl -o .env https://gitlab.com/openetymologymap/osm-wikidata-map-framework/-/raw/main/.env.example
- Edit the file
.env
to configure your map- set the OSM keys and Wikidata properties you want to use (as documented above) in the "Data source" section
- other configuration keys should be fine but can be edited to customize the web application. If you expose your app on a domain/address different than localhost or 127.0.0.1 you will also need to specify a token/key for the background map (either
mapbox_token
,maptiler_key
,enable_stadia_maps
orjawg_token
) - take inspiration from configurations of other projects like Open Etymology Map, Open Burial Map, Open Artist Map, Open Architect Map, ...
- Launch the docker image of the framework
The web application will be accessible at http://localhost
docker run --rm --env-file ".env" -p "80:80/tcp" "registry.gitlab.com/openetymologymap/osm-wikidata-map-framework:latest"
If this process fails for you or you encounter any bug during the process we want to hear from you: please report it on GitLab or GitHub.
For more advanced deployment configurations check CONTRIBUTING.md.
The framework is fully internationalized.
By default the browser language is used.
You can force another language by passing the ISO 639-1 language code to the lang
parameter.
For example https://etymology.dsantini.it/?lang=es passes es
to require data in spanish.
Translations for the labels specific to the framework are taken from the files in public/locales/ (help with new translations is welcome!).
The translated text in the details panel for the map feature selected by the user are taken from from OSM name:*=*
and Wikidata labels.
Translations for the map labels are handled by the map provider (and are typically derived from OSM and/or Wikidata).
- Wikidata SPARQL Query Service
- Overpass API
- Wikimedia REST API
- Python + Apache Airflow
- PHP + PostGIS
- Typescript + MapLibre GL JS