You are not logged in.
- Topics: Active | Unanswered
#1 2012-04-19 14:48:14
- ErshKUS
- Member
- From: Калиниград
- Registered: 2010-12-27
- Posts: 803
Протокол взаимодействия в валидаторами
В ходе совместных усилий (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,183
- Website
Re: Протокол взаимодействия в валидаторами
Валидаторы и ОСБ это совершенно разноуровневые штуки всё-таки
Чем меньше ты флудишь, тем больше нарисуешь!
Offline
#4 2012-04-19 15:05:50
- Alno
- Member
- From: Moscow/Kaluga
- Registered: 2009-08-20
- Posts: 45
- Website
Re: Протокол взаимодействия в валидаторами
API OpenStreetBugs - это просто возврат маркеров, насколько мне известно. Нельзя определить что за объекты вызвали ошибку без дополнительно парсинга, например.
Поправьте, если я не прав.
А так, да, конечно:
Но я например, еще планирую перенять наработки 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: Протокол взаимодействия в валидаторами
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,110
Re: Протокол взаимодействия в валидаторами
Если есть предложения, пожелания и пр. - пожалуйста.
Забавно конечно, но какая именно поддержка планируется на 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: Протокол взаимодействия в валидаторами
закачивал бы результаты валидаторов, показывал бы ошибки как ошибки
Именно это и планируется. И именно для этого предполагается использовать запрос по BBOX.
при этом была бы возможность пометить эти ошибки как пофикшенные. При этом они должны показываться как пофикшенные, пока эта ошибка не исчезнет из результатов валидатора
Я лично об этом не думал, возможно у Евгения были такие планы, но я не вижу принципиальных проблем это реализовать (с хранением отметов о фиксах в базе 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: Протокол взаимодействия в валидаторами
Это лечится введением идентификаторов ошибок на время между обновлениями. Благо они у всех есть в том или ином виде.
На самом деле это не является обязательным требованием к валидатору.
Внутренний идентификатор для хранения информации об ошибках может быть получен как некоторый хэш от типа ошибки и ее местоположения, при условии, что ошибки не плавают по карте.
Offline
#10 2012-04-19 16:17:04
- ErshKUS
- Member
- From: Калиниград
- Registered: 2010-12-27
- Posts: 803
Re: Протокол взаимодействия в валидаторами
А в связи с обновлением валидаторов, а завел тему http://forum.openstreetmap.org/viewtopic.php?id=16283 , и тогда можно будет клипать валидаторы с часовым интервалом обновления но это так, на будущее и те кто хочет работать с симпл схемой
Ты никогда не спутаешь пути: ты стоишь...
И, может, так и нужно, но как тогда узнать, что там выше крыш? (Lumen, Лабиринт)
Offline
#11 2012-04-19 16:26:56
- Zkir
- Member
- From: Хрустальная Москва
- Registered: 2009-02-21
- Posts: 6,110
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 и выдавали диффы ошибок, а не парсили всю страну-планету, например... Ускорение должно быть значительное, если правильно поставить на поток, ну и запускать их можно будет чаще
Можно это дело совместить - валидаторы будут дергать на осмру только новые и закрытые баги за свой период обновления, а у ошибок будут статусы:
- новый баг (получили от валидатора, никто не фиксил)
- закрытый пользователем (ждем от валидатора подтверждения закрытия)
- закрытый-ошибка (валидатор не подтвердил закрытие после обновления)
- закрытый-проверенный (удаляется через день/неделю после обновления валидатора)
//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: Протокол взаимодействия в валидаторами
Как раз валидатор следить за фиксами НЕ должен. Его задача простая - пройтись по данным и выплюнуть список ошибок. Следить же за фиксами должен багтрекер.
Ок, вообщем-то согласен, но нужен этот багтрекер. Пока делаем взаимодействие с валидаторами напрямую, потом скорее всего допишем функции багтрекера на openstreetmap.ru или еще куда. Не все сразу.
Мои - в ближайшее время не будут.
Я прекрасно вас понимаю в этом. Думаю, что другие авторы валидаторов тоже не имеют желания добавлять валидатору эти функции.
По-моему, это совсем не проблема. Насколько я понимаю, openstreetmap.ru как раз и задумывается как то место, гда пользователи должны смотреть на данные валидаторов (универсальное рабочее место пользователя).
Лично мое мнение - есть еще пользователи openstreetmap.by и openstreetmap.org. А еще могут появиться пользователи деревни X, которые запили свой сайт и хотят видеть результаты валидации на нем.
И я так и не понял зачем нужен 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,110
Re: Протокол взаимодействия в валидаторами
подключать левые валидаторы простой ссылкой
Это что за наезд такой, что значит левые!!!!???
Такая простая агрегация вряд ли прокатит. Вот универсальный багтрекер было бы клево. Хорошо что понимание этого кажется есть.)
***
Еще несколько замечаний.
Подумайте вот над чем. В одном валидаторе может быть несколько тестов, а в каждом тесте несколько типов ошибок. Поэтому было бы разумно, если бы валидатор отдавал описания ошибок тоже, вместе с краткой рекомендацией как ее починить. Как например здесь: 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
Можете брать и использовать как хотите
1. Что я могу сделать:
* вместо xml отдавать json'ы по тестам отдельно (но все равно в разрезе регионов).
2. Чего я не буду делать:
* Поддерживать выборки по BBOX
* Делать багтрекер
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: 803
Re: Протокол взаимодействия в валидаторами
ну значит сначало будем те кто будет по bbox
Ты никогда не спутаешь пути: ты стоишь...
И, может, так и нужно, но как тогда узнать, что там выше крыш? (Lumen, Лабиринт)
Offline
#17 2012-04-19 20:45:55
- Alno
- Member
- From: Moscow/Kaluga
- Registered: 2009-08-20
- Posts: 45
- Website
Re: Протокол взаимодействия в валидаторами
Подумайте вот над чем. В одном валидаторе может быть несколько тестов, а в каждом тесте несколько типов ошибок. Поэтому было бы разумно, если бы валидатор отдавал описания ошибок тоже, вместе с краткой рекомендацией как ее починить. Как например здесь: 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Можете брать и использовать как хотите
Круто, постараюсь в ближайшее время сделать кэширующий конвертер, отвечающий на bbox
Offline
#18 2012-04-19 22:30:28
- Zkir
- Member
- From: Хрустальная Москва
- Registered: 2009-02-21
- Posts: 6,110
Re: Протокол взаимодействия в валидаторами
Круто, постараюсь в ближайшее время сделать кэширующий конвертер, отвечающий на bbox
Если что, стучитесь в почту - 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: Протокол взаимодействия в валидаторами
Уря, аггрегатор валидаторов
Я согласен с 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: Протокол взаимодействия в валидаторами
Я согласен с Zkir, что BBOX не очень хорошо. Во-первых в работе это будет странно, отзумил я на область, а потом жду хз сколько, пока каждый из 50 валидаторов отдаст мне свой набор. А если кто-то ещё завис...?
Ну если кто-то завис, то только он не отдаст, на остальных это не повлияет.
Но вообще смысл в сборе данных без BBOX похоже все-таки есть, да.
Сейчас идея какая - иметь один протокол по которому могут взаимодействовать и клиентсайд с валидатором напрямую и агрегатор с валидатором и клиентсайд с агрегатором.
Какие-то валидаторы будут выгружать без поддержки BBOX, тупо json каждый день/час, их нельзя будет использовать без сервера-агрегатора.
А какие-то будут поддерживать запрос по BBOX - с ними можно будет работать напрямую с клиентсайда.
При этом протокол один, просто валидатор какие-то фичи из него поддерживает, а какие-то нет. Например сейчас есть флаги поддержки offset/limit, cors и jsonp. Видимо BBOX тоже придется сделать таким флагом.
И, в-третьих, если агрегатор будет их к себе все выкачивать он сможет объединять маркеры на больших зумах и выдаавть "облачка ошибок с циферками". Тогда на большом зуме будет видна общая загрязнённость, а не надпись "приблизь, а?".
Да, часто это очень полезно, но в некоторых случаях не нужно. Хочется с одной стороны сделать это возможным, но при этом не вводить сервер-агрегатор как обязательную сущность. Кому не надо - имеет право обходиться без него.
Offline
#23 2013-06-13 16:04:02
- pvp
- Member
- Registered: 2011-05-04
- Posts: 198
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: 198
Re: Протокол взаимодействия в валидаторами
А чем это отличается от ошибки вида "Улица за пределами города"?
Offline