Перевод названий всех городов

Про интервики - согласен. Раз CC0, можем брать.

Про координаты - не согласен. Использование координат из текста статьи, ИМХО, является созданием derivative work, а значит должно быть share alike, что OSM явно не выполняет.

Есть данные Natural Earth: «All versions of Natural Earth raster + vector map data found on this website are in the public domain».

Есть данные Geonames: «This work is licensed under a Creative Commons Attribution 3.0 License». Можно им написать и попросить разрешение использовать данные для OSM.

Но мне кажется, наименования географических объектов — это общественное достояние. С численностью — вопрос.

Мне присылали e-mail «исправьте пожалуйста пос. Железнодорожный, у него какие-то левые координаты» или «у вас в базе три Москвы». Я лез в MySQL-базу и исправлял. На сайте никаких соглашений нет. Это какие условия?

Ну это уже перебор. Я же не копировать собираюсь, а показать пользователю, что на этот счет думает Википедия. И пользователь уже будет принимать решение насчет названий.

Координаты и сам набор городов я не буду менять. Да и вообще не понимаю, как может существовать копирайт на географические наименования. Если я из Википедии узнал, что есть город Усть-Каменогорск, то что теперь? Нельзя использовать это знание?

Спасибо за ссылку, но там ад какой-то. 15 минут смотрел на эту таблицу, но так и не понял, как этим пользоваться. Что значит кнопка upd? Что должна делать кнопка JOSM, почему она этого не делает? Как мне выбрать все приличные города (city) по всему миру или по региону?

В общем, я примерно понял ситуацию, пойду программировать.

Остались два вопроса.

В базе OSM я вижу много объектов вида “type”: “area”, “tags”.“place”: “city”.
Ведь это границы городов и меня они не должны интересовать?

Если русское название для населенного пункта не найдено, могу ли я использовать транскрипцию для известных языков?
Насколько я понял, не могу:

Плохо, что при этом получится множество объектов без русского наименования и его придется придумывать на этапе отображения. Это значит, что каждый движок должен содержать правила транскрипции для десятков языков. Мне известны правила (и есть код) для шестнадцати. На практике это значит, что транскрипции не будет.

Хотя, на странице multilingual names я вижу примеры, которые явно говорят о необходимости транскрипции (но в сторону от местного названия к международному — не наш случай):

Example:
name=: name in Bulgarian (булевард Източен)
int_name=: transcribed name (bulevard Iztochen)
name:en= (optional): Iztochen Blvd.

Про словарь

Его и с викизнания распарсить довольно сложно… К тому же, непонятно, есть ли в этом смысл, т.к. сам словарь получен путем транскрибирования местных названий:

place = city — это территория населенного пункта, а ни в коем случае не граница. Часто рисуется на глаз по видимому на спутниковых снимках краю застройки.
Все границы у нас boundary.

Вижу области (area), в которых одновременно есть теги “place”: “city” и “type”: “boundary”.

Скажите, фактически ставится ли точка (node) для каждого города? Или бывают города, у которых только территория/граница?
Точка нужна для определения таких штук, как координаты города и расстояние от города до других точек. С area это неудобно делать.

Вижу в форуме дискуссии на эту тему. Там, как обычно, у каждого есть свое мнение и нет способа выяснить, как же в итоге нужно делать.

Не совсем понимаю причем тут координаты если хотят брать перевод из Вики.
Берем к примеру Москва
И вот вам перевод на разные языки:


[[ab:Москва]]
[[ace:Moskow]]
[[af:Moskou]]
[[ak:Moscow]]
[[als:Moskau]]
[[am:ሞስኮ]]
[[an:Moscú]]
[[ang:Moscoƿ]]
[[ar:موسكو]]
[[arc:ܡܘܣܩܒܐ]]
[[arz:موسكو]]
[[ast:Moscú]]
[[av:Москва]]
[[ay:Mosku]]
[[az:Moskva]]
[[ba:Мәскәү]]
[[bar:Moskau]]
[[bat-smg:Maskva]]
[[bcl:Mosku]]
[[be:Горад Масква]]
[[be-x-old:Масква]]
[[bg:Москва]]
[[bi:Moskow]]
[[bn:মস্কো]]
[[bo:མོ་སི་ཁོ།]]
[[br:Moskov]]
[[bs:Moskva]]
[[bxr:Мушхаваа]]
[[ca:Moscou]]
[[ce:Москох]]
[[ch:Moscow]]
[[ckb:مۆسکۆ]]
[[co:Moscù]]
[[crh:Moskva]]
[[cs:Moskva]]
[[csb:Mòskwa]]
[[cu:Москъва]]
[[cv:Мускав]]
[[cy:Moscfa]]
[[da:Moskva]]
[[de:Moskau]]
[[diq:Moskowa]]
[[dsb:Moskwa]]
[[dv:މޮސްކޯ]]
[[dz:མཽས་ཀོ།]]
[[el:Μόσχα]]
[[eml:Måssca]]
[[en:Moscow]]
[[eo:Moskvo]]
[[es:Moscú]]
[[et:Moskva]]
[[eu:Mosku]]
[[ext:Moscú]]
[[fa:مسکو]]
[[fi:Moskova]]
[[fiu-vro:Moskva]]
[[fo:Moskva]]
[[fr:Moscou]]
[[frp:Moscou]]
[[frr:Moskva]]
[[fy:Moskou]]
[[ga:Moscó]]
[[gag:Moskva]]
[[gan:莫斯科]]
[[gd]]
[[gl:Moscova - Москва]]
[[gn:Mosku]]
[[got:??????/Moskwa]]
[[gv:Moscow]]
[[haw:Mokekao]]
[[he:מוסקבה]]
[[hi:मास्को]]
[[hif:Moscow]]
[[hr:Moskva]]
[[hsb:Moskwa]]
[[ht:Moskou]]
[[hu:Moszkva]]
[[hy:Մոսկվա]]
[[ia:Moscova]]
[[id:Moskwa]]
[[ie:Moskwa]]
[[ilo:Moscow]]
[[io:Moskva]]
[[is:Moskva]]
[[it:Mosca]]
[[iu:ᒨᔅᑯ]]
[[ja:モスクワ]]
[[jbo]]
[[jv:Moskwa]]
[[ka:მოსკოვი]]
[[kaa:Moskva]]
[[kab:Mosku]]
[[kbd:Мэзкуу]]
[[kg:Moskva]]
[[kk:Мәскеу]]
[[kl:Moskva]]
[[kn:ಮಾಸ್ಕೋ]]
[[ko:모스크바]]
[[koi:Мӧсква]]
[[krc:Москва]]
[[ku:Moskow]]
[[kv:Мӧскуа]]
[[kw:Moskva]]
[[ky:Москва]]
[[la:Moscua]]
[[lad:Mosku]]
[[lb:Moskau]]
[[lbe:Москав]]
[[lez:Москва]]
[[lg:Moosko]]
[[li:Moskou]]
[[lij:Mosca (çittæ)]]
[[lmo:Musca (Rüssia)]]
[[ln:Moskú]]
[[lt:Maskva]]
[[lv:Maskava]]
[[mdf:Моску]]
[[mg:Moskva]]
[[mhr:Моско]]
[[mi:Mohikau]]
[[mk:Москва]]
[[ml:മോസ്കോ]]
[[mn:Москва]]
[[mr:मॉस्को]]
[[mrj:Москва]]
[[ms:Moscow]]
[[mt:Moska]]
[[mwl:Moscobo]]
[[my:မော်စကိုမြို့]]
[[myv:Москов ош]]
[[mzn:موسکو]]
[[na:Moscow]]
[[nah:Moscohuia]]
[[nap:Mosca]]
[[nds:Moskau]]
[[nds-nl:Moskou (stad)]]
[[new:मस्को]]
[[nl:Moskou]]
[[nn:Moskva]]
[[no:Moskva]]
[[nov:Moskva]]
[[nrm:Moscou]]
[[oc:Moscòu]]
[[or:ମସ୍କୋ]]
[[os:Мæскуы]]
[[pa:ਮਾਸਕੋ]]
[[pap:Moskou]]
[[pcd:Moscou]]
[[pdc:Moscow]]
[[pl:Moskwa]]
[[pms:Mosca]]
[[pnb:ماسکو]]
[[pnt:Μόσχα]]
[[ps:مسکو]]
[[pt:Moscovo]]
[[qu:Moskwa]]
[[rmy:Moscova]]
[[ro:Moscova]]
[[roa-rup:Moscova]]
[[roa-tara:Mosche]]
[[rue:Москва]]
[[sah:Москва]]
[[sc:Mosca]]
[[scn:Mosca (Russia)]]
[[sco:Moscow]]
[[se:Moskva]]
[[sg:Moscow]]
[[sh:Moskva]]
[[simple:Moscow]]
[[sk:Moskva]]
[[sl:Moskva]]
[[sm:Moscow]]
[[so:Moskow]]
[[sq:Moska]]
[[sr:Москва]]
[[ss:Moscow]]
[[st:Moscow]]
[[stq:Moskau]]
[[su:Moskwa]]
[[sv:Moskva]]
[[sw:Moscow]]
[[szl:Moskwa]]
[[ta:மாஸ்கோ]]
[[te:మాస్కో]]
[[tet:Moskovu]]
[[tg:Маскав]]
[[th:มอสโก]]
[[tk:Moskwa]]
[[tl:Moscow]]
[[tpi:Mosko]]
[[tr:Moskova]]
[[tt:Мәскәү]]
[[ty:Moscou]]
[[udm:Муско]]
[[ug:Moskwa]]
[[uk:Москва]]
[[ur:ماسکو]]
[[uz:Moskva]]
[[vec:Mosca (Rusia)]]
[[vep:Moskv]]
[[vi:Moskva]]
[[vls:Moskou]]
[[vo:Moskva]]
[[wa:Moscou]]
[[war:Moscow]]
[[wo:Mosku]]
[[xal:Москва балһсн]]
[[xmf:მოსკოვი]]
[[yi:מאסקווע]]
[[yo:Mọsko]]
[[za:Moscow]]
[[zea:Moskou]]
[[zh:莫斯科]]
[[zh-classical:莫斯科]]
[[zh-min-nan:Bo̍k-su-kho]]
[[zh-yue:莫斯科]]
[[zu:IMoskwa]]

Причем это берется на одной странице (ссылка выше).
Переход на страницу неоднозначности будет говорить об ошибке в самой статье. (Как то городок в Британии и железная дорога в Китае.)
Ссылка должна однозначно определять . К примеру Грузия
Для анг. Вики четко определена ссылка [[en:Georgia (country)]] заметьте страна а не штат.

Ну и раз пошла такая пьянка может и теги wikipedia=en: сразу заполнить. Один черт данные те же самые :slight_smile:

У себя - используйте как хотите, но только в базу это вносить не нужно.

Не на этапе отображения, а на этапе конвертации. Там это делается элементарно через плугин к osmosis-у. Кроме того, есть разные правила даже для одного языка, сегодня нужен один вариант, а завтра понадобился другой - опять базу курочить?

Какие языки этот плугин может транскрибировать на русский?

Ну, это тупик. Так вы навсегда останетесь без русских названий, т.к. во всех печатных справочниках названия появляются с использованием таких непостоянных правил. Дело ваше, конечно. Мне без разницы, на чьей стороне будет происходить транскрибирование.

Какие запрограммируете. Я по работе писал такой плугин (для карты на http://transport.orgp.spb.ru/Portal/transport/main?lang=en) - там делов на полчаса максимум.

Если название на русском устоялось - разумеется его надо вносить в базу как name:ru. А если нет - то лучше я сам выберу каким алгоритмом его формировать (и из какого языка).

Автоматическую транскрипцию деревень и сел точно не стоит лить в базу. Если англичанам к примеру понядабятся транскрибированные названия малых городов России я думаю они лучше сделают.

Его надо написать :slight_smile: Но если вы опубликуете используемые вами правила транскрибирования для разных языков - можно будет закатать это в плагин для осмосиса.

Хочу обратить внимание на аспект: Что населённые пункты, могут иметь точку с тэгами города/деревни, а так же с такими же тэгами на полигоне. Вполне вероятно, что полигон может быть отношением. Так что вносить изменения возможно нужно будет аж в три места:D

Ничего они не сделают
http://forum.openstreetmap.org/viewtopic.php?pid=176599

По Украине для всех населенных пунктов у которых не было name:en это название было сгенерировано ботом. По точно тем же правилам транскрипции что используются УкраАвтоДором для обозначения английских названий населенных пунктов на дорожных знаках. Думаю, что среди англичан не найдутся те кто знают эти правила. Хранение этих автоматически полученных данных позволяет всем пользоваться этой информацией и не выискивать в интернете а как должно быть или выдумывать свой велосипед.
http://www.openstreetmap.org/?lat=52.106&lon=31.835&zoom=11&layers=Q

А Укравтодор умеет транскрибировать на немецкий и польский? А на суахили или хотя бы упрощенный японский?
P.S. Может поможем и в этом деле?

Определена транскрипция Украинский → Латинница, не более того (заметьте, латинница, а не английский или немецкий). Даже на русский язык так переводить нельзя. И таки да, правила официальные, из постановления Кабинета Министров Украины.

Да ради бога! Лопату в руки - и вперёд, устанавливать указатель “Жмеринка” на суахили!

Смысл-то в автопереводе какой?

Взять выгрузку osm-данных и пользоваться готовыми данными, а не реализовывать алгоритм автоперевода или выискивать плагины к осмосису

Тогда почему латиницу пишут в name:en??

Вот именно — сомнительный.

Я в любом случае говорю только про города (city — в первую очередь, town — во вторую). Это десятки тысяч, а не сотни. Всё это можно руками перебрать.

Это сложная задача. Я собираюсь использовать Транскриптор, но там довольно мало языков. И его исходники я опубликовать не могу.

Дело в том, что на данный момент я считаю неправильным делать транскрипцию английского названия, которая уже является транскрипцией или транслитерацией исходного названия. Но нужно получше изучить вопрос.