Общие подходы к технологическим решениям

Post Reply
Admiral
Founder and CEO
Posts: 9
Joined: Wed May 13, 2020 4:10 pm

Общие подходы к технологическим решениям

Post by Admiral »

1. Сбор и обработка первичных данных.


Для начала, необходимо собрать данные о географических локациях (городах) - в первую очередь речь идет о географических координатах, а также о дате основания города (или же дате первого упоминания в исторических хрониках). Основным источником данных для сбора является база данных Wikipedia. Помимо базовых параметров, необходимо также получить следующую информацию о геолокации: принадлежность города к различным государствам и история смены названий города (если имели место).



Специальные сервисы data miners выкачивают из заслуживающих доверия источников страницы, статьи или данные в любом другом формате и сохраняют их на сервере Historica для дальнейшей обработки. Этот шаг необходим для обхода защиты от ботов, размещаемой перед каждым уважающим себя источником данных. Мы храним копии данных, практически без обработки, и делаем пометки которые позволяют определить при следующем обходе, не изменился ли оригинал. В случае изменении оригинала или появлении новых данных запускается весь конвейер Historica, позволяющий в конечном итоге отобразить на карте проверенные факты.



Следующими в работу вступают такие сервисы как facts miners. Их задача выбрать интересующие нас факты: информацию о городах, странах или персоналиях. Все добытые факты сохраняются в отдельную базу данных - raw facts database. Для получения фактов из неструктурированной и слабоструктурированной информации, Fact miners используют NLP-алгоритмы (natural language processing). Одновременно с отбором сырых фактов, все отсылки с источника данных и ссылке на него, если это возможно, заносятся в очередь обработки. Очередь обработки служит как входными данными, для data miners, упомянутых выше, так и для повторной обработки первоисточников. Одной из задач facts miners является бесконечный, циклический обход первоисточников. В отличии от data miners, facts miners могут работать в высоконагруженном параллельном режиме, не боясь получить бан от источников информации, так как все данные теперь находятся у нас.



Для формирования raw facts database планируется использовать источники, представляющие из себя тексты на различных языках. Перед обработкой подобных статей алгоритмами NLP, все эти тексты должны быть переведены на базовый язык, каковым является английский. Предполагается, что для подготовки данных будут использованы системы машинного перевода на английский язык. Например, в Wikipedia, как правило, каждый значимый географический объект (город) имеет целый набор статей, написанных на различных языках и в ряде случаев, это не просто переведенные статьи с одного языка на другой, а тексты, созданные независимо друг от друга. Факты об одном и том же городе, изложенные в этих статьях могут подверждать, дополнять или даже опровергать друг друга. В любом случае, система получает достаточно базового материала для алгоритмов facts selectors, которые займутся проверкой и отбором настоящих фактов. Такие алгоритмы должны задействовать системы AI/ML, которые позволят оставить только факты не противоречащие как друг другу, так и здравому смыслу. Все полученные факты сохраняются в виде, который позволяет:

очень дешево (алгоритмически) провести проверку непротиворечивости;

отображать факты без дополнительных преобразований и расчетов. Например, в ряде случаев дешевле хранить факт о появлении в X году и исчезновении в X+34 города А, чем о переименовании X в А, и постоянной проверке этого факта при изменении года, отображаемого на карте.



2. Отображение данных на карте.



2.1 Общие принципы и подходы.



По запросу пользователя, Map Presenter отображает все, отобранные на предыдущих этапах факты, на карте мира, на выбранный пользователем год. Для отображения карты мы используем Open Layers. Это решение ориентировано на работу с GIS и дает возможность манипулировать данными, не заботясь о движке, а позволяет сосредоточится на самих данных и их подаче.

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


2.2 Отрисовка границ государств в исторической динамике.



Поначалу, мы предполагали, что формирование границ государств может базироваться на принципах машинного обучения, связанных с алгоритмами линейной классификации. Одним из таких алгоритмов мог бы стать, например, “Метод опорных векторов” (Support Vector Machine или SVM). Данный алгоритм, использующий методы “обучения с учителем” (supervised learning), позволил бы создать множество гиперплоскостей, разделяющих между собой группы геолокаций, принадлежащих двум разным государствам. Будучи последовательно соединенные между собой, они образовали бы ломаную линию межгосударственной границы, относительно приближенной к реально существовавшей в любой из заданных исторических эпох. Для реализации данной идеи, для каждой страны потребовалось бы извлечь максимально полную информацию обо всех возможных геолокациях, вплоть до самых мелких (таких как деревни и села). Чем больше удалось бы собрать подобной информации (особенно для приграничных зон), тем точнее могла бы быть математически рассчитанная межгосударственная граница. Однако, при изучении того набора данных, которые предоставляет Wikipedia, мы обнаружили, что несмотря на обилие статей о различных мелких геолокациях с географическими координатами, в них практически отсутствуют данные о времени возникновения данных поселений, что делает практически невозможным их корректное отображение на карте в исторической динамике.

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

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

В свете вышеизложенного, на текущий момент принято решение отказаться от подобных методов расчета границ в пользу так называемого “дедуктивного” способа определения границ, обращенного “назад во времени”. Речь идет о методе, когда истинные, реально существующие на текущий момент границы задаются в виде начальных условий, а затем, базируясь на извлеченных из базы данных исторических фактах, оказавших влияние на изменение границ, мы будем постепенно менять координаты линий их обозначающих. Возможно, и в этом методе также будут присутствовать неточности, однако чем ближе мы будем выбирать эпоху к текущему времени, тем точнее будут отрисовываться границы. Понятно, что в момент возврата к текущему моменту, границы будут отрисовываться максимально точно, поскольку их координаты будут совпадать с реальными, изначально заданными. Подобный метод позволит нам избавиться от необходимости извлекать из базы данных информацию о малозначительных геолокациях, а сосредоточиться только лишь на относительно крупных объектах, историческая информация о которых будет достаточно полной и позволит нам максимально точно отобразить ее на временной шкале.

Однако, возникает новая сложность - каким образом изменять границы государств, если, например, нам встретилось событие, когда город принадлежал сначала одному государству, а затем был захвачен другим? Получается, что границы следует передвинуть, а соответствующий участок карты перекрасить в нужный цвет. Но следует принять во внимание, что отображаемый на карте город представляет из себя геометрическую точку, а не какую-то полигональную область. Очевидно, что захват города сопровождается автоматическим захватом территории вокруг него, то есть речь идет о целом районе (провинции). Поэтому было бы целесообразно оперировать множеством полигонов, отражающим привязку территории к конкретному городу. Каждая страна может состоять из большого количества подобных полигонов, которые могут менять форму и размер, в зависимости от исторической эпохи. Принципы же формирования и динамического изменения подобных полигонов нам еще предстоит разработать. Во всяком случае, у них будут такие же “начальные условия” как и у границ - то есть они будут базироваться на данных, взятых из текущей реальности.



2.3 Раскрашивание государств на карте.



Когда все границы будут отрисованы, перед системой встанет задача раскрашивания карты. Понятно, что когда все данные о координатах границ имеются, то каждое государство можно будет рассматривать как отдельный классифицированный полигональный объект, который можно заполнить определенным цветом в рамках его границ. Алгоритм, также, должен будет решить задачу выбора цвета для каждого из государств, и руководствоваться при этом принципом контрастного отображения. Существует классическая математическая задача “Проблема четырех красок”, которая гласит что любую карту можно раскрасить, используя всего 4 цвета так, чтобы любые две области с общим участком границы были раскрашены в разные цвета. Наша задача упрощается в том аспекте, что мы не ограничены лишь набором из четырех цветов, а к нашим услугам имеется весь возможный цветовой спектр. Несмотря на то, что международное право признает наличие границ государств не только не суше, но и на воде (моря, океаны) - мы при раскрашивании будем полагать, что границами будут являться береговые линии - по крайней мере именно так принято их отображать на политических картах мира. Тем не менее, и здесь имеется ряд проблем. Например, история нашей цивилизации знает немало периодов, когда некоторые территории не были частью каких-либо государств, а принадлежали при этом каким-то племенам (или союзам племен). На обычных картах, подобные факты отмечаются не закрашиванием территорий, а лишь обозначением названия этих народов (этносов) примерно в тех местах, где они обитали. Нам придется разработать отдельные алгоритмы для выявления подобных территорий и фактов, с ними связанных для относительно корректной визуализации извлеченной и обработанной алгоритмами NLP информации. В подобных случаях, понятие “граница” и “цвет окраски” будет, разумеется, отсутствовать.



2.4 Нелинейная временная шкала.




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



От X тысячелетия до н.э. по IV тысячелетие до н.э. - 1 МШ = 1000 лет

От IV тысячелетия до н.э.по I тысячелетие до н.э. - 1 МШ = 100 лет

От I тысячелетия до н.э. по 500 г. до н.э. - 1 МШ = 10 лет

От 500 г. до н.э. по 1500 г. н.э. - 1 МШ = 1 год

От 1500 г. н.э. и по настоящий момент - 1 МШ = 1 месяц
Post Reply