DLV - DLV
В DLV (DАтаLog с помощью Disjunction, где логическая дизъюнкция символ V используется) система дизъюнктивная логическое программирование система, реализующая семантика стабильной модели под Программирование набора ответов парадигма. Это расширяет лог данных язык, позволяющий использовать OR в правилах.
Вкратце, дизъюнктивный Datalog - это вариант Datalog, в котором дизъюнкция может появляться в заголовках правил; расширенные версии также допускают отрицание в телах, которое может обрабатываться в соответствии с семантикой отрицания в программировании дизъюнктивной логики.
Дизъюнктивное правило Datalog - это предложение формы:
Дизъюнктивное ограничение Datalog - это предложение формы:
Одна из самых популярных немонотонных логик - это логика дефолта Рейтера [1980]. Эта логика была разработана как формализм представления знаний и изначально не задумывался как язык запросов к базе данных. Однако была определена подходящая настройка, в которой логика по умолчанию может использоваться в качестве языка запросов для реляционных баз данных (Default Query Language, DQL).
С практической точки зрения, в контексте дедуктивных баз данных дизъюнктивный Datalog кажется более подходящим расширением DATALOG ~, чем DQL. Благодаря простому синтаксису, DATALOGv, ~ поддается автоматическому анализу и оптимизации программ.
Эти результаты представляют не только теоретический интерес; проблемы, актуальные на практике, такие как вычисление оптимального значения маршрута в задаче коммивояжера и вычисления собственных векторов, могут быть обработаны в дизъюнктивном журнале данных, но не в журнале данных с отрицанием (если только не разрушается полиномиальная иерархия).[1]
Пример ввода: журнал данных с отрицанием как сбой
курильщик(Джон).курильщик(Джек).бегун(Джилл).бегун(Джон).здоровый(Икс) :- бегун(Икс), \+ курильщик(Икс).
Перевод в DLV: заполните форму Кларка и претензию
курильщик (X) <- X = john.smoker (X) <- X = jack.X = john v X = jack <- smoker (X) .jogger (X) <- X = jill.jogger (X) <- X = john. X = jill v X = john <- jogger (X) .healthy (X) v smoker (X) <- jogger (X) .jogger (X) <- здоровый (X) <- здоровый (X) и курильщик (X).
Пример выполнения: одиночная стабильная модель
? - здоровый (X) .X = jill; Нет
Рекомендации
внешняя ссылка
Этот язык программирования -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |