OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2012-04-19 14:48:14

ErshKUS
Member
From: Калиниград
Registered: 2010-12-27
Posts: 795

Протокол взаимодействия в валидаторами

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

Если есть предложения, пожелания и пр. - пожалуйста.

Дальнейшее развитие: планируется поддержка на openstreetmap.ru и написание мной простых валидаторов по адресным косякам.


Ты никогда не спутаешь пути: ты стоишь...
И, может, так и нужно, но как тогда узнать, что там выше крыш?   (Lumen, Лабиринт)

Offline

#2 2012-04-19 15:00:57

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

Re: Протокол взаимодействия в валидаторами

А API OpenStreetBugs было специально решено не использовать? (валидаторы AMDmi3 вроде бы через него работали)

Last edited by akks (2012-04-19 15:03:48)

Offline

#3 2012-04-19 15:03:24

GaM
Member
From: Saint-Petersburg/Russia
Registered: 2011-01-10
Posts: 3,166
Website

Re: Протокол взаимодействия в валидаторами

Валидаторы и ОСБ это совершенно разноуровневые штуки всё-таки


OsMo Мониторинг
Чем меньше ты флудишь, тем больше нарисуешь!

Offline

#4 2012-04-19 15:05:50

Alno
Member
From: Moscow/Kaluga
Registered: 2009-08-20
Posts: 45
Website

Re: Протокол взаимодействия в валидаторами

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

Поправьте, если я не прав.

А так, да, конечно:
standards.png

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

Last edited by Alno (2012-04-19 15:10:22)

Offline

#5 2012-04-19 15:09:33

akks
Member
From: Ufa
Registered: 2010-06-11
Posts: 1,728

Re: Протокол взаимодействия в валидаторами

Alno wrote:

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

Поправьте, если я не прав.

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

Last edited by akks (2012-04-19 15:22:20)

Offline

#6 2012-04-19 15:30:01

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,091

Re: Протокол взаимодействия в валидаторами

ErshKUS wrote:

Если есть предложения, пожелания и пр. - пожалуйста.

Забавно конечно, но какая именно поддержка планируется на openstreetmap.ru?

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

В этой связи у меня возникает некое сомнение в целесообразности требования к валидаторам поддерживать запрос по BBOX.


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#7 2012-04-19 15:35:36

PShA
Member
Registered: 2011-07-26
Posts: 170

Re: Протокол взаимодействия в валидаторами

Это лечится введением идентификаторов ошибок на время между обновлениями. Благо они у всех есть в том или ином виде.

Offline

#8 2012-04-19 15:39:25

Alno
Member
From: Moscow/Kaluga
Registered: 2009-08-20
Posts: 45
Website

Re: Протокол взаимодействия в валидаторами

Zkir wrote:

закачивал бы результаты валидаторов, показывал бы ошибки как ошибки

Именно это и планируется. И именно для этого предполагается использовать запрос по BBOX.

Zkir wrote:

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

Я лично об этом не думал, возможно у Евгения были такие планы, но я не вижу принципиальных проблем это реализовать (с хранением отметов о фиксах в базе openstreetmap.ru).

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

Last edited by Alno (2012-04-19 15:39:56)

Offline

#9 2012-04-19 15:42:16

Alno
Member
From: Moscow/Kaluga
Registered: 2009-08-20
Posts: 45
Website

Re: Протокол взаимодействия в валидаторами

PShA wrote:

Это лечится введением идентификаторов ошибок на время между обновлениями. Благо они у всех есть в том или ином виде.

На самом деле это не является обязательным требованием к валидатору.

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

Offline

#10 2012-04-19 16:17:04

ErshKUS
Member
From: Калиниград
Registered: 2010-12-27
Posts: 795

Re: Протокол взаимодействия в валидаторами

А в связи с обновлением валидаторов, а завел тему http://forum.openstreetmap.org/viewtopic.php?id=16283 , и тогда можно будет клипать валидаторы с часовым интервалом обновления smile но это так, на будущее и те кто хочет работать с симпл схемой


Ты никогда не спутаешь пути: ты стоишь...
И, может, так и нужно, но как тогда узнать, что там выше крыш?   (Lumen, Лабиринт)

Offline

#11 2012-04-19 16:26:56

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,091

Re: Протокол взаимодействия в валидаторами

То есть, в идеале за отметками о фиксах должен бы следить сам валидатор.

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

Но будет ли он это делать?

Мои - в ближайшее время не будут. 

Но тут есть проблема - ошибка, помеченная как пофикшенная на openstreetmap.ru не будет отображаться как таковая в каком-то другом месте

По-моему, это совсем не проблема. Насколько я понимаю, openstreetmap.ru как раз и задумывается как то место, гда пользователи должны смотреть на данные валидаторов (универсальное рабочее место пользователя).

И я так и не понял зачем нужен BBOX. Не легче ли раз в сутки (или в указанный интервал работы валидатора) зачитать его данные оптом?

Last edited by Zkir (2012-04-19 16:27:49)


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#12 2012-04-19 16:45:36

Larry0ua
Member
Registered: 2010-09-19
Posts: 1,061

Re: Протокол взаимодействия в валидаторами

Может так?
Валидатор - средство нахождения ошибок. По обновлению валидатора он дергает осмру и отдает ему файл/линк на файл со всем списком ошибок. Тогда осмру - средство отображения ошибок. Там их можно помечать закрытыми, комментировать и т.д (если надо).

Правда, нагрузка на сайт возрастет значительно...

А я уж думал, дело зашло о средстве обновления для валидаторов - чтоб они с минутными/часовыми диффами работали и были постоянно up-to-date и выдавали диффы ошибок, а не парсили всю страну-планету, например... smile Ускорение должно быть значительное, если правильно поставить на поток, ну и запускать их можно будет чаще wink
Можно это дело совместить - валидаторы будут дергать на осмру только новые и закрытые баги за свой период обновления, а у ошибок будут статусы:
- новый баг (получили от валидатора, никто не фиксил)
- закрытый пользователем (ждем от валидатора подтверждения закрытия)
- закрытый-ошибка (валидатор не подтвердил закрытие после обновления)
- закрытый-проверенный (удаляется через день/неделю после обновления валидатора)

//upd - похоже, про минутные валидаторы - это к соседней теме, точно

Last edited by Larry0ua (2012-04-19 16:47:29)

Offline

#13 2012-04-19 16:54:23

Alno
Member
From: Moscow/Kaluga
Registered: 2009-08-20
Posts: 45
Website

Re: Протокол взаимодействия в валидаторами

Zkir wrote:

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

Ок, вообщем-то согласен, но нужен этот багтрекер. Пока делаем взаимодействие с валидаторами напрямую, потом скорее всего допишем функции багтрекера на openstreetmap.ru или еще куда. Не все сразу.

Zkir wrote:

Мои - в ближайшее время не будут.

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

Zkir wrote:

По-моему, это совсем не проблема. Насколько я понимаю, openstreetmap.ru как раз и задумывается как то место, гда пользователи должны смотреть на данные валидаторов (универсальное рабочее место пользователя).

Лично мое мнение - есть еще пользователи openstreetmap.by и openstreetmap.org. А еще могут появиться пользователи деревни X, которые запили свой сайт и хотят видеть результаты валидации на нем.

Zkir wrote:

И я так и не понял зачем нужен BBOX. Не легче ли раз в сутки (или в указанный интервал работы валидатора) зачитать его данные оптом?

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

Last edited by Alno (2012-04-19 16:55:30)

Offline

#14 2012-04-19 17:23:34

PShA
Member
Registered: 2011-07-26
Posts: 170

Re: Протокол взаимодействия в валидаторами

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

Offline

#15 2012-04-19 20:18:48

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,091

Re: Протокол взаимодействия в валидаторами

подключать левые валидаторы простой ссылкой

Это что за наезд такой, что значит левые!!!!???
tongue

Такая простая агрегация вряд ли прокатит. Вот универсальный багтрекер было бы клево. Хорошо что понимание этого кажется есть.) 

***

Еще несколько замечаний. smile
Подумайте вот над чем. В одном валидаторе может быть несколько тестов, а в каждом тесте несколько типов ошибок.  Поэтому было бы разумно, если бы валидатор отдавал описания ошибок тоже, вместе с краткой рекомендацией как ее починить.  Как например здесь: http://peirce.gis-lab.info/qa/RU-SPO#errdescr

Что могу предложить лично я.
Есть xml'и  с результатами валидации.  Находятся здесь:
peirce.gis-lab.info/ADDR_CHK/{код карты по ISO 3166}.mp_addr.xml

Например: http://peirce.gis-lab.info/ADDR_CHK/RU-MOS.mp_addr.xml

Можете брать и использовать как хотите smile

1. Что я могу сделать:
* вместо xml отдавать json'ы по тестам отдельно (но все равно в разрезе регионов).

2. Чего я не буду делать:
* Поддерживать выборки по BBOX
* Делать багтрекер smile

Last edited by Zkir (2012-04-19 20:25:27)


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#16 2012-04-19 20:25:55

ErshKUS
Member
From: Калиниград
Registered: 2010-12-27
Posts: 795

Re: Протокол взаимодействия в валидаторами

ну значит сначало будем те кто будет по bbox tongue


Ты никогда не спутаешь пути: ты стоишь...
И, может, так и нужно, но как тогда узнать, что там выше крыш?   (Lumen, Лабиринт)

Offline

#17 2012-04-19 20:45:55

Alno
Member
From: Moscow/Kaluga
Registered: 2009-08-20
Posts: 45
Website

Re: Протокол взаимодействия в валидаторами

Zkir wrote:

Подумайте вот над чем. В одном валидаторе может быть несколько тестов, а в каждом тесте несколько типов ошибок.  Поэтому было бы разумно, если бы валидатор отдавал описания ошибок тоже, вместе с краткой рекомендацией как ее починить.  Как например здесь: http://peirce.gis-lab.info/qa/RU-SPO#errdescr

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

Zkir wrote:

Что могу предложить лично я.
Есть xml'и  с результатами валидации.  Находятся здесь:
peirce.gis-lab.info/ADDR_CHK/{код карты по ISO 3166}.mp_addr.xml
Например: http://peirce.gis-lab.info/ADDR_CHK/RU-MOS.mp_addr.xml

Можете брать и использовать как хотите smile

Круто, постараюсь в ближайшее время сделать кэширующий конвертер, отвечающий на bbox smile

Offline

#18 2012-04-19 22:30:28

Zkir
Member
From: Хрустальная Москва
Registered: 2009-02-21
Posts: 6,091

Re: Протокол взаимодействия в валидаторами

Alno wrote:

Круто, постараюсь в ближайшее время сделать кэширующий конвертер, отвечающий на bbox smile

Если что, стучитесь в почту - zkir [гав] zkir.ru)


Истинные слова не не приятны, приятные слова не истинны.
True words are unpleasant; pleasant words are untrue.

Offline

#19 2012-04-20 07:47:19

osmisto
Member
Registered: 2010-06-16
Posts: 633
Website

Re: Протокол взаимодействия в валидаторами

Уря, аггрегатор валидаторов smile

Я согласен с Zkir, что BBOX не очень хорошо. Во-первых в работе это будет странно, отзумил я на область, а потом жду хз сколько, пока каждый из 50 валидаторов отдаст мне свой набор. А если кто-то ещё завис...?
Во-вторых, сами валидаторы станут сложнее, тогда как лучше было бы чтобы сложность была в одном месте, а в валидаторах минимум. Можно даже просто один json на все ошибки делать каждую ночь и дать на него ссылку.
И, в-третьих, если аггрегатор будет их к себе все выкачивать он сможет объединять маркеры на больших зумах и выдаавть "облачка ошибок с циферками". Тогда на большом зуме будет видна общая загрязнённость, а не надпись "приблизь, а?".

Last edited by osmisto (2012-04-20 08:13:07)

Offline

#20 2012-04-20 08:09:47

osmisto
Member
Registered: 2010-06-16
Posts: 633
Website

Re: Протокол взаимодействия в валидаторами

А ещё по протоколу: 

В словарик с типами в "параметрах" можно добавить:
- how_to_fix -- инструкция (html?)
- who_can_fix -- anyone | resident

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

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

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

И в JSON-е с ошибками пропущен ID. Хорошо бы, если бы валидаторы сами генерировали ID для своих ошибок, и обеспечивали постоянство ID для одной и той же ошибки между обновлениями. Лучше них этого никто не сделает.

Update: я понял - description, это описание именно этой ошибки, а не типа! А описание типа похоже в text. Удалил это.

Last edited by osmisto (2012-04-20 08:11:55)

Offline

#21 2012-04-20 08:18:19

osmisto
Member
Registered: 2010-06-16
Posts: 633
Website

Re: Протокол взаимодействия в валидаторами

Забыл про URL на ошибку в валидаторе. Если у какой-то ошибки сложное описание, с картинками, и т.п. То легче дать URL, чем пытаться всю эту информацию вставить в description.

Такие описания могут быть, например, в валидаторе дорожного графа. Когда создаются тесты вида "из пункт А в пункт Б маршрут должен пройти через: ..... "  Ошибка для такого теста содержит как минимум правильный маршрут и неправильный. Две картинки, или одна совмещённая.

Last edited by osmisto (2012-04-20 08:18:38)

Offline

#22 2012-04-20 13:35:25

Alno
Member
From: Moscow/Kaluga
Registered: 2009-08-20
Posts: 45
Website

Re: Протокол взаимодействия в валидаторами

osmisto wrote:

Я согласен с Zkir, что BBOX не очень хорошо. Во-первых в работе это будет странно, отзумил я на область, а потом жду хз сколько, пока каждый из 50 валидаторов отдаст мне свой набор. А если кто-то ещё завис...?

Ну если кто-то завис, то только он не отдаст, на остальных это не повлияет.
Но вообще смысл в сборе данных без BBOX похоже все-таки есть, да.

Сейчас идея какая - иметь один протокол по которому могут взаимодействовать и клиентсайд с валидатором напрямую и агрегатор с валидатором и клиентсайд с агрегатором.

Какие-то валидаторы будут выгружать без поддержки BBOX, тупо json каждый день/час, их нельзя будет использовать без сервера-агрегатора.
А какие-то будут поддерживать запрос по BBOX - с ними можно будет работать напрямую с клиентсайда.

При этом протокол один, просто валидатор какие-то фичи из него поддерживает, а какие-то нет. Например сейчас есть флаги поддержки offset/limit, cors и jsonp. Видимо BBOX тоже придется сделать таким флагом.

osmisto wrote:

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

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

Offline

#23 2013-06-13 16:04:02

pvp
Member
Registered: 2011-05-04
Posts: 162

Re: Протокол взаимодействия в валидаторами

Не совсем понял, что значит сообщение валидатора "Улица из адреса не связана с городом".

Offline

#24 2013-06-13 17:07:30

AHTOH
Member
From: Зеленодольск
Registered: 2010-09-22
Posts: 1,024
Website

Re: Протокол взаимодействия в валидаторами

Это значит что улица выходит за пределы place=city
Хотябы на чуть чуть

Offline

#25 2013-06-14 08:07:16

pvp
Member
Registered: 2011-05-04
Posts: 162

Re: Протокол взаимодействия в валидаторами

А чем это отличается от ошибки вида "Улица за пределами города"?

Offline

Board footer

Powered by FluxBB