Ув. читатели, как вы уже наверняка заметили в хедере моего блога появилась флеш-панель с выводом тем последних дискуссий форума Semantic Web User Group. Это сделано для того, чтобы вы всегда могли получить самую свежую информацию о текущих дискуссиях на форуме.
Итак, развиваем семантические технологии вместе...
Нижеследующий материал в основном базируется на размышлениях Павла Клинова и пользователя Root Wheelkens.
1) Про интеграцию данных на основе OWL
(П. Клинов): Интеграция данных - это, наверное, одно из наиболее часто упоминаемых приложений не только OWL, но вообще семант. технологий. На мой взгляд для этого лучше подходят менее выразительные языки. В частности, при стандартизации OWL 2 для этой цели был сформулирован отдельный профиль - OWL 2 QL. Он основан на логике DL Lite (которая намного беднее той, что стоит за OWL 2 DL и, тем более, FOL), но зато у нее есть ключевое свойство: запросы могут (относительно) легко переписываться с учетом онтологии, чтобы результаты могли включать неявно заданные факты. При этом есть возможности вывода, которых нет, например в RDFS + есть гарантии хорошей вычислительной сложности. Подобное переписываение (query rewriting) позволяет, в частности, скрыть разнородные источники данных за общей онтологией (схемой), описав в ней как их схемы должны сопоставляться друг с другом. У Карстена Лутца (Carsten Lutz) есть ряд хороших статей на эту тему. Некоторые RDF DB постепенно начинают поддерживать SPARQL с лог. выводом в рамках OWL 2 QL.
Более выразительные языки (OWL 2 EL, OWL 2 DL), *на мой взгляд*, полезнее не столько для непосредственной интеграции данных, сколько для управления терминологиями в сложных областях (медицина, химия, биоинформатика). Здесь важно, чтобы люди и приложения, работающие над общими задачи, имели возможность утвердить и придерживаться общей семантики терминов. Для этого за посление лет 15 было создано немало крупных онтологий (SNOMED, Gene Ontology, Foundational Model of Anatomy, etc.). Точное описание семантики терминов требует выразительности.
Ну и напоследок замечу, что все рады бы использовать FOL, если бы не вычислительная полуразрешимость (что для вывода фактически эквивалентно неразрешимости). А Пролог - это не FOL, а (грубо говоря) определенное его подмножество, в чем-то богаче, в чем-то беднее чем DL. В контексте семант. технологий большую распространенность получила разновидность, Datalog, которую периодически пытаются использовать.
Читать продолжение »