OpenStreetMap logo OpenStreetMap

anqixu's Diary

Recent diary entries

Transliteration Final Report: GSOC 2025

Posted by anqixu on 30 August 2025 in English.

Hi everyone, this is the update on the final phase of my project in adding transliteration support to Nominatim’s search results! A quick refresher: this project focused on adding transliteration as an option to users who did not understand the local language of a name, in which an understandable tag was not available.

Background

For background, you can check the overview of the project and the midterm report down below:

The bulk of the work can be found in these pull requests:

Detailed Report of the Project

The detailed version of the report can be read here (version pending Github Commit).

What I did

  • Integrated transliteration into Nominatim so search results in unfamiliar scripts (e.g. 北京市) can be displayed in a user-readable form (e.g. Beijing).
  • Built a pluggable transliteration framework supporting Latin script via unidecode, with prototypes for Cantonese, Simplified Chinese, and Traditional Chinese.
  • Refactored the Locales class and results pipeline for clearer responsibilities, modularity, and maintainability.
  • Introduced a languages.yaml configuration file for language normalization and country-language mapping.
  • Implemented new logic for parsing browser language headers, including handling of ambiguous codes like zh.
  • Wrote extensive unit tests and updated GitHub workflows for optional dependencies.
  • Added documentation to explain the new localization and transliteration system.

Possible Next Steps

A summary of a few possible next steps are below:

  • Improve regionalization (e.g. Hong Kong and Macau, which Nominatim does not yet recognize as independent from China).
  • Refine fallback logic when multiple languages are present.
  • Extend the non-Latin transliteration framework with more language-specific implementations.
  • Expand testing for robustness and reliability.

See full entry

Transliteration Final Report: GSOC 2025

Posted by anqixu on 30 August 2025 in English.

Hi everyone, this is the update on the final phase of my project in adding transliteration support to Nominatim’s search results! A quick refresher: this project focused on adding transliteration as an option to users who did not understand the local language of a name, in which an understandable tag was not available.

Background

For background, you can check the overview of the project and the midterm report down below:

The bulk of the work can be found in these pull requests:

Detailed Report of the Project

The detailed version of the report can be read here (version pending Github Commit).

What I did

  • Integrated transliteration into Nominatim so search results in unfamiliar scripts (e.g. 北京市) can be displayed in a user-readable form (e.g. Beijing).
  • Built a pluggable transliteration framework supporting Latin script via unidecode, with prototypes for Cantonese, Simplified Chinese, and Traditional Chinese.
  • Refactored the Locales class and results pipeline for clearer responsibilities, modularity, and maintainability.
  • Introduced a languages.yaml configuration file for language normalization and country-language mapping.
  • Implemented new logic for parsing browser language headers, including handling of ambiguous codes like zh.
  • Wrote extensive unit tests and updated GitHub workflows for optional dependencies.
  • Added documentation to explain the new localization and transliteration system.

Possible Next Steps

A summary of a few possible next steps are below:

  • Improve regionalization (e.g. Hong Kong and Macau, which Nominatim does not yet recognize as independent from China).
  • Refine fallback logic when multiple languages are present.
  • Extend the non-Latin transliteration framework with more language-specific implementations.
  • Expand testing for robustness and reliability.

See full entry

Transliteration Midterm Update!

Posted by anqixu on 21 July 2025 in English.

Hi guys!

Quick midterm update from me! Just as a little refresher, my name is Anqi and I’ve been working on the Transliteration of Search Results project this summer.

Time has really flown by and we are at the halfway point! Here I hope to give a summary of the work that’s been done so far, as well as what I hope to accomplish during the next part of the summer! We want to be able to return the transliterated name as a field during search results, with a proof of concept shown here! We can see in this proof of concept that the results are as expected, with the addition of one transliterated name field.

{
"place_id":100067,
"licence":"Data © OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright",
"osm_type":"way",
"osm_id":1307932969,
"place_rank":30,
"category":"amenity",
"type":"school",
"importance":-0.004452559995167061,
"addresstype":"amenity",
"name":"丹东市第六中学",
"display_name":"丹东市第六中学, 七纬路, 站前街道, 丹东市, 振兴区, 118000, 中国",
"transliterated_name":"Dan Dong Shi Di Liu Zhong Xue, Qi Wei Lu, Zhan Qian Jie Dao, Dan Dong Shi, Zhen Xing Qu, 118000, Zhong Guo",
"bbox":[124.3804784,40.1271951,124.3830593,40.1292045],
"geometry":{
"type": "Point",
"coordinates": [124.38176886493923, 40.12819985]
},

The general flow can be visualized as below.

See full entry

Hi Everyone!

My name is Anqi Xu and I’m currently based in Vancouver Canada:) I am a geocoding (and open source) newbie and I’m super honoured to be working on the Transliteration of Search Results project this summer and am really excited to hone my coding skills and learn more about OpenStreetMap! The link to my proposal can be found here. Feedback is welcome (and much appreciated)!

A bit about me; I’m going to graduate (hopefully) from UBC Engineering Physics later this month. I’ve done a variety of internships in many different industries, including quantitative finance, particle physics research, and semiconductor manufacturing! I’m a big believer in lifelong learning, and I really enjoy board games, crosswords, and silly logic games! I’m also a big fan of travelling and visiting new places, and have recently started to document some of that on Youtube.

Thanks for having me and I’m looking forward to meeting everyon!

Location: South Granville, Fairview, Vancouver, Metro Vancouver Regional District, British Columbia, V6J, Canada