Skip to content

PeterBrodersen/osmetymology

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OSM Etymology

Etymology map based on OpenStreetMap and Wikidata. This is geared for Danish content.

OpenStreetMap has references to Wikidata for a bunch of Danish streets. This project aims to make the information searchable.

A live version of the project can be found at https://navne.findvej.dk/

Overview

OpenStreetMap is a freely available map resource. Wikidata is a freely available structured data resource.

OpenStreetMap uses tags such as name:etymology:wikidata to link to Wikidata items. Using these items it is possible to show maps based on different topics such as country, gender, profession and so on. Check out an example from Open Etymology Map showing a map of Odense grouped by occupation.

Install

Requirements

  • Postgres database
  • PHP installation
  • osm2pgsql
  • ogr2ogr, typically found in gdal-bin.

Installation

  1. Set the PGDATABASE variable to the name of your database.
  2. Create a schema called osmetymology in your Postgres database.
  3. Run the import script. This takes about half an hour.

This will generate the aggregated GIS table as well as supporting FlatGeobuf file (for web usage) and CSV file (for simple overview).

The import script can simply be run again to retrieve updated data. GeoFabrik usually updates around daily.

For web usage:

  1. Copy config/db.example.php to config/db.php and update the variables with your database credentials.
  2. Point your web server to the www folder.

All done!

Code

The web project is based on Leaflet with PostgreSQL as DB backend. No OpenStreetMap editing feature is planned.

The FlatGeobuf map file contains all data when clicking the map.

A search option allows users to search for street names.

Import process

The import script works as follows:

  1. Download copy of OpenStreetMap data in Denmark from GeoFabrik
  2. Download geometry of Danish municipalities from DAWA
  3. Import to PostgreSQL using osm2pgsql with Flex output for storing keys in JSON field
  4. Import Danish municipality boundaries
  5. Create aggregated table of imported data, grouping by name and etymology - no need to have several individual road segments
  6. Fetch set of every Wikidata item from the OpenStreetMap data as well as their "Instance of" items
  7. Save geometry table as FlatGeobuf file for web service as well as CSV file
  8. Profit!

The munitipality split is based on the idea that any named conceptual road should only exist once in a municipality. Every road segment for a street with a specific name should be considered the conceptually same road. OpenStreetMap does not group roads with the same name in the same area or split roads on municipality boundaries and roads do not have the official Danish muncipality+street codes (3+4 digits).

Performing the grouping and split makes it easier to answer conceptual questions such as:

  • How many roads are named after H.C. Andersen?
  • What is the most common street name in Denmark?
  • Which item are Danish roads often named after?
  • Which item is referenced by the most different names?

In these cases it makes no sense to tally up every road segment with the same name or Wikidata item. This would result in an arbitrary count as even a straight road might consist of several individual segments with different speed limits, lane count, surface material, oneway rules, and so on.

Updating the map

The service does not provide any edit feature, however there are several editors and other services to help you. Check out e.g. MapComplete Etymology Map.

Check out the editing article for more information about caveats and issues.

Editors and data sources

OpenStreetMap and Wikidata can be edited by anyone. One of the most used editors for adding etymology data to streets and other objects is the MapComplete Etymology Map. Of course, other editors such as JOSM can be used as well for advanced users.

Some of the more active users for adding etymological data in Denmark are Søren Johannessen and Peter Brodersen.

Adding data

There are multiple options for figuring out the origin of a street name, such as:

  • City reference guides for street names (books, Wiki pages)
  • Web searches for names for the specific town
  • Local context (e.g. a road named Roskildevej leading to the city of Roskilde; a Kirkevej leading to the specific local church)
  • Names with unambigious topics (e.g. Folke Bernadottes Alle → Folke Bernadotte, Ugandavej → Uganda, Birkevej → birk )

Caveats

Some items might be deceptive, not unlike the linguistic topic of false friends. These are cases where the answer seems obvious but where the devil is in the detail.

A couple of examples:

  • Lærkevej is the most common street name in Denmark, but the name is ambigious as it could be named after the lærke/lark bird, the lærk/larch tree or even the common female given name Lærke, perhaps a specific person with Lærke as first name or surname
  • Several people can share the same name. Some families have several people where the child has the same name as their parent. Other times two persons just happen to share the same name. And even other times a road is not named after an individual person but their whole family.
  • Some names might seem connected with the same theme but one of them could have a different origin.
    • Amerikavej, Copenhagen is not named after The Americas or US but after a local mansion that an American consul named America.
    • Stockholmsgade, Copenhagen is not named after the Swedish captial Stockholm, but after an old beer garden called Stokholm. However other roads in the area are named after Nordic cities and persons.
    • Englandsvej, Copenhagen is not quite clear. There are several roads in the area definitely named after other countries, but Englandsvej could be the road that leads to the countryside with the meadows (enge). (It probably is named after England though).
    • Vejlegade, Nakskov is not named after the Danish town Vejle but after "vejle", an old name for a ford (vadested). This is also the origin of Vejle's name.
  • Some names are just deceptive.
  • Some roads have names based on historic data but due to changes they could be misinterpreted.
    • Roads with names such as Kirkevej, Skolevej, Stationsvej and so on might refer to earlier schools, churches and railway stations. School buildings have often changed purposes (public schools becoming gymnasiums, gymnasiums might merge, etc).
  • An animal or a plant could have the same name in different taxonimic ranks. A road named Rosevej could be named after the rose order, family or genus. Or even a person named Rose as mentioned under the Lærkevej example.
    • There is no clear answer here as the responsible people at the municipality (or whomever named the road) might not be taxonomists as well but simply pointed at some plants, stating "This road is named after those things". A project grouping categories might need a list of the most common connections as the OpenStreetMap editors might simply choose an arbitrary taxonomic rank when there is no obvious choice.
      • Furthermore every animal and plant order, family, and species are simply listed as taxon. Further checks, usually at the Wikidata subclass level, should be checked to determine basic information such as whether the item is an animal, plant or whatnot if possible (even if there is no such thing as a fish).

Resources

Check the source list for different locations in Denmark.

Bugs

Probably several (check Issues). Currently the most important:

Ways outside municipality boundaries

Currently all ways are aggregated based on name and etymology and afterwards split based on intersecting municipality boundaries.

However as Danish municipality boundaries by definition do not expand over coastlines some items will be lost, such as Christian D. IV's Bro which spans a canal that is connected to the ocean.

More info: Issue #8

Other resources

Similar projects exists, such as Open Etymology Map GitHub.

About

Etymology map based on OpenStreetMap and Wikidata

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published