Is there a Python package or database source which would allow me to go from various romanizations of Arabic town names in Syria and Iraq to a canonical romanization?

Here is an example where the left romanization is one kind used by a US Government record collection and the other appears in a Syrian government press release. The Government names seem to be more well known and look-upable than the names used by the Syrian Government. I would like to find a canonical reduction of the two into a single reliable name:

  • Al Bāqāt::al-Bakat
  • Al Ismā‘ilīyah::al-Ismailiya
  • Arjul::Arjal
  • Batrānah::Batrana
  • Bīshah::Bisha
  • Buraydah::Barda
  • Burj ‘Izzāwī::Burj Ghazawi
  • Burj Subaynah::Burj Sabna
  • Buslah::Bassila
  • Buwayḑah al Kabīrah::Bouaida Kabira
  • Buwayḑah aş Şaghīrah::Bouaida saghira
  • Ghurayrīfah::Gharirfa
  • Jabal al Mudawwar::Jabal al-Madwar
  • Jafr Manşūr::Ja’far Mansour
  • Jubb al Khāfī::Jub al-Khafi
  • Jubb at Tīnah::Jub al-Tina
  • Judaydah::Jadida
  • Kafr Ḩawt::Kafro Hoot
  • Khanāşir::Khanaser
  • Khirbat al Ma‘ājīr::Khirbet al-Muaijer
  • Madāyin Kabīrah::Madaen Kabir
  • Munbaţiḩ::Munbateh
  • Rasm al Bās::Rasm al-Bassas
  • Rasm al Karkūr::Rasm al-Karkour
  • Rasm Shawkān::Rasm Shoukan
  • Rujaylah::Rjaila
  • Şuwayyān::Soyan

Although the data will likely will require some additional tweaking; OpenStreetMap has what you're looking for.

For example, in this query run in the Overpass tool that I ran for you of all placesthat are classified as a city in OSM (note: query may take several seconds to load on your computer; you're probably best off exporting it immediately to run the query, then export to your computer).

The value for the name tag will have the place's name in the local language that is usually used for common signs and is also often the lingua franca for that particular place.

OSM listing of Haidtha

But, and what you're looking for - many places will also have an additional name: tag that represents the town's name in that particular language, as shown in the above image. OpenStreetMap (OSM) is a crowdsourced dataset so there may be many places that do not have an English or canonical romanization; or there may be some places that you'd consider to be a small village but OpenStreetMap has it tagged as a city; there may even be towns that are missing.

Criteria for defining a place in OSM is here but these are highly recommended best practices and users who add the data may not necessarily exactly follow it.

If you're comfortable with python, I'd recommend using the overpass wrapper to fetch the data; or you could use the overpass tool that I mentioned above, export into geojson and then convert into postgis, a postgresql library that supports geospatial functions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.