Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Система DLV ( D ata L og с дизъюнкцией, где используется символ логической дизъюнкции V ) представляет собой систему дизъюнктивного логического программирования , реализующую семантику стабильной модели в рамках парадигмы программирования набора ответов . Он расширяет язык журнала данных, позволяя использовать OR в правилах.

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

Дизъюнктивное правило Datalog - это предложение в форме:

Дизъюнктивное ограничение Datalog - это предложение формы:

Одна из самых популярных немонотонных логик - логика по умолчанию Рейтера [1980]. Эта логика была разработана как формализм представления знаний и изначально не задумывался как язык запросов к базе данных. Однако была определена подходящая настройка, в которой логика по умолчанию может использоваться в качестве языка запросов для реляционных баз данных (Default Query Language, DQL).

С практической точки зрения, в контексте дедуктивных баз данных дизъюнктивный Datalog кажется более подходящим расширением DATALOG ~, чем DQL. Благодаря простому синтаксису, DATALOGv, ~ поддается автоматическому анализу и оптимизации программ.

Эти результаты представляют не только теоретический интерес; проблемы, актуальные на практике, такие как вычисление оптимального значения маршрута в Задаче коммивояжера и вычисления собственных векторов, могут быть обработаны в дизъюнктивном журнале данных, но не в журнале данных с отрицанием (если только не разрушается полиномиальная иерархия). [1]

Пример ввода: журнал данных с отрицанием как сбой

курильщик ( джон ). курильщик ( домкрат ).бегун ( Джилл ). бегун ( джон ).здоровый ( X )  : -  бегун ( X ),  \ +  курильщик ( X ).

Перевод в DLV: заполните форму Кларка и претензию

курильщик (X) <- X = john.курильщик (X) <- X = домкрат.X = john v X = jack <- курильщик (X).бегунья (X) <- X = jill.бегун (X) <- X = john.X = jill v X = john <- jogger (X).здоровый (X) v курильщик (X) <- бегун (X).бегун (X) <- здоров (X)<- здоровый (X) и курильщик (X).

Пример выполнения: одиночная стабильная модель

? - здоровый (X).Х = Джилл;Нет

Ссылки [ править ]

  1. ^ Eiter Т., Готтлоб, Г. и Mannila, H. (2001): дизъюнктивный Datalog, ACM Сделки по базе данных системы 22 (3), июль 2001 [1]

Внешние ссылки [ править ]