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

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

“shop:tea”=yes | “shop:tea”=partial | “shop:tea”=main

Теперь попробуйте этот запрос написать в регулярках без ошибок. Завтра от вас будет ответ без ошибок.
Теперь попробуйте этот запрос запустить для всей России. Через неделю увидимся я так думаю.

Конкретно эти товарищи - исключения. Их по пальцам пересчитать.

Извечная проблема storage size vs speed. Потом жалуемся почему упал очередной рендер, валидатор или конвертация ))

Форумчане, кто на “ты” с внутренностями PostgreSQL, скажите какой ценой даётся базе ОСМ добавление каждого нового поля ? Удаляются ли поля с опечатками, или они остаются навечно для history ? Место для поля резервируется под каждую запись (т.е. каждый way, node, relation) ?

Ха! Очередная тема как впихнуть невпихуемое. :slight_smile:
А потом выясниться, что чай продают только до обеда, а вот кофе круглосуточно и опять думать какбы это всё замапить. %)

И ещё. Как мне кажется, нужно различать что можно купить и тип магазина. Как мне казалось, мы всё-таки мапим именно тип, а не номенклатуру. Соотвественно, тип магазина, это что-то однозначное и никак не требующее всяких partial или main. То есть, если магазин продаёт и чай и кофе (а в таком случае, там ещё чашку какую-нибудь можно купить, так что посуду тоже прописывать?) то значит это продуктовый магазин. Если там всё-таки кофе круглосуточно, а чай до обеда, значит это магазин кофе и всё тут.

Я же говорю, что конкретно в пропозале Detailed Shop Features использовать “;” не получится, потому что там значений не 2 (да/нет), а больше (да/нет/главный/частичный).

Ну хоть на русском форуме это понимают. Мы в любом случае на два стула не сядем. Зачем об этом говорить? Те кто понимает регулярки знает чем они могут обернуться. У кого есть большие RAM стораджы на всех врерху-сниз смотрят.

Я советуют прислушатся к пути удешевения ОЗУ и HDD. На SSD для конвертанции можно рублём скинуться, может даже на нормальный PCIe, а вот купить ферму процессоров чтобы они считали чертовы регулярки для России да при том это дело никем не реализовано еще до этого. Оно вам точно надо?

PS. Абсолютно все HPC компании (если у них есть такой вариант, то) вбухивают миллионы в ОЗУ чтобы не покупать дорогии технологии и специалистов которые хоть что-то в этом понимают $$$$$$$

Уже придумали, давно. Для схемы shop:= это правда будет немножечко костылём

Так вот. Тип бывает не целостным. Не существует в моём городе только shop=coffee, они еще всегда что-то продают. Даже специалзированные магазины кофе продают кальяны и молоко.

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

Лучше провести простое голосование о запрете ; для значений (opening_hours, addr:flats и пару других не в счёт)

Так я о том и говорю, что мы мапим только тип (=основная специализация). А что они там ещё продают это дело десятое. Иначе придём к тому, что придётся мапить всю номенклатуру товаров.

Откуда, столько гонору? Сколько можно противопоставлять себя, в начале российскому комьюнити, а потом и вообще комьюнити осм (в таггинг хоть и пушут на английском но пишут не только англичане).

Я такой чудачек. Я не вижу чем key:value=* принципиально лучше чем key=value1;value2 парсить это безобразие надо в любом случае.

В рамках старого shop, который приняли аж 9 лет назад может быть (не все теги приняты формально были).

Именно об этом и речь в новом пропозале.

Мне всё равно если shop:кальяны напрокат=yes будут на пабе или на хлебном магазине. Я кальян хочу курить, всё равно где. Чем ближе - тем лучше.

Нет. Нет. Нет.

И что ты парсить собрался в

"shop:coffee"=main +
"shop:tea"=partial +
"shop:muffins"=yes

Буковки shop в примере выше вообще ничего не значат. То что ты их парсить хочешь - лично твои проблемы.

"shop:coffee"=main +
"shop:tea"=partial +
"shop:muffins"=yes
shop=books

В этом примере - значат, ровно то, что значили раньше, “книжный магазин” / “магазин книг”. Если сможешь осмыслить другие теги по новой схеме - молодец, а нет - значит только книжный магазин он тебе.

shop=clothes;shoes

Это ужасно конечно. Со всех сторон.

Подождите, давайте сначала общероссийский запрет military=* доведём до конца, а затем за точки с запятой возьмёмся.

Абсолютно. Готов почку отдать на голосовании.

На скорую руку:
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 поддерживает “;”