Я про дублирование в поиске много писал, напишу еще раз.
Правильный, повернутый лицом к человеку поиск должен вестись в специальном адресном реестре, в котором логический объект каждого уровня представлен один раз. В нем одна Москва, один проспект Мира, один дом 13 по улице Пупкина. При конверсии в навигаторы такой реестр [более-менее] составляется.
Если же искать среди объектов osm, неизбежно найдется минимум две Москвы, точка и полигон (а на самом деле еще больше), N сегментов проспекта Мира (потому что он двухвейный и разделен на сегменты для задания запретов и разных параметров участков дорог), M триде-кирпичей дома номер 13 и.т.д.
Отношения, будучи сами _объектами осм_ , вопрос не проясняют, а ИМХО только запутывают. Части дома, входящие в адресное отношение, они что, не имеют адреса?
Comment from Hind on 3 September 2011 at 11:02
Релейшены, на самом деле, как раз идеально подходят. Просто нужно вынести в них абсолютно все комплексные сущности. И хранить их только там.
Те же школы включают в себя здания, территорию, спортплощадки. Имеют телефоны и адрес.
Возможно, следует присмотреться к объектно-ориентированному подходу. Я имел дело с моделями мира в Interactive Fiction (особенно в оо-языке TADS).
Есть, например, базовый класс Thing (нечто) со своими полями. От него наследуются классы предметов (Item), нематериальных сущностей и т.п.
А после создания онтологии и описания её с помощью метаданных можно с легким сердцем применять это в редакторах. Редактору не нужно будет хранить в себе кучу пресетов, ему достаточно ссылки на файл онтологий. А уж пользователь просто выберет из красивого списка/дерева/поиска, чем является объект (можно несколько пунктов, как в НЯК или Викимапии). После чего редактор покажет поля для заполнения и сам создаст (прозрачно для пользователя) все нужные осм-сущности.
Comment from Hind on 3 September 2011 at 11:04
И будет ясно, что если ДЮСШ наследуется от Школы, то ей тоже нужны поля всех родительских классов плюс свои (навроде списка видов спорта).
Comment from Zverik on 3 September 2011 at 12:17
тут сейчас заново переизобретают http://wiki.openstreetmap.org/wiki/GDF, так?
Comment from kolen on 3 September 2011 at 16:43
Да, иногда думается, что неплохо бы, чтобы всё было статически-типизированно, скажем как во Freebase, и типы легко создавались.
Только че-то сама Freebase не особо развивается.
А если сделать подсистему, которая находит все объекты, принадлежащие одной сущности, то она бы не только для поиска пригодилась, но и скажем для рендеринга.