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

На скорую руку:
http://overpass-turbo.eu/s/7lf
И неважно, будет ли это shop=кальяны напрокат или shop=bakery;кальяны напрокат

shop=clothes
shop:shoes=yes

У меня навреное руки отвалились это писать ctrl c ctrl v. Согласно пропозалу две тега выше означает нижеследущее:
shop=clothes
“shop:clothes”=main
“shop:shoes”=yes

shop= always implies shop:=main unless further overridden by shop:=yes.*

Скорая рука вам не поможет, не играйте со мной в “я знаю регулярки”.

shop=отравленные кальяны напрокат

Собственно, если мне нужен тип магазина, и у меня нет списка всех возможных значений, а его никогда небыло и сейчас нет, то shop:продажа кальянов=main мне придется парсить. Я конечно не говорю что распарсить это нельзя, но бурной радости, по поводу этой схемы разделить не готов.

И уж тем более не поддержу запрет использования той или иной практики тегирования.

Считаете что

ref:1=yes, ref:3=yes, ref:4=yes, 
ref:5=yes, ref:6=yes, ref:7=yes, 
ref:8=yes, ref:9=yes, ref:10=yes, 
ref:11=yes, ref:12=yes, ref:13=yes 

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

Нет. В новом пропазле идёт речь о маппинге всех категорий товаров что есть в данном шопе. Я против именно этого. Но это если говорить о том, что вообще должно быть в shop=.

А если говорить именно о ‘;’ то это вопрос больше филосовский. Честно говоря, я не вижу никаких проблем с перечислениями именно в этом виде. Если какой-то инструментарий не умеет с этим работать, то это проблема инструментария и не более того. Тем более, что в каких-то случаях использование данного символа всё равно останется.

В каких случаях могут потребоваться более сложные регулярные выражения?
Нужны все магазины одежды и все магазины обуви в одном запросе?

way{{bbox}}["shop"~"clothes|shoes"]

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

Работающих приложений на базе OSM не так много, на самом деле.

Я тебе говорю нет. Смысл “магазин с типологией продажа кальянов” ровно в 26 символах

shop:продажа кальянов=main

Если пропустишь =main, не поймешь что это главный тип у пагазина. Пять букв shop: теперь вообще ничего не значат по новой схеме.

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

И потом ты преувеличиваешь изменения.

Те, кто понимал shop=car_parts, на начальном этапе можно понимать как
shop:car_parts=yes | shop:car_parts=main | shop:car_parts=partial // Копипаста заметна? Простую кодогенирацию здесь надеюсь никому не нужно объяснять? У вас что у mapcss препроцессоров нет? Только не говорите мне пожалуйста что нет.

Более продвинутые POI процессоры могут выделять shop:=main главные и shop:=yes/partial побочные. Корреляция у “основых” к “качеству осблуживания” будет выше чем у остальных в большинстве случаев. Сужу по своим объектам.

Ну конечно, куда же без этого. 170 highway=* тегов с двумя значениями стоят того против пятидесяти миллионов однозначных тегов.

Причина не в запрете. Причина в том как вы будете этим пользоваться если не запретите точку с запятой. Что-то то я не видел объяснящих как пользоваться руглярками или как писать парсер на коленке среди пользователей OSM.

Вы только что сказали пользователям данных OSM “еб@#тесь конём, я маплю один раз”. К вашему сведению этим каким-то иструментарием является всё от Mapnika и вики документации до Taginfo, Osmosis, JOSM.

На секундочку, osm2mp поддерживает точку с запятой и даже удачно разделяет объекты с shop=;;*… на несколько отдельных POI.

Нет смысла описывать в вики все возможные случаи использования “;” в теге. Достаточно описать значения, которые через “;” перечисляются.

TagInfo работает с тегами, как с текстом. Он не может не поддерживать какой-то символ.

В JAVA легко реализовать проверку того, содержит ли строка какую-либо последовательность символов.

boolean String.contains(CharSequence s)

http://kulibaba.net/programming/java/strings

Кроме того, в любом полноценном редакторе есть возможность вручную написать значение тега. И там можно писать и “;”, и всё что угодно. И у редактора не возникнет проблем.

UPD: Overpass-Turbo поддерживает “;”

Кстати, двоеточие уже зарезервировано за неймспейсами.
То есть в предагаемой схеме подзначение не отличить от подтега.

В итоге получится, что «разделятору» на отдельные пои придется знать, что shop:* можно дробить, а building:* нельзя.

Лучше уж использовать для подзначений слэш.
Тогда


shop=coffee
shop/tea=partial

легко и непринужденно, а главное, без дополнительных знаний, превращается в два пои.

В редакторах в списке тегов это при желании можно показывать как несколько одинаковых тегов с разными значениями.
А неймспейсы как поддеревья.

Режим умных тегов:

Режим курильщика:

Мне кажется что тут можно выделить опции и многозначные однотипные значения.

однотипные: openning_hours, contact:phone и все подобные где значения могут отличаться лишь приоритетом и сути объекта не меняют

то что магазин может продавать кофе или шоколад это уже опции, тк меняют суть объекта

главное не tag1, tag2, tag3

На вашем osm2mp свет не сошелся. Для меня один postgresql важнее части стека в OSM не говоря уже о ваших конвертерах. Ой не рады вы будете если я все изменения для любимой postgresql сделаю сразу.

Вы думаете я это не знаю? Попробуйте найти справочную страницу для магазина чая у shop=car_parts;tea.

Вы знаете о чем говорите? Уверены в этом? Где в Taginfo страница про чай для shop=car_parts;tea.

Строго-формально его конечно никто не резервировал.
Предлагаемая схема ясно даёт знать что смысл тега

shop=* теперь можно уточнить новыми тегами
shop:<вот тут старый shop>=yes/partial/main/no

Не понимаю почему про неймспейсы вопрос вообще, они в структурах данных не существуют, только в программном коде и документации. shop:car_parts=yes - это обычный тег, никакой не неймспейсовый. Это тоже самое что “shop:car_parts”=“yes”. Скажем об этом на странице Namespace что “новая схема shop:= не неймспейс” и делов-то господи, мне казалось это понятно.


shop=coffee
shop/tea=partial

Слеш не нужен. Мы и так уже используем : для обозначания субтегов без нейспейсов.


shop=coffee
shop:tea=partial

Вообще никакой разницы в документации и пресетах (если те могут переварить слеш).

motor_vehicle:conditional=delivery @ (Mo-Fr 06:00-11:00,17:00-19:00;Sa 03:30-19:00)

@ () - это вообще пинцет

На postgresql тоже.

О массовых правках речь не шла совсем.

Её нет, и не нужна она. Потому что есть
http://wiki.openstreetmap.org/wiki/Tag:shop=car_parts
http://wiki.openstreetmap.org/wiki/Tag:shop=tea

http://taginfo.openstreetmap.org/tags/shop=car_parts;tea

Вау. Пчёлы против мёда. Ход конём. Сильно.

Вы даже не поняли что там не так. Где там страницы на вики как на этих страницах:
http://taginfo.openstreetmap.org/tags/shop=car_parts
http://taginfo.openstreetmap.org/tags/shop=tea

Пустота заголовка и отсутствие картинок, ссылок на osm wiki для вас нормально?

И что теперь? Вы JOSM открывали когда-нибудь? выделяли тег там? Нажимали F1 пока фокус был на теге?
Замапьте что-нибудь shop=car_parts и нажмите F1 в JOSM, теперь попробуйте повторить это с shop=car_parts;tea.
Теперь откройте iD добатьте точку с shop=car_parts, а теперь сменить это на shop=car_parts;tea и куда денутся все переводы.

Я вам такие очевидные вещи говорю… На этом достаточно.

Хорошего модератора выбрали.
Вот я цензурно мысль сформулировать не смог :slight_smile:

Точка с запятой предполагает несколько значений. Для каждого отдельного значения нужно описание и страница в вики. Создать страницы для всех комбинаций тегов с “;” нереально. Да и не нужно это.

Вообще, для таких случаев нужна своя заготовка с кучей галочек. Возле каждой из них может быть ссылка на вики. Выглядеть это будет точно также, как и при использовании shop:car_parts=yes.

Можно распознавать “;” в теге и для каждого значения, разделённого точкой с запятой, и поставлять перевод. Он может быть кликабельным и вести на вики-страницу этого отдельного значения.

Честно, не вижу принципиальной разнице, что там свойства магазина, что тут свойства строения. Притом всё равно для подания информации человеку надо понимать конкретный тег, потому как даже для building=yes и building=roof сильно по разному нужно интерпретировать building:levels.
А вот за картинку “Режим умных тегов:” пять с плюсом.

d1g, очередное предупреждение, вы претендуете на то, чтобы быть забаненым одновременно в списке рассылки, на форуме и в вики.

Точно так же никогда не было shop=car_parts а до этого shop=greengrocer.

“Список всех возможных значений” можно узнать по страница из вики. Либо по пресетам iD. Либо еще из статистики Taginfo но она врёт и не ясно есть ли альтернативная схема.

То есть ты хочешь парсить сам не знаешь что. Зачем? Ты вики страницу открывал со смыслом этого тега? Такое вообще встречается что тебе что-то попалось полезное, но для неё нет вики страницы или предложения? Кроме натянутых за уши примеров?

Это вообще не связано с точкой запятой.

; просто запретить кроме opening_hours, addr:flats, turn тегов и простых ref=* и всё.

Серьёзно, зачем кому-то защищать 150 тегов с запятой shop=* когда 169000 shop=* магазинов. Вот изза этих >1% мне нужно объяснять что-то про регулярки? Про то, что что-то нужно избегать? Про то что это поддерживается только в малой части программ?

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

Мне вообще сложно представить что тебя радует, что огорчает и что движет тобою в твоей деятельности.

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

Тоесть препроцессор умеет генерить код вида
“совпадение ключ=значение” или “совпадение ключ=значение” или “совпадение ключ=значение”
но не умеет генерить код вида “значение содержит строку” для shop.=car_parts
(допустим что содержится мы задаем через .=)
или не умеет разделять значения по символу ‘;’?

Ну это странный препроцессор, умеющий ровно то что нужно тебе и не умеющий ничего другого.

Это то безусловно плюс этой системы обозначения, что впрочем не говорит о том что другая система обозначения должна быть запрещена.

Сравнение не корректное, надо сравнить количество highway с двумя и более значениями разделенными ‘;’ и highway с двумя и более значениями записанными как highway:value=yes

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

‘;’ непременно должен быть разрушен, спасибо Катон, мы поняли.