?

Log in

   Journal    Friends    Archive    Profile    Memories
 

Слон (часть 2). Проект "Что, Где, Когда" -- интерактивная историческая карта - Внеочередное незавоевание Манхэттена

Aug. 1st, 2016 07:58 pm Слон (часть 2). Проект "Что, Где, Когда" -- интерактивная историческая карта

Лень читать? Клацни сюда! Пока вы не бросили читать, кликните на ссылку с результатами проекта.

Наш с Пашей проект занимался осуществлением моей давней мечты ;) А именно, интерактивной исторической карты -- дабы посмотреть на исторические события, выстроенные во времени и географии.
Чтобы изучать историю не просто в текстовом виде, и даже не в форме таймлайна, а как-то более наглядно. Чтобы можно было посмотреть, чем занимался Египет, пока в Европе было Возрождение и с кем воевал Китай в те годы, которые школьный курс истории обходит стороной.
Ну или в конечном итоге, хотя бы узнать, кто из известных людей жил параллельно с Тургеневым (этот вопрос навеян, разумеется, "Берегом утопии" -- и там же раскрыт).
Если еще честнее. Я ужасающе плохо знаю историю и хотел узнать её лучше за счет нового формата подачи информации.
И еще немного честнее... Мне кажется, я знаю, как сделать из таких карт бизнес.
А совсем начистоту. Просто это офигенный проект, который мне хочется делать самому последние года три-четыре, но который я всё откладывал в дальний ящик. Я понял, что на школе от него отлынивать не получится - и поэтому мы с Пашей притащили его на школу.


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

Таким образом проект логично разделился на две части: "фронтенд" (его в основном курировал Паша) рисовал карту, а "бэкенд" (за который отвечал я) парсил википедию, вычленяя из полуструктурированных данных - структурированные и сохраняя их в базу данных.
Фронтенд делали Оля Бонецкая и Наташа Колесникова. На старте у них был малый (если не нулевой) опыт работы с вебом и очень глючный и замороченный API яндекс-карт. Но в итоге у них получился очень приятный интерфейс. Я представлял себе результат совсем другим, моей исходной идеей была анимированная карта. Но в том интерфейсе, что у Наташи с Олей получился, оказалось возможным смотреть срезы событий по времени и странам -- и это весьма увлекательное занятие.

Парсингом википедии и собственно бэкендом - сервером, который отвечает на запросы - занимались Андрей Себякин и Мыш (aka Артём Козинцев). И это оказалось очень увлекательным занятием.
Инфобоксы в википедии сильно упростили нам задачу. Но всё же они оказались полуструктурированными. Даты записаны в куче разных форматов. А расположение события иногда приходится получать, пройдя по ссылке на другую страницу.
Категории вложены друг в друга порой циклично. А уж логика вложения от меня ускользает: дойти от военных конфликтов до философии постмодернизма вполне возможно, бродя только по подкатегориям.
Стандартные компьютерные форматы записи даты предполагают, что дата - это время, которое можно в органайзере поставить. О существовании каких то эр до нашей компьютеры - не знают. Но, вооружившись костылями, мы смогли убедить компьютер в том, что история началась немного раньше несуществующего нулевого года нашей эры... А именно 9016 лет назад (в летоисчислении Date7000). Что приятно, мы ведем свой отсчет истории с более древних времен, чем иудеи. Правда, фронтенд пока не умеет в отрицательные даты; но это временно.
Так или иначе, нам удалось добыть для демонстрации более тысячи исторических событий, и наш краулер способен добыть их еще больше. Правда пока это только войны, но скоро помимо войн будут и другие катаклизмы ^_^.


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

Итак, техника безопасности для вас и вашего браузера: событий на карте много и загрузка происходит не мгновенно. Не нервничайте и просто ждите - и они появятся. Если меняете промежуток времени и список стран, дожидайтесь загрузки событий и только потом меняйте промежуток снова (иначе возможны глюки с загрузкой неверного набора событий). Не кликайте на кластеры с большим числом событий (больше 30 не стоит): это опрометчивое действие попробует подгрузить вам иногда почти мегабайт текстовых данных и вывалить их на бедный браузер. Просто не делайте этого. Лучше приблизьте карту и кликните на кластеры размером поменьше.
Ну и учтите, что сервер бэкенда иногда падает по неизвестным науке причинам. Если это ваш случай, напишите мне коммент.

Если вы хотите предложить идею или пожаловаться на баг, смело предлагайте! Если вы умеете писать в багтрекере (он расположен там же где репозиторий, см.ниже) - то прямо туда пишите. Если не умеете, то в пишите в комменты.
Жизнь проекта продолжается и после школы, хоть и в другом ритме. Несколько школьников решили присоединиться к проекту после окончания "Слона". Если и вы хотите, контрибьютить - юар велком. У нас в репозитории анархия, зато скучно не будет.

p.s. Пользуясь случаем, хочу сказать, что Оля, Наташа, Андрей и Мыш - крутые молодцы! А Паша - отличный прожект-менеджер (руководитель проекта, если по нашему).

Tags:

11 comments - Leave a commentPrevious Entry Share Next Entry

Comments:

From:ulito4ka_s
Date:August 1st, 2016 05:35 pm (UTC)
(Link)

Чорт, какой же это офиненный проект!! (Я еще не посмотрела в браузере, но мне и так круто)
Это же то, о чем я мечтала всегда, но просто не знала этого. Это же моя проблема тоже: я не знаю историю, и чтобы ее узнать, мне надо делать что-то такое!
Может, я могу быть как-то вам полезна?

From:prijutme4ty
Date:August 1st, 2016 06:05 pm (UTC)
(Link)
Если ты всё еще можешь в программирование, выбирай на какой ты стороне: бэкенд или фронтенд. ;-) А я, разумеется, готов курировать и учить всему необходимому.
Если в программирование не можешь или не хочешь, то тоже можешь помочь и даже не одним способом.
- Пока что мы плохо понимаем, как отображать события, не имеющие географической привязки (биографические детали или просто события, для которых не проставили координату). Есть таймлайны, но они довольно унылы и быстро разрастаются. Если у тебя есть идеи, как сделать хорошо и понятно - пиши.
- Мы не очень хорошо умеем в дизайн.
- Есть огромный кусок википедии, который мы можем распарсить лишь частично, а дальше нам нужна помощь в том, чтобы вручную проаннотировать, что мы правильно расшифровали, а что нет. Например, очень сложно без помощи человека сказать, что в дате 09/08/31 является месяцем, что днем, что - годом. С координатами тоже бывают большие сложности: например, непросто автоматически определить, что во фразе "Милан, Италия" указывает координату точнее. Мы сейчас надеемся писать умный алгоритм распознавания дат, но и он без человеческого участия не взлетит.
- Когда багов станет меньше и их придется искать... в общем, их придется искать :) Но пока что они на поверхности лежат штабелями.
- Придумай интересные категории событий? Из геотэгированных мы пока придумали только военные конфликты, катаклизмы, сотворение городов. Из нетэгированных - даты жизни ученых, писателей, политических деятелей, а также даты научных открытий и создания произведений искусства.
- И вообще любые идеи приветствуются!

А еще жду отклика, когда ты посмотришь на карту в действии.
From:Андрей Гаврилов
Date:August 1st, 2016 05:49 pm (UTC)
(Link)
обожемой, кто-то еще этого хотел!
From:prijutme4ty
Date:August 1st, 2016 06:05 pm (UTC)
(Link)
Как этого можно не хотеть?! :-)
Получилось посмотреть саму карту?
From:Андрей Гаврилов
Date:August 1st, 2016 07:34 pm (UTC)
(Link)
)) ну, формулировок идеи, как "общего места" я не встречал до того, так что "сам, все сам". Хотя казалось бы - "как этого можно не хотеть?!:-)" ))

Карту открыл, до облачков с цифрами.

По виду отличалось от моей идеальной формы, дальше пока что не стал дожидаться. Дела!)

В любом случае - шикарная задача на школу, большая проделанная работа, и хорошая основа для дальнейшего развития идеи! :)

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

From:bibliotekar
Date:August 1st, 2016 07:45 pm (UTC)
(Link)
Недавно образовач (несколько месяцев назад) выкладывал с похожим движком штуку про разные сражения (правда и только про них)
From:bibliotekar
Date:August 1st, 2016 07:47 pm (UTC)
(Link)
From:prijutme4ty
Date:August 1st, 2016 07:51 pm (UTC)
(Link)
Ага, его видели. Правда, уже после школы наткнулись.
From:prijutme4ty
Date:August 1st, 2016 07:48 pm (UTC)
(Link)
Ну я встречал недавно штуку с баттлами типа нашей, правда там только точки, без описаний, может быть ту самую. Там был хороший проект, может мы у них кое что переймем.
From:zverok_kha
Date:September 11th, 2016 01:15 pm (UTC)
(Link)
Привет. Вам возможно будет интересно (в рамках эээ обмена опытом) поковырять наши проекты infoboxer (клиент википедии + полный парсер вики-разметки) и reality (интерфейс «ко всем знаниям о реальном мире» на основе википедии, викидаты и других API). Ссылок не ставлю, потому что ЖЖ закинет коммент в спам, но посмотреть на них можно на гитхабе, в организации github/molybdenum-99.

Оно всё на Руби, но на Питон портировать (или так использовать) должно быть не супер-сложно. Я, в принципе, постоянно кручусь где-то вокруг темы «извлечение структурированных данных изо всего» и может быть как-то пригожусь — но я рубист. Пишите на zverok.offline на гмейл если што!
From:prijutme4ty
Date:September 11th, 2016 01:28 pm (UTC)
(Link)
Добрый день! Безусловно будет интересно! Большое спасибо за ссылку, непременно посмотрю. Тем более, что я сам рубист, а питон использовал лишь из соображений, что его все знают.
Сразу как появится возможность немного изучить ваш проект вам напишу.