Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://vo.astronet.ru/wiki/historical_abrau2011
Дата изменения: Unknown Дата индексирования: Sat Apr 9 22:56:34 2016 Кодировка: UTF-8 Поисковые слова: п п п п п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п р п |
Работа с неточными временными данными в системах управления базами данных.
Бартунов Олег Сергеевич, ГАИШ МГУ им. М.В.Ломоносова
Карпов Сергей Валентинович, САО РАН
Современное цифровое общество характеризуется глобальным проникновением различных компьютерных сервисов во все области нашей жизни, будь то развлечение, обучение или научные исследования. Весь цикл научного исследования в той или иной мере связан с компьютерами и разнообразными службами, например, поисковые машины помогают нам разыскивать необходимые данные, архивы статей позволяют обмениваться научными публикациями, а разнообразные сенсоры добывают для нас научные данные. Проникновение цифровых сервисов в научную жизнь не везде одинаково; так, гуманитарные науки только переходят от этапа накопления цифровой информации (перевод в цифровую форму) к этапу ее структурирования и только начали сталкиваться с проблемами хранения в базах данных. Например, исторические науки оперируют неточными датами, которые не поддерживаются современными промышленными СУБД. С другой стороны, и в более продвинутых естественных науках существуют схожие проблемы, связанные с необходимостью работы с неточными данными - например, все экспериментальные данные имеют определенную ошибку и надо уметь это учитывать, надо уметь работать с пропущенными данными и данными с пределами, уметь проводить кросс-идентификацию событий в экспериментах итд. Для специалистов по базам данных все эти проблемы сводятся к необходимости работы со значением, имеющим дополнительный атрибут - интервал значений. Работа означает эффективное хранение таких данных, доступ к ним и поддержку определенных операторов. Мы остановимся на примере неточных временных данных в приложении к историческим наукам, используя наиболее развитую и богатую возможностями свободную СУБД PostgreSQL, которая зачастую используется в научных приложениях.
Основным элементом исторической информации является “событие” - совокупность времени, места, участвующих лиц и собственно содержания события. Знание этих параметров позволяет строить взаимосвязи событий - пространственно-временные, причинные, итд - и делать заключения о деталях исторического процесса. Важными элементами являются также персоналии и библиографии - списки документов, описывающих те или иные события, личности, комментирующие другие источники данных и так далее.
Время события - историческая дата - является зачастую не вполне точно определенной величиной. Действительно, далеко не всегда известно не только точное время того или иного события, но и его день, месяц, год. Более того, зачастую про событие известно лишь то, что оно было до некоторого момента. В целом, можно выделить четыре основных случая такой неопределенности:
Естественным способом задания подобной информации в СУБД является интервальный тип - в случае PostgreSQL это может быть реализовано либо посредством композитного типа из двух timestamp-ов, либо на основе общего подхода Range Types (http://wiki.postgresql.org/wiki/RangeTypes), который будет доступен, начиная с версии 9.2. Требуемые для формализации работы с данными операции сравнения заданных таким образом моментов времени могут быть заимствованы из интервальной алгебры Аллена и включают в себя следующие отношения:
Таблица основных отношений двух дат, A и B, заданных моментами начала (A-, B-) и конца (A+, B+), приведена ниже:
| A- < B- | B- < A- < B+ | A- > B+ --------------+---------+--------------+--------- A+ < B- | A < B | --- | --- --------------+---------+--------------+--------- B- < A+ < B+ | A <= B | A = B | | A && B | A && B | --- | | A <@ B | --------------+---------+--------------+--------- A+ > B+ | A = B | A >= B | A > B | A && B | A && B | | A @> B | |
Этих отношений достаточно для упорядочивания последовательности событий - построения их “временных последовательностей” (timelines).
Следует заметить, что исторические даты не обязательно задаются непрерывным интервалом - они могут порой сводиться к массиву таких интервалов - временных отрезков. Действительно, неформальное задание момента исторического события вида “осенью XIX века, но скорее всего в сентябре 20-х годов” невозможно свести к одному интервалу - XIX веку - без потери потенциально важной уточняющей информации. Использование массивов интервалов решает эту проблему.
Географическая информация - место, где происходило событие - также не обязательно является точно заданной. Нередки варианты ее задания вида “в Москве”, “в Германии”, “на Ближнем Востоке”. СУБД PostgreSQL имеет готовые средства для работы с географической информацией, включающие в себя как полноценные ГИС-решения (PostGIS, http://postgis.refractions.net/), так и более низкоуровневые расширения для работы с координатами на сфере (pgSphere, http://pgsphere.projects.postgresql.org/, и Q3C, http://sourceforge.net/projects/q3c/).
Персоналии задаются списком имен, под которыми историческая личность известна в источниках, а также датами жизни и смерти. Библиографии строятся на основе понятия “документа” - текста, который имеет дату написания и может входить в коллекции-издания. Таблица предикатных связей задает различные виды отношений между документами, персоналиями и событиями, которые могут иметь, к примеру, следующий вид:
Подобная схема позволяет эффективно формализовать, хранить и строить заключения по большинству видов “сырой” информации любого типа, не обязательно описывающей исторические процессы.
Back to top