Projects

Ptolemy: POI Aggregation

Combining heritage places from OpenStreetMap, Wikipedia and other open sources

Client
Ptolemy
Year
2022
Before
AI
Subject
GIS
Result
Heritage places schema, multi-source data import

What I did

OpenStreetMap tells you where a heritage place is, but often not much more. To give each place a proper page, my heritage travel app Ptolemy needed to combine several open sources.

I designed one schema for heritage places that could take records from OpenStreetMap, Wikipedia, DBpedia and Wikidata, and later the Italian Ministry of Culture’s open data. Each record keeps its ID in every source, so a place can always be traced back and updated. When sources disagree, a priority list decides: DBpedia for names, eras and cultures, OpenStreetMap for type, size and location.

Wikidata and DBpedia were queried with scripts that split Europe into tiles and kept to a request limit, so a whole region could be pulled without overloading the services.

Matching the same place across sources was the hardest part. Two records counted as one place if they were very close together and had similar names, using fuzzy text matching in PostgreSQL. Matched records were then merged, keeping the best value for each field. I tested this on Milan first, and the final dataset kept OpenStreetMap as its base, with Wikipedia and Wikidata links on each place.

Smaller datasets came in for specific projects, like the abbeys along the Via Francigena pilgrim route for the 2025 Jubilee in Rome. I also wrote a small crawler with Playwright to pull our tour listings, photos and reviews from GetYourGuide, so we could reuse them in the app.

More like this

Contact

Need something like this?

Email me about a project like this