OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

Announcement

A fix has been applied to the login system for the forums - if you have trouble logging in please contact support@openstreetmap.org with both your forum username and your OpenStreetMap username so we can make sure your accounts are properly linked.

#76 2015-01-30 20:01:20

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

wowik wrote:

Не пользователю, а программе. пользователь вобще тегов не видит.

Уже всё продумано кроме реализации плагинов JOSM и конвертеров для временной совместимости со старыми amenity=*.

Хочет пользователь "заведения питания", я ему буду искать "amenity:fast_food"=yes | "amenity:restaurant"=yes | "amenity:pub"=yes | ...

Я этот запрос напишу один раз в жизни и выложу на гитхаб, другие программисты такие запросы по сотне и тысяче запросов составляют в день только чтобы проверить данные в OSM.
- Используют ли они фильтры JOSM при этом
- Используют ли они валидаторы
- Используют ли они запросы Overpass API

Эти усилия можно объединить в единый репозиторий запросов.
openstreetmap.ru это называет "каталог тегов" или "точки интереса POI". Эта возможность должна быть

- напрямую в JOSM
- напрямую в overpass, а не на странице http://wiki.openstreetmap.org/wiki/Over … o/Examples
- быть может как "включаемые-отключаемые слои" в iD, прямо сейчас их придётся строить на основе пресетов в iD. К сожалению там есть пресеты не для всех практик тегирования.

Offline

#77 2015-01-30 20:17:23

keder
Member
From: Воронеж (Voronezh, RU)
Registered: 2014-02-18
Posts: 812

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

Тег phone=*, voltage=* (для power объектов) в исключениях не забудьте. А вообще исключения должны быть для всех тегов имеющих несколько числовых или уникальных символьных значений, т.е. то что пихать в tag:* вместо астериска не имеет смысла.

Last edited by keder (2015-01-30 20:17:48)

Offline

#78 2015-01-30 20:19:07

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,927

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

Всё верно, выбрать объекты-ПОИ мне надо запросить все объекты и перибирать ключи на предмет попадания в маску amenity:* вместо запроса всех объектов с ключем amenity.

Для многих программ не обязательно знать СМЫСЛ конкретного ключа, а вы напираете именно на то, что неизвестную разновидность amenity:* не придется никогда запрашивать.

Ну а придумать-то можно всё что угодно, но новых практических горизонтов оно не открывает. Какие-то программы упростятся, какие-то сильно усложнятся...

Мапперу проще жить не станет точно. Тут точка с запятой вне конкуренции. Объяснить гораздо проще.
А всё, что нельзя просто объяснить обыкновенному мапперу, нашему главному источнику данных, надо выкидывать из проекта.

Плюс еще куча исключений. Будем новичкам сразу две схемы объяснять? Или сначала точку с запятой для времени работы и телефонов, а потом amenity:*?

Last edited by wowik (2015-01-30 20:22:54)

Offline

#79 2015-01-30 20:25:13

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

wowik wrote:

знаю 500 тегов amenity, теперь мне надо делать выборку объектов по всем 500 ключам вместо одного?

Говорю же нет, только один тег-костыль:
amenity=yes // либо очень любимый вам amenity=<смысловойтег13>
amenity:<смысловойтег1>=*
amenity:<смысловойтег1>:description=Его зовут 1
amenity:<смысловойтег500>=*
amenity:<смысловойтег500>:description=Его зовут 500

Как только программы научатся обрабатывать <смысловойтег1>, <смысловойтег500> тогда amenity=yes можем убить (или оставить в назидание) как бессмысленный пережиток прошлого.

Что значит amenity прямо сейчас??? Какой программе нужно выполнить запрос amenity=*, покажите мне кусок кода этой программы, я скажу насколько она сломана и откуда растут руки у кого.

OverQuantum wrote:

То есть предлагается ввести группы

Смысловые-группы-изоляторы для тегов точно да (не в рамках API 0.6), без них никак не обозначить два объекта мира одной точкой (любой геометрией):

1. amenity=atm
2. amenity=bank + name=Сибирьнефтьденьги

OverQuantum wrote:

описательный текст в произвольной форме в котором встроены ключевые слова.

Это требует очень сильных статистиков которые очень быстро будут разрабатывать алгоритмы классификации и ранжирования в OSM. Этот подход могут позволить большие компании с штатными людьми, для хоббистов и набегающих-убегающих программистов в OSM это будет тяжело вести такую постоянно эволюционируют штуку. Мы с "жесткими" тегами не очень быстро растём (в плане сложности иерархий, у нас до сих пор всё лепят под amenity=*, man_made=* только потому что "их миллионы, посмотри сам".

OverQuantum wrote:

Примерно так:

Понял вашу затею, вы пытаетесь упростить "говорливые теги" pub=yes и "ref:ИНН"=* до отдельных символов.
1. Это проще, реально проще вам (тому, кто знает соответствия)
2. Это тяжело учить (вы точно знаете весь компактный синтаксис регулярок?)
3. Это тяжело документировать без изменений всей инфраструктуры (от Taginfo до iD, JOSM, не говоря уже о программах которые используют данные), это сверх-важно для OSM. Cсылку на описание pub=yes (или amenity:pub=yes) просто исправить переправив на amenity=pub.

Тег phone=*, voltage=* (для power объектов) в исключениях не забудьте.

Да, они исключения потому что не ищут по 11значным цифрам телефона и конкретному значению напряжения.

Offline

#80 2015-01-30 20:36:28

wowik
Member
From: Zelenograd
Registered: 2009-09-29
Posts: 6,927

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

d1g wrote:

Какой программе нужно выполнить запрос amenity=*

Конвертор, рендер

d1g wrote:

Как только программы научатся

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

Да, и мапперам будем объяснять не просто две схемы, а еще и заморочки по поддержанию их в согласованном виде

Last edited by wowik (2015-01-30 20:44:15)

Offline

#81 2015-01-30 20:54:19

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,579
Website

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

d1g wrote:

вы пытаетесь упростить "говорливые теги" pub=yes и "ref:ИНН"=* до отдельных символов.

Нет, ИНН там просто так написано, без разметки (сейчас оно лежит в comment). pub не знаю откуда вы взяли, там магазины.
ИНН с разметкой было бы как-то так:

#ИНН: 7735108290 
d1g wrote:

Это тяжело учить (вы точно знаете весь компактный синтаксис регулярок?)

Кому не надо, может не учить.
Должен быть визуальный редактор, прячущий разметку в графическое оформление (примерно как HTML отображается), в котором можно выделить часть текста и сказать "А это название", потом другой текст - "А это телефон", а потом задать тип объекта - "Это магазин". Ну и само должно догадываться в некоторых случаях и предлагать (+7.... - это вы телефон ввели?)
Ну а кому нужна тонкая настройка - открывает обычный редактор и правит в кодах.


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#82 2015-01-30 21:03:33

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

Конвертор, рендер

Зачем им вообще все amenity= на свете? Mapnik разве научился лавочки рисовать?
http://taginfo.openstreetmap.ru/tags/amenity=bench - и лавочки ему надо
http://taginfo.openstreetmap.ru/tags/am … ndergarten - и детские садики ему надо
http://taginfo.openstreetmap.ru/tags/amenity=fuel - и заправку ему надо
http://taginfo.openstreetmap.ru/tags/am … c_building - и бессмысленный устаревший тег ему надо
http://taginfo.openstreetmap.ru/tags/amenity=police - и полицейское непонятно что тоже надо
http://taginfo.openstreetmap.ru/tags/amenity=fountain - и фонтан, вот он, смотрите

Подождите-ка... Mapnik не рендерит фонтаны, зачем они ему нужны? Зачем он спрашивал мою postgresql глупыми запросами о amenity=public_building?

поддержкой "костыля"

amenity=<старое значение>
man_made=<старое значение>
sport=<старое значение>

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

wowik wrote:

валидацией на предмет согласованности старой схемы с новой;

Самый тупой бот справится:
1. если видишь затегировано нормально через
amenity:<смысловой тег1>=yes/partial/main
amenity:<смысловой тег2>=yes/partial/main

Пусть влепит amenity=<смысловой тег1> потому что он нам очень нравится и мы иконку покажем.

wowik wrote:

валидацией на предмет согласованности старой схемы с новой;

Еще раз: в рамках старой схемы невозможно отметить
1. amenity=atm
2. amenity=bank + description=тут точно банк

Одной геометрией, хоть бочку сделайте. Вам придётся отношения мне предлагать как "решение".

amenity=bank // тег-костыль
amenity:atm=yes
amenity:bank=yes
amenity:bank:description=тут точно банк

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

<семантическая группа>
atm=yes // строгий тип, временно задокументирован на вики как ссылка-перенаправление на amenity=atm
</семантическая группа>
<семантическая группа>
bank=yes // строгий тип, временно задокументирован на вики как ссылка-перенаправление на amenity=bank
description=тут точно банк
</семантическая группа>

PS. Мой вопрос про смысл amenity остался без ответа.

Last edited by d1g (2015-01-30 21:14:44)

Offline

#83 2015-01-30 21:18:18

newpavlov
Member
Registered: 2014-03-28
Posts: 410

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

Вставлю своё имхо.

Схема с shop:*, лично мне, кажется более логичной и гибкой чем вариант с ;. (как и во многих других похожих ситуациях) Так что я скорее за, чем против. Однако, мне кажется что не стоит пытаться протаскивать отмену shop, ибо во-первых, 99% магазинов успешно укладываются в примитивную shop=* схему, во-вторых, так удобнее программам, ибо облегчается поиск и рендеринг. Кроме того, не стоит переусложнять схему без лишней на то надобности. (например, вместо shop=yes, shop:cofee=main, shop:tea=yes или хуже того shop:cofee=main, shop:tea=yes, лучше использовать shop=cofee, shop:tea=yes, т.е. применять shop:* теги именно как расширяющие) Кроме того, считаю, что неправильно пытаться тоталитарно запрещать точку с запятой, достаточно при описании схемы "рекомендовать", а дальше народ (в т.ч. и пользователи данных) сам решит, нужно ему это или нет.

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

Last edited by newpavlov (2015-01-30 21:25:53)

Offline

#84 2015-01-30 22:02:22

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

newpavlov wrote:

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

Уже возникло, спор вокруг англоязычной статьи просто так не возник. Есть до такой степени упёртые люди в tagging@ что вся аргументация сводится "нет, потому что я так сказал", "откатываю все твои правки потому что консенсуса нет".

newpavlov wrote:

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

Не согласен.

1. Есть чисто русские теги. Мы отлично живем с ними и обрабатываем их и улучшаем по чайной ложке.
http://taginfo.openstreetmap.ru/keys/addr:flats - чтобы вы знали только в России мапят так детально
http://taginfo.openstreetmap.ru/search?q=tickets%3A - tickets: теги только наши придумали

2. Изменения в API в любом случае нужно будет продвигать. Если наши продвижения не будут согласованы и подтверждаться пятизначными циферками в Taginfo - о чём речь?

Однако, мне кажется что не стоит пытаться протаскивать отмену shop, ибо во-первых, 99% магазинов успешно укладываются в примитивную shop=*

Пока что да, не стоит.

т.е. применять shop:* теги именно как расширяющие

Конечно люди не будут тегировать 99% объектов. Вы что. Мы ботов напишем которые автоматом поставят явные main-теги из старых shop=*.

1. Если объект был однозначный и все теги его были непротиворечивые (shop=tea, name=*, opening_hours=*), то по новой схеме добавит новые теги бот
2. Если объект был изначально противоречивый (amenity=atm;bank + name=Банк), то ни один человек без знаний местности не сможет перетегировать нормально такие данные

1. Человек ставит shop=cofee, shop:tea=yes (только расширяющие теги)
2. Бот его слова дополняет: shop=cofee, shop:tea=yes, shop:cofee=main

Если бот будет работать не так: не те теги ставить — исправим бота и опишем в статье про схему как всё работает.

Last edited by d1g (2015-01-30 22:04:37)

Offline

#85 2015-01-30 23:03:34

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

Пропустил важный вопрос. Приоритет нужно отдавать сложной неймспейсовой схеме (которую разрабатываем сейчас), а не старой-тупой shop=tea, sport=multi.

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

Старые теги можно указывать ботом из тегов новой схемы. Совместимостью для "программ сегодня" должны заниматься боты. 99,9% работы должны делать боты, а не люди.

Если мы тегировали правильно, то противоречия будут только для >0,1% данных. Наверняка противоречий будет больше - как много узнаем когда будем вникать в детали написания бота.

wowik wrote:

Будем новичкам сразу две схемы объяснять? Или сначала точку с запятой для времени работы и телефонов, а потом amenity:*?

Научим новичка "пиши sport:soccer=yes, sport:hockey", "sport:basketball"=yes
Используй неймспейсы когда указываешь имя только у чайного магазина "shop:tea:name"="Чайки" (JOSM ему должен показывать дерево и только name="Чайки"). Бот на основании только этого тега может поставить заготовку shop:tea=yes (yes именно заготовка "что-то есть", основные значения main, parital, no).

Весь этот бред с префиксами только временный, пока мы ждём новую структуру данных, чтобы потом ввести смысловые коробки и адекватные теги tea=yes ("что-то продающее чаи"), sport:hockey=yes "что-то связанное с хоккеем".

amenity, man_made, shop не схемы не первой свежести и не полной адекватности. Вопросы о различиях и сортировки на leisure/amenity возникают постоянно у всех участников OSM. Это говорит только о несостоятельности классификации leisure/amenity.

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

Потом у нас разбухают темы "как обозначать на 300 страниц". "Стадион это amenity или leisure?" - это же сакральные знания которые написаны в OSM wiki. staduim=yes мне написать нельзя, так не принято.

До тегов tea=yes, stadium=yes додумывались.
До проблемы двойственности объектов ("стадион" это не только развлечения leisure, но еще и инфраструктура amenity в виде трибун, ограждений) ни у кого решения не доходило кроме Российский мапперов. У нас возникают сложные теги через :, мы можем осознать двойственность объектов и придумать теги с маленькой смысловой информацией - а они нет.
До проблемы семантических коробок и изменения API для тегов никто не доходил, они даже неймспейсами разрулить ситуацию не догадались.

Last edited by d1g (2015-01-30 23:38:18)

Offline

#86 2015-01-31 11:35:58

Diomas
Member
From: spb.ru
Registered: 2010-09-15
Posts: 354

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

Если мы начинаем описывать ассортимент продуктов в магазине, то "вторичные" продукты легко вынести в отдельный тег, а shop оставить так как есть

shop=clothes
shop:secondary=toys

Если ассортимент равнозначный по важности, то оставляем

shop=clothes;shoes

Last edited by Diomas (2015-01-31 11:46:18)

Offline

#87 2015-01-31 11:47:17

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

Diomas wrote:

shop=clothes
shop:secondary=toys

Насколько я помню API не позволяет такое:
shop=clothes
shop:secondary=toys
shop:secondary=kids
shop:secondary=electronics

В противном случае если бы API позволял мы бы пользовались таким:
shop=clothes
shop=toys
shop=kids

А не пытались нагородить всё в value у бедных key.

Diomas wrote:

shop=clothes;shoes

Ни один вариант с несколькими значениями в value не подойдёт.

У вас прямо сейчас ни один рендер не сможет показать иконку кроссовок для shop=clothes;shoes, даже если он для shop=shoes умеет это делать.

Offline

#88 2015-02-01 05:47:51

romul_zurov
Member
Registered: 2013-09-03
Posts: 38

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

в целом согласен с d1g.
текущая схема для обозначения, например, бильярда позволяет сделать так:
sport=billiards
sport=pool
sport=snooker
sport=snooker;pool
и всё это нужно учитывать при создании гипотетической карты бильярдных.
через пол-года энтузиаст русской пирамиды навтыкает sport=pyramid (а чем это хуже sport=snooker, к примеру) - и на карте их не появится.
при схеме:
sport:billiards=yes
sport:billiards:pool=yes
sport:billiards:snooker=yes
добавление sport:billiards:pyramid=yes появится автоматически как "бильярд вообще", после добавления тэга/значка в рендер карты - как именно пирамида.
плюс без проблем можно добавлять размер столов, например:
sport:billiards:pyramid:12ft=yes
sport:billiards:pyramid:10ft=yes
или возможность фотографироваться барышням на столе big_smile :
sport:billiards:pool:photo_on_table:female=yes
засовывать всё это в sport=billiards через точку запятой, имхо, неправильно roll

Offline

#89 2015-02-01 06:45:32

newpavlov
Member
Registered: 2014-03-28
Posts: 410

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

d1g wrote:

Есть до такой степени упёртые люди в tagging@ что вся аргументация сводится "нет, потому что я так сказал", "откатываю все твои правки потому что консенсуса нет".

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

d1g wrote:

Есть чисто русские теги. Мы отлично живем с ними и обрабатываем их и улучшаем по чайной ложке.
http://taginfo.openstreetmap.ru/keys/addr:flats - чтобы вы знали только в России мапят так детально
http://taginfo.openstreetmap.ru/search?q=tickets%3A - tickets: теги только наши придумали

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

d1g wrote:

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

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

d1g wrote:

Если наши продвижения не будут согласованы и подтверждаться пятизначными циферками в Taginfo - о чём речь?

А вот это называется ставить телегу вперёд лошади. Попытка принять схему на основании "использования де факто", вместо "скучного" процесса написания/обсуждения/принятия пропозала, это тоже пример "плохой практики". Надеюсь, раскрывать почему это так нет необходимости.

d1g wrote:

Пока что да, не стоит.

Я считаю, что не только пока что, но и в последующем не стоит. Ибо ради 1% заставлять остальные 99% использовать усложнённую схему не есть правильно. Кроме того, подход описанный мной, позволит убрать значительную долю критики (справедливой, стоит заметить) связанный с использованием shop:* тегов без материнского shop=*, при этом не потеряв ничего в гибкости, и даже добавив немного в лаконичности.

d1g wrote:

Конечно люди не будут тегировать 99% объектов. Вы что. Мы ботов напишем которые автоматом поставят явные main-теги из старых shop=*.

А вот это уже откровенно попахивает NIH синдромом. На кой чёрт заводить ботов и принуждать пользователей использовать усложнённую схему, когда для 99% случаев достаточно примитивных shop=*, которые отлично работают чуть ли не с момента основания проекта?

Offline

#90 2015-02-01 08:33:07

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

newpavlov wrote:

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

Это еще что. Есть особо одарённые личности считающие что править вики не нужно кроме пяти-десяти страниц самих авторов, а то и вовсе обновлять их не нужно.

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

wowik wrote:

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

newpavlov wrote:

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

Да, я тут подумал еще раз. Временно писать бота чтобы он внёс двойную схему точно не стоит для 99,9% объектов. Это очень много работы мне, лучше выбросить API 0.6 и импортировать данные потом полу-вручную чем две схемы одновременно видеть в OSM.

Ограничение на <одинсмысловойключ>=<однозначение> настолько идиотское что даже слов нет. В XML нет таких жёстких ограничений:

<shop>
    <cardealer>
         <name>Иванов авто</name>
         <cars>
              <car>Ford</car>
              <car>Mustang</car>
         </cars>
    </cardealer>
</shop>
Т.е. в OSM API 0.6 такое написать не получится даже с использованием говорливых неймспейсов (предлагаемой схемы):
shop:cardealer:cars:car=Ford
shop:cardealer:cars:car=Mustang

В рамках API 0.6 придётся выдумывать костыли addrN, carN:
shop:cardealer:cars:car=Ford
shop:cardealer:cars:car2=Mustang

newpavlov wrote:

когда для 99% случаев достаточно примитивных shop=*, которые отлично работают чуть ли не с момента основания проекта?

Статистика верна, но она вас вводит в заблуждение. Почитайте про костыли "одна точка - на один смысловой тег".

http://wiki.openstreetmap.org/w/index.php?title=Semi-colon_value_separator&oldid=1132152 wrote:

Split the element Separate things out into distinct features to allow them to be tagged separately with normal tags. Example: You're mapping a library which has a cafe inside it. Place a node for the cafe, and then either represent the library (a larger building) as an area instead, or just as a separate node. It is not a good idea to map it as amenity=library;cafe

Высказывание про "сразу пропустить этап XML" я теперь понимаю более-менее:

#shop
#cardealer
cardealer:name: Иванов авто
cardealer:sells: Ford
cardealer:sells: Mustang
Хорошие автомобили, сервис по приемлемым ценам.

Чтобы такую простую схему в OSM ввести нужно кому-то гвоздь в лоб забить обязательно.

Обязательно находятся умники считающие 255 символов в value достаточно.
Обязательно находятся умники считающие 255 символов в key достаточно.
Обязательно находятся умники считающие только один раз встречающегося key достаточно.

Описание схемы я пока спрячу, нужно будет больше описать из чего всё происходит, почему это реально надо. Какие альтернативы есть (XML, текст с разметкой) и как сложно будет на них переходить с парадигмы 0.6 (набор key=value, с key значением которое встретится только один раз).

Last edited by d1g (2015-02-01 08:52:09)

Offline

#91 2015-02-01 08:35:40

Vitalts
Member
From: Estonia
Registered: 2010-12-30
Posts: 1,439

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

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

Offline

#92 2015-02-01 09:21:04

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

romul_zurov wrote:

через пол-года энтузиаст русской пирамиды навтыкает sport=pyramid (а чем это хуже sport=snooker, к примеру) - и на карте их не появится.
при схеме:
sport:billiards=yes
sport:billiards:pool=yes
sport:billiards:snooker=yes
добавление sport:billiards:pyramid=yes появится автоматически как "бильярд вообще", после добавления тэга/значка в рендер карты - как именно пирамида.
плюс без проблем можно добавлять размер столов, например:
sport:billiards:pyramid:12ft=yes
sport:billiards:pyramid:10ft=yes
или возможность фотографироваться барышням на столе  :
sport:billiards:pool:photo_on_table:female=yes
засовывать всё это в sport=billiards через точку запятой, имхо, неправильно

Именно из этого я и исходил когда предлагал передвинуть смысловую часть в key.

Никаких иероглифов в key не может появится если понять предлагаемые изменения, а не вспоминать о каких-то регулярках.

Новая схема не решает вопрос "сколько значений у этого ключа" из-за ограниченности API и парадигмы <строка>=<строка> в целом

sport:billiards=yes
sport:billiards:pool=yes
sport:billiards:snooker=yes

Т.е. придётся парсить неймпейс sport:billiards:

Вместо этого можно было бы (с нормальным API 0.8):

sport:billiards=yes
sport:billiards:type = [pool, snooker]

sport:billiards это задокументированный на вики ключ
pool и snooker это значения на странице ключа sport:billiards:type в вики

Кто-то будет мапить только sport:billiards=yes, а любители бильярда будут смотреть страницу sport:billiards:type.

Last edited by d1g (2015-02-01 09:24:23)

Offline

#93 2015-02-01 09:27:40

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

romul_zurov wrote:

при схеме:
sport:billiards=yes
sport:billiards:pool=yes
sport:billiards:snooker=yes
добавление sport:billiards:pyramid=yes появится автоматически как "бильярд вообще", после добавления тэга/значка в рендер карты - как именно пирамида.

Да, это тоже было сделано намеренно чтобы упростить рендерам "бильярда в целом" и специального рендера бильярдных.

Не самое красивое решение, но это единственный вариант в рамках <строка>=<строка>.

Offline

#94 2015-02-01 09:40:35

romul_zurov
Member
Registered: 2013-09-03
Posts: 38

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

d1g wrote:

Вместо этого можно было бы (с нормальным API 0.8):

    sport:billiards=yes
    sport:billiards:type = [pool, snooker]

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

    sport:billiards=yes
    sport:billiards:type = [pool, snooker]
    sport:billiards:table_size = [pool:7ft, pool:8ft, snooker:9ft, snooker:12ft]

либо

sport:billiards:table_size = [pool:(7ft, 8ft), snooker:(9ft, 12ft)]

или ещё как-то?

Offline

#95 2015-02-01 09:51:07

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

romul_zurov wrote:

а дальнейшее уточнение как предполагается делать? ну, к примеру, уже упомянутый размер столов?

    sport:billiards=yes
    sport:billiards:type = [pool, snooker]
    sport:billiards:table_size = [pool:7ft, pool:8ft, snooker:9ft, snooker:12ft]

либо

sport:billiards:table_size = [pool:(7ft, 8ft), snooker:(9ft, 12ft)]

Ваш второй вариант это вложенные семантические коробки о которых я говорил.

Такой подход требует ответственности и документирования значений на вики, иначе вы никогда не узнаете что значат символы "7ft" "8ft"? Это длинна стола? Это длинна кия? (только не смейтесь, будут неочевидные схемы, например в промышленности и power=*).


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

Last edited by d1g (2015-02-01 09:52:16)

Offline

#96 2015-02-01 11:05:05

newpavlov
Member
Registered: 2014-03-28
Posts: 410

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

d1g wrote:

Это еще что. Есть особо одарённые личности считающие что править вики не нужно кроме пяти-десяти страниц самих авторов, а то и вовсе обновлять их не нужно.

Справедливости ради, ваше поведение в вики достаточно одиозно, отсюда и реакция. Масса людей спокойно правит вики не вызывая тонны флуда.

Теперь по теме: ещё раз, я всеми руками за развитие API, за более полное использование возможностей XML. (как частный случай эти самые пресловутые списки) Но не надо смешивать всё в кучу. Давайте в данной тематике всё-таки обсуждать эволюцию схемы shop (amenity и товарищи подтягиваются затем автоматом) в рамках имеющего недостатки, но существующего уже сегодня и успешно работающего  API 0.6. Желаемые фичи же будущих версий API, лучше обсуждать на соответствующих страницах вики, либо в отдельно созданных темах форума.

Итак, если мы говорим об эволюции в рамках текущего API (а не о миграции на некую гипотетическую будущую версию), то мне абсолютна непонятна мотивация (если исключать упомянутый ранее NIH синдром) вашего желания полностью изничтожить тег shop=*. Как я уже сказал, на мой взгляд схема shop=cofee, shop:tea=yes по всем параметрам (в рамках API 0.6) лучше чем shop=yes, shop:cofee=main, shop:tea=yes и shop:cofee=main, shop:tea=yes.

Так что, повторю свою личную рекомендацию ещё раз: вместо разведения тонны бесполезных обсуждений, займитесь делом и оформите нормальный пропозал shop:* для API 0.6. После чего в отдельных документах оформляйте своё виденье следующих версий API, а так же миграцию существующих тегов на новые фичи. Но первое дело нужно делать первым, а не ставить телегу вперёд лошади.

За сим, до появления оформленного пропозала, продолжать дискуссию не вижу смысла.

Offline

#97 2015-02-01 11:38:57

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

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

newpavlov wrote:

Давайте в данной тематике всё-таки обсуждать эволюцию схемы shop (amenity и товарищи подтягиваются затем автоматом) в рамках имеющего недостатки, но существующего уже сегодня и успешно работающего  API 0.6

Я бы за. Но:
1. даже если мы доработаем противоречия мы не избавимся от необходимости парсинга key
2. даже если мы доработаем чтобы не нужно было парсить ничего (это невозможно в парадигме <строка> = <строка>), то будут две схемы над которыми нужно будет ломать голову:

wowik wrote:
d1g wrote:

Как только программы научатся

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

Да, и мапперам будем объяснять не просто две схемы, а еще и заморочки по поддержанию их в согласованном виде

Лично я сдаюсь как можно согласовать новые структуры данных (вложенные массивы, упорядоченные массивы) и текущие ограничения 0.6:
1. <тупая строка> = <тупая строка>
2. <левая часть от равно, тупая строка> может повторятся только один раз

Пример со сломанным в рамках OSM, XML я приводил. Заниматься совместимостью XML с ограничениями 0.6 я не потяну. Т.е. это реально большая задача, чем написать просто API 0.7 и потерпеть-импортировать старые данные (большую часть автоматом, а часть ручками-ручками)

Offline

#98 2015-02-01 12:19:19

fserges
Member
From: St.Petersburg/Russia
Registered: 2010-11-08
Posts: 3,637

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

ОСМ - база пространственных данных. Иерархии не относящиеся к пространственным данным очевидным образом плохо поддерживаются в ОСМ. Скажем отметить ресторан на карте - удобно а вот прописать детальное меню уже получается сложнее, с юлюадми дня, скидками в течение дня и т.п. По большому счёту это всё какие-то объекты живущие вне ОСМ.

Offline

#99 2015-02-01 12:34:34

d1g
Member
From: not using forum
Registered: 2010-01-23
Posts: 2,380
Website

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

fserges wrote:

Скажем отметить ресторан на карте - удобно а вот прописать детальное меню уже получается сложнее, с юлюадми дня, скидками в течение дня и т.п. По большому счёту это всё какие-то объекты живущие вне ОСМ.

Вооот, вот! Продолжайте здесь об этом.

Вы потратите 2 минуты на отметку

#shop
#ресторан
Неплохо готовит

Я же приду отмечу сотню и тысячи сложных тегов меню:

#ресторан
Неплохо готовит
#меню-ресторана
меню-ресторана:первое=yes
меню-ресторана:алкогольные напитки=yes
меню-ресторана:мороженное=yes
#shop-pricing
shop-pricing:pricing-rules = [
discount=yes
opening_hours=10:00-14:00
fixed=[100 рублей]
condition=target person is-a ru:пенсионер
description=скидка пенсионерам с 10-14 на 100 рублей
]

У вас голова поедет сложности вложенности тегов если лично вам это не интересно. Пенсионерам очень важно знать где у них будут скидки, они будут мапить:
1. рестораны вам
2. скидки себе


Это уже потом статистики и разработчики программ могут выбрать что

#shop
#ларёк
ларёк:мороженное=yes
#ресторан
#меню-ресторана
меню-ресторана:мороженное=yes

меню-ресторана:мороженное=yes и ларёк:мороженное=yes значит для вас "мороженное" или нет.


Если всё сваливать в кучу как продают:мороженное=yes, то вас не пустят в ресторан, потому что он только для пенсионеров в определённые часы.

Last edited by d1g (2015-02-01 12:39:38)

Offline

#100 2015-02-02 02:33:52

Diomas
Member
From: spb.ru
Registered: 2010-09-15
Posts: 354

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

d1g wrote:
Diomas wrote:

shop=clothes
shop:secondary=toys

Насколько я помню API не позволяет такое:
shop=clothes
shop:secondary=toys
shop:secondary=kids
shop:secondary=electronics

В этом случае будет

shop=clothes
shop:secondary=toys;kids;electronic
d1g wrote:
Diomas wrote:

shop=clothes;shoes

Ни один вариант с несколькими значениями в value не подойдёт.

У вас прямо сейчас ни один рендер не сможет показать иконку кроссовок для shop=clothes;shoes, даже если он для shop=shoes умеет это делать.

Так а что поменяется, если рендер встретит объект с тегами shop:clothes=yes + shop:shoes=yes ? Поймите, сейчас рендеры не рисуют такие случаи не потому, что им не распарсить значения через ";", а просто потому, что хрен знает, каким это значком нарисовать. Изменение схемы тегирования ничего не изменит в этом смысле.

Offline

Board footer

Powered by FluxBB