Дедуктивный язык
![]() | Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Октябрь 2019 г. ) |
Дедуктивный язык — это язык компьютерного программирования , в котором программа представляет собой набор предикатов («фактов») и правил, которые их связывают. Такой язык используется для создания систем, основанных на знаниях , или экспертных систем , которые могут выводить ответы на наборы задач, применяя правила к предоставленным им фактам. Примером дедуктивного языка является Пролог или его родственник запросов к базе данных Datalog .
История
[ редактировать ]Как следует из названия, дедуктивные языки основаны на принципах дедуктивного рассуждения; делать выводы на основе имеющихся знаний. Первая рекомендация использовать клаузальную форму логики для представления компьютерных программ была сделана Корделлом Грином (1969) в Стэнфордском исследовательском институте (ныне SRI International ). Эту идею также можно связать с битвой между процедурным и декларативным представлением информации в ранних системах искусственного интеллекта. Дедуктивные языки и их использование в логическом программировании также можно отнести к тому же году, когда Фостер и Элкок представили Absys , первый язык дедуктивного/логического программирования. представил первую систему Пролога Вскоре после этого в 1972 году Кольмерауэр в сотрудничестве с Робертом Ковальски .
Компоненты
[ редактировать ]Компонентами дедуктивного языка являются система формальной логики и база знаний , к которой эта логика применяется.
Формальная логика
[ редактировать ]Формальная логика — это изучение умозаключений относительно формального содержания. Отличительной особенностью формальной и неформальной логики является то, что в первом случае логическое правило, применяемое к содержанию, не является специфичным для конкретной ситуации. Законы действуют независимо от изменения контекста. Хотя в приведенном ниже примере описана логика первого порядка для демонстрации использования дедуктивного языка, формальная система не обязательна, а использование конкретной системы определяется в языковых правилах или грамматике.
В качестве входных данных предикат принимает любой объект(ы) в интересующей области и выводит одно из двух логических значений: true или false. Например, рассмотрим предложения «Барак Обама — 44-й президент» и «Если сегодня пойдет дождь, я принесу зонтик». Первое — это утверждение с соответствующим значением истинности. Второе — это условное утверждение, зависящее от значения какого-либо другого утверждения. Любое из этих предложений можно разбить на предикаты, которые можно сравнивать и формировать базу знаний дедуктивного языка.
Более того, такие переменные, как «Барак Обама» или «президент», можно оценить количественно. Например, возьмите «Барак Обама» в качестве переменной «x». В предложении «Существует такой символ «х», что если «х» — президент, то «х» — главнокомандующий». Это пример квантора существования в логике первого порядка. Возьмите «президент» за переменную «y». В предложении «Для каждого «у» «у» является лидером своей нации». Это пример квантора универсальности.
База знаний
[ редактировать ]Коллекция «фактов» или предикатов и переменных формирует базу знаний дедуктивного языка. В зависимости от языка порядок объявления этих предикатов в базе знаний может влиять или не влиять на результат применения логических правил. При применении определенных «правил» или выводов в базу знаний могут быть добавлены новые предикаты. По мере того как новые факты устанавливаются или добавляются, они формируют основу для новых выводов. Являясь ядром ранних экспертных систем, систем искусственного интеллекта, которые могли принимать решения, как человек-эксперт, базы знаний предоставляли больше информации, чем базы данных. Они содержали структурированные данные с классами, подклассами и экземплярами.
Пролог
[ редактировать ]Пролог — это пример дедуктивного декларативного языка, который применяет логику первого порядка к базе знаний. Чтобы запустить программу на Прологе, создается запрос, и на основе механизма вывода и конкретных фактов из базы знаний возвращается результат. Результатом может быть что угодно, от нового отношения или предиката до литерала, такого как логическое значение (истина/ложь), в зависимости от механизма и системы типов .
Ссылки
[ редактировать ]- Дж. М. Фостер и Э. В. Элкок. ABSYS 1: Инкрементальный компилятор утверждений: введение, Machine Intelligence 4, Edinburgh U Press, 1969, стр. 423–429.
- Корделл Грин. Применение доказательства теорем к решению задач IJCAI 1969.
- Корделл Грин, выпускник Центра искусственного интеллекта SRI International , получено 09.12.14.
- Роберт Ковальски, Дональд и Кюнер, «Линейное разрешение с функцией выбора искусственного интеллекта», Vol. 2, 1971, стр. 227–60.
- Роберт Ковальски Логика предикатов как язык программирования. Памятка 70, Факультет искусственного интеллекта, Эдинбургский университет. 1973. Также в П.