Дедуктивный язык - Википедия - Deductive language

А дедуктивный язык это компьютер язык программирования в котором программа представляет собой набор предикатов («фактов») и правил, которые их связывают. Такой язык используется для создания системы, основанные на знаниях или же экспертные системы который может выводить ответы на наборы задач, применяя правила к предоставленным им фактам. Примером дедуктивного языка является Пролог, или его кузен по запросу к базе данных, Лог данных.

История

Как следует из названия, дедуктивные языки основаны на принципах дедуктивного мышления; делать выводы на основе текущих знаний. Первая рекомендация использовать клаузальную форму логики для представления компьютерных программ была сделана Корделл Грин (1969) в Стэнфордском исследовательском институте (ныне SRI International ). Эта идея также может быть связана с битвой между процедурным и декларативным представлением информации в ранних системах искусственного интеллекта. Дедуктивные языки и их использование в логическое программирование также можно датировать тем же годом, когда Фостер и Элкок представили Абсис, первый дедуктивный / логический язык программирования. Вскоре после этого в 1972 году была представлена ​​первая система Prolog. Colmerauer через сотрудничество с Роберт Ковальски.

Составные части

Компоненты дедуктивного языка - это система формальная логика и база знаний на котором применяется логика.

Формальная логика

Формальная логика - это изучение умозаключений относительно формального содержания. Отличительная черта между формальной и неформальной логикой заключается в том, что в первом случае логическое правило, применяемое к содержанию, не зависит от конкретной ситуации. Законы остаются в силе независимо от изменения контекста. Несмотря на то что логика первого порядка В приведенном ниже примере описывается использование дедуктивного языка, формальная система не обязательна, а использование конкретной системы определяется правилами языка или грамматикой.

В качестве входных данных предикат принимает любой объект (ы) в интересующей области и выводит одно из двух логических значений: истина или ложь. Например, рассмотрим предложения «Барак Обама - 44-й президент» и «Если сегодня пойдет дождь, я принесу зонтик». Первый - это утверждение со связанным значением истинности. Второй - это условный оператор, основанный на значении другого оператора. Любое из этих предложений можно разбить на предикаты, которые можно сравнить и сформировать базу знаний дедуктивного языка.

Более того, такие переменные, как «Барак Обама» или «президент», можно выразить количественно. Например, возьмите «Барак Обама» в качестве переменной «x». В предложении «существует такой знак« x », что если« x »- президент, то« x »- главнокомандующий». Это пример квантора существования в логике первого порядка. Возьмем «президент» в качестве переменной «у». В предложении «Для каждого« y »,« y »является лидером своей нации». Это пример универсального квантора.

База знаний

Набор «фактов» или предикатов и переменных формирует базу знаний дедуктивного языка. В зависимости от языка порядок объявления этих предикатов в базе знаний может влиять или не влиять на результат применения логических правил. После применения определенных «правил» или выводов в базу знаний могут быть добавлены новые предикаты. По мере установления или добавления новых фактов они формируют основу для новых выводов. Базы знаний, являющиеся ядром ранних экспертных систем, систем искусственного интеллекта, которые могут принимать решения как опытный человек, давали больше информации, чем базы данных. Они содержали структурированные данные с классами, подклассами и экземплярами.

Пролог

Пролог является примером дедуктивного декларативного языка, который применяет логику первого порядка к базе знаний. Для запуска программы на Prolog создается запрос, основанный на Механизм логического вывода и конкретные факты в базе знаний, возвращается результат. Результатом может быть что угодно, от нового отношения или предиката до литерала, такого как логическое значение (истина / ложь), в зависимости от движка и система типов.

Рекомендации

Категория: Компьютерное программированиеБазы данных