10
На пути к 4D или вперед в недалекое прошлое?
Рубрика: Semantic Web, Наталья Кеберле, ОнтологииОцените заметку!!! |
В продолжение темы, поднятой в заметке “На пути к 4G”… (Щербак)
Действительно, в «пироге языков Semantic Web», куда входит OWL ( и даже его версия OWL 1.1) все языки статичны. В них нет поддержки концепций пространства и времени на уровне логических конструкций языка. Пока разработчик может рассчитывать на «ручную» обработку и заполнение тегов rdf:comment (если онтология описана только в RDF Schema) или тегов owl:priorVersion, owl:versionInfo, owl:backwardCompatibleWith, owl:incompatibleWith, которые W3C зарезервировала на будущее.
Попробуем выяснить, насколько далеко от нас это будущее.
Оставим в стороне вопрос представления пространства в онтологии (это будет основой для другой заметки) и обратимся к представлению оси времени.
В 2004 году Jerry Hobbs & Feng Pan сформулировали онтологию времени для OWL. В 2006 году она была принята в качестве черновика в W3C (WD-owl-time-20060927). Определения в онтологии сгруппированы в два пространства имен: time (http://www.w3.org/2006/time) – для основных временных сущностей и отношений между ними, и tzont (http://www.w3.org/2006/timezone) – для определения временных зон.
Как же можно использовать OWL-time? Именно для описания конкретных временных структур, или проще – конкретных размещений значимых точек/интервалов времени на оси времени, календарных дат, дней недели. С помощью OWL-time дата и время, день недели и номер месяца становятся «осмысленными» для машинной обработки.
Harry Chen (time.html и позже code.html) добавил в Jena набор rdf-ориентированных правил для обработки аксиом из теории временных отношений James Allen и создал rdf-ориентированную темпоральную машину вывода, которой под силу вывести длительность интервала времени, принадлежность момента времени интервалу, преобразовать значение момента времени с учетом временной зоны.
Что нельзя сделать в этой машине вывода: выявить под-интервалы; выявить точки внутри интервала, явно не определенные в конкретной временной структуре; нет понятия «бесконечно давно», или «в бесконечном будущем».
Однако, экземпляры классов из OWL-time могут быть только значениями свойств обычных OWL классов, но не участвуют в обычном выводе, который предоставляется машинами вывода для OWL-онтологий. Таким образом, они выпадают из логического контекста онтологии.
Итак, суммируем: OWL-time подходит как средство представления конкретных дат на оси времени в виде, пригодном для вывода отношений между этими датами.
Теперь представим, что онтология хранится в некотором rdfstore. Действительно, применить стандартные системы управления версиями вроде cvs не удастся без дополнительных усилий. Но, оказывается, есть средства работы с временем/датой с в rdf store. Если хранилище организовано на базе реляционной СУБД, то хорошо известный язык TSQL2 (Temporal SQL), который отчасти поддерживается в Oracle 10g, дает возможность прямых запросов о времени жизни конкретной записи (в нашем случае, rdf-трипла), и хотя бы таким способом обработать ситуации с временной компонентой.
Как видим, создание онтологий, в которых структура времени участвует в выводе утверждений об истинности некоторого факта в некий момент времени, уже является вызовом действительности.
Попыток создать (хотя бы на бумаге) язык онтологий, в котором будут присутствовать элементы временной логики (те же конструкции «раньше\позже») было уже несколько. Основная проблема возникает в поддержке такого языка машиной вывода.
Пожалуй, первой попыткой реализовать OWL с метрическим временем является язык OWL-MeT (owl-met), который снабжается машиной вывода на основе Pellet, для проверки выполнимости утверждений с временными контекстами.
Даже при тех ограничениях, которые накладывают на OWL-MeT требования разрешимости, язык позволяет определять овремененные концепты.
Например, если мы знаем об объекте, что:
Сейчас человек — студент университета;
Студентом ему быть несколько моментов времени (лет);
Непосредственно перед поступлением он был абитуриентом;
Закончив университет, он станет выпускником пожизненно,
то в OWL-MeT «Студент» будет определяться так (нотация упрощена, чтобы убрать несущественные детали):
<TClass ID=”Абитуриент”/>
<TClass ID=”Выпускник”/>
<TClass ID=”Студент”>
<equivalentClass>
<intersectionOf>
<TRestriction>
<somepast resource=”#Абитуриент”>
</TRestriction>
<TRestriction>
<allfuture>
<TClass>
<unionOf>
<TClass about=”#Студент”/>
<TClass about=”#Выпускник”/>
</unionOf>
</TClass>
</allfuture>
</TRestriction>
</intersectionOf>
</equivalentClass>
</TClass>
(больше примеров на синтаксис см. OWL-MeT-examples)
Соответственно, все экземпляры абитуриентов, которые потом побыли студентами и стали выпускниками составят модель для такого концепта.
Возможно, следуя в этом направлении (пополнения OWL разными логиками, в т.ч. логиками для рассуждений о пространстве), мы, наконец, придем к желанным 4D онтологиям. Это – дело уже недалекого будущего!
Популярность: 65%






