Время — это важный фактор для любого агента, выполняющего действия, и поэтому в области представления временных интервалов был проведен большой объем исследовательских работ. В данном разделе рассматриваются интервалы двух типов: моменты времени и продолжительные интервалы. Различие между ними состоит в том, что только моменты времени имеют нулевую продолжительность: Затем необходимо ввести временную шкалу и связать точки на этой шкале с моментами времени, что позволяет сформулировать понятие абсолютных значений времени. Временная шкала выбирается произвольно; в данной книге время измеряется в секундах и используется соглашение, что момент времени в полночь (среднее время по Гринвичу) 1 января 1900 года имел значение времени 0. Функции Start и End позволяют определить самый первый и самый последний моменты времени в интервале, а функция Time сообщает момент времени на временной шкале, соответствующий текущему моменту. Функция Duration измеряет разность между временем окончания и временем начала. Примеры применения этих функций приведены ниже. Для того чтобы было проще читать эти числа, обозначающие количество секунд от начала отсчета, введем также функцию Date, которая принимает шесть параметров (часы, минуты, секунды, день, месяц и год) и возвращает точку во времени: Предикат Meet позволяет определить, равно ли время окончания первого интервала времени начала второго интервала; эти значения времени задаются в секундах. Существует возможность определить такие предикаты, как Before, After, During и Overlap, исключительно в терминах предиката Meet, но более интуитивно понятными являются их определения в терминах точек на временной шкале (графическое представление этих предикатов приведено на рис. 10.5): Например, чтобы сформулировать утверждение, что царствование Елизаветы II следовало за царствованием Георга VI, а царствование Элвиса Пресли совпадало с периодом 1950-х годов, можно записать следующее: Рис. 10.5. Предикаты, задаваемые на временных интервалах
|