Нам нужны вообще ; в значениях для России? Запретим их?

Потому что мапперы у нас не организованные и по факту теги ключ=значение может значить

  1. только часть смыла (теги-матрёшки)

Надеюсь не нужно продолжать?

http://taginfo.openstreetmap.org/keys/capacity#values - толи целое число толи рациональное

  1. захламленные ключи изза коллизий key=
amenity=atm;bank

Бессмысленный type=*. Скажи что никогда не видел проблем с ним?

  1. бессмысленные в России ключи
    leisure=common
    landuse=village_green
    http://wiki.openstreetmap.org/wiki/Deprecated_features

  2. тупо несколько значений в одном смысловом key=, потому что “прокатит”:
    ref=3;4

Напротив:
shop:butcher:pork=* - очень организованный ключ, всякую чушь если и будут мапить, то вычистить легко даже по Taginfo, а не по твоим алгоритмам классификации которые будут решать “Мария” женское имя или мужское
ref=[3; 4] - тоже самое, ничего парсить не нужно, это массив
ref=3 - если маршрут один, то отличия можно определить по типу. Как ты собрался отличать что в строке есть несколько значений или только одно не зная весь (РЕАЛЬНЫЙ, ФИЗИЧЕСКИЙ) мир?

Согласен, это не отменяет что прямо сейчас по-нормальному ты указать не можешь два значения в <строка>=<строка>. Без парсинга в целом.

Тем что в первом тебе нужно убрать кавычки, это не тупые строки, а значения у которых поддерживают смысл, которые документируют на вики. Нижний пример это наоборот, тупая строка value в OSM, невозможен в парадигме <строка>=<строка>.

Затем что его просто расширять и разрабатывать для него. Не можешь понять какую-то “сложную” лично тебе структуру - игнорируй её.

Не заставляй всех писать “только строки” только потому что ты не умеешь писать программы работающие с другими структурами данных или не понимаешь весь смысл ключа со сложными структурами в нём.

(отвешивая челюсть) пункт прохождения гос. тех. осмотра (safety_inspection) у нас под-тэг тэга shop ? не ожидал, если честно :roll_eyes:
собственно, приведённая вики весьма показательна.
т.е. распространённые (и востребованные) в Питере конторы по зимнему хранению байков - это
shop=motorcycle
с под-тэгом services=winter_store что ли? при том, что они не магазины ну ни разу. мда, вот уж не ожидал.

т.е. дилер техники ямаха (мотоциклы, квадроциклы, снегоходы, лодочные моторы), пункт гос. тех. осмотра мотоциклов, салон мотоэкипировки, контора по ремонту байков - это всё один и тот же тэг shop ?

как-то даже неожиданно, если честно :roll_eyes:

Твоя схема, в плане организованности маперов не меняет ровным счетом ничего. Человеки они вообще такие, ошибаются постоянно.

Я по-прежнему, не могу понять, почему ref=3;4 надо парсить, а ref=[3; 4] не надо?

Про женские и мужские имена, ты точно со мною разговариваешь?

В строке “[1,2,3,4,5]” закодировано 1 или несколько значений? А в строке “1;2;3;4;5”?

Должен ли я расценивать любой твой однозначный ответ как заявление что ты познал весь реальный физический мир?

romul_zurov, так сложилось что в нашем сознании shop это только магазин и ничто иное. У англичан, это несколько более широкое понятие.

Меняет, еще как. Я явно говорю что от тегов-матрёшек лучше избавляться, мапить столько тегов, сколько смыслов. Ещё как руководство даёт.

Я тебе говорю это массив и элементы массива. Хватит с этими строка=строка носится.

Барабанная дробь, вопрос дня:

Надеюсь с этого раза ты поймешь почему это “хоть чем-то” отличается от “a; b; c”.

PS. dair меня правильно понял.

И я кажется предупреждал на счет предположений, о том кто что умеет и не умеет.

Насколько я понял, в предлагаемом API возвращаемое значение будет строго типизированным, т.е. в одном случае это действительно строка, а в другом — массив, который, в свою очередь, будет возвращаться то ли в виде XML-деревца, то ли в виде JSON, то ли еще как-то, но не как строка, соответственно можно запрашивать его элементы отдельно поштучно. А “[3;4]” — это просто условная запись, в реальности в таком виде оно возвращаться не предполагается.

А вот эти художесва тоже планируется на уровне АПИ поддерживать?

[pool:(7ft, 8ft), snooker:(9ft, 12ft)]

Вот только и коммиты в этом случае должны валидироваться на соответствие типов. Соответственно, сервер должен иметь список возможных тегов с допустимыми типами для них. Иначе я плохо представляю, как программа-обработчик должна интерпретировать деревце совершенно произвольного вида с произвольными типами данных, полученное как результат какого-то запроса.

Pardonne-moi! А их парсить разве не надо?

Я так понимаю, d1g рассчитывает что все они описаны в вики. А если не описаны то не нужны.

Как я понимаю, да. Это тоже условная запись, на самом деле опять возвращается дерево неизвестного вида.

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

Это написал romul_zurov для наглядности я думаю. В целом - достаточно будет ассоциативного массива с вложенностью, ничего хитрого.

Если захотят - будут вводить структуры set, multiset. Для отдельных ключей. Будут специализировать домены (ключи в OSM) если захотят. Абсолютно опционально. Всё как у больших дядь.

Не, ну что я могу посоветовать, пишите письма в @tagging, @osm-dev, и шлите pull-request’ы.
Но что-то мне подсказывает что эта схема не взлетит.

Что ты носишься с вики когда всё понятно из ключей тем кто хочет использовать данные?

“sport”=yes
“sport:billiard”=yes
“sport:billiard:type”=[snooker, pool]
“sport:billiard:tablesize:snooker”=[6ft, 8ft]
“sport:billiard:tablesize:pool”=[5ft, 7ft]

Те кто захотят связи определять связь в вики, определять формально в XSD между ключами
sport:billiard:type
и
sport:billiard:tablesize:snooker
sport:billiard:tablesize:pool

Пожалуйста - нет, не обязательно. Обрабатывать такие данные может быть проблемнее. “неочевидные теги в OSM” растут только отсюда.

UPD. Связь в вики просто указывается как | combination = у шаблона ключа. Без “роли”, смысла, простой ссылкой. Смысл и роль могут определить дотошные авторы самих ключей. Представь себе, их достаточно и они это делают.

Ну сейчас это отличается от того что я тебе писал только тем, что планируется, что апи умеет возвращать коллекции значений.

Но извини меня, парсер для коллекции кодированой в xml (ведь апи у нас по-прежнему возвращает xml) ничуть не проще чем парсер для значений разделенных ‘;’

И я о том же

Кто их будет видеть в сериализованном виде кроме базы данных и протокола?

Пользователю в JOSM будет не текстовое поле а выбор из автомолита с чекбоксами. Multiselect интерфейсы у тех ключей что этого требуют. Чекбоксы у булевых ключей, если их определят. Если кто-то захочет определить домен ключа и свой виджет ввода написать - пожалуйста.

понял, принято.

повторяюсь: иерархическая схема (один главный тэг, “вложенные” под-тэги) мне представляется неудобной в качестве единственной.
так как может быть сильно условной и неудобной для использования.
пример с мото - показателен - пункт гос. техосмотра мотоциклов оказывается “внутри” тэга shop, а место зимнего хранения мотоциклов - вообще в размытом под-тэге services (прочее, типа).
для узкого/небольшого сервиса это не проблема (хотя и неудобно), а вот увязывать всё это на большом проекте уныло будет.

в то время как (примерная) схема:


motorcycles:winter_store
motorcycles:safety_inspection
motorcycles:equip
motorcycles:repair:japan
atv:tunning
equip:atv:winter

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