Для всех У студент не получает У
Причем выражение «для всех» понимается как «для всех индивидуумов из какой либо области, выбранной для интерпретации предложений». При интерпретации S1 и S2 по крайней мере один индивидуум У будет связан с именем «стипендия» и поэтому непосредственным следствием S1 является более конкретное предложение:
S1`: ù получает (студент, стипендию)
Аналогично рассматривается S2 на области интерпретации S1 и S2 и, выбирая для Х, индивидуум с именем «студент», получаем более конкретное предложение:
S2`: получает (студент, стипендию) сдает (успешно, Z, студент)
Теперь имеем два предложения S1` и S2`, которые удовлетворяют условию применимости правила резолюции, а именно наличию одинаковых предикатов в левой части импликации и в отрицании. Поэтому резольвентой S1` и S2` будет:
S: ù сдает (успешно, Z, студент)
Предикат
получает (студент, стипендию)
называется общим примером родительских предикатов
получает (Х, стипендию)
получает (студент, У)
и получен с помощью унификатора вида
Q = { Х:= студент, У:= стипендия}
Унификаторы и примеры унификации
Унификатором называется множество присваиваний вида
Q = {X1:= t1, ..., Xn:= tn}
где Хi - переменная, а ti – терм, применение которых к двум выражениям дает одинаково общие примеры.
На практике унификаторы определяют сравнивая по очереди соответствующие аргументы предикатов и выписывая те присваивания термов переменным, которые сделали бы эти аргументы одинаковыми.
Рассмотрим ряд примеров унификации (таблица 4.1):
Таблица 4.1
· Примеры унификации
Родительские предложения | Унификатор | Общий пример |
p(5), p(5) | Q- пустое множество (не заменяется ни одна переменная) | p(5) |
p (x), p(5) | Q = {x:=5} | p(x)Q = p(5)Q = p(5) |
p(x), p(y) | Q = {x:=y} | p(y) |
p(x, y), p(5, x) | Q = {x:=5, y=x} = = {x:=5, y:=5} | p(x,y)Q = p(5,x)Q = p(5,5) |
ù p(5, x) p(x, y) ← q(x) | Q = {x:=5, y:=5} | p(5,5) резольвента: s: ù q(x)Q = ù q(s) |
Решение задач и извлечение ответа.
Решение задачи с использованием логического программирования разбивается на 3 этапа:
На первом этапе необходимо сформулировать наши знания и допущения о предметной области в виде множества ППФ
На втором этапе нужно выразить конкретную задачу, поставленную на предметной области, как запрос об одном или нескольких отношениях. Обычно запрос ставится как исходное отрицание.
Составление допущений и исходного запроса завершается работа программиста, цель которой - сформулировать задачу.
Третий шаг выполняется компьютером, который пытается решить задачу, строя доказательство от противного. Он строит вывод сверху вниз, начиная с исходного отрицания, и порождает последовательность отрицаний
D1, D2, ... , D
Если может быть построен вывод, заканчивающийся отрицанием
Dn = (противоречие),
то этот вывод, называемый успешным выводом, сразу дает решение поставленной задачи.
Семантические сети
Семантической сетью является структура данных, имеющая определенный смысл как сеть. Стандартного определения семантической сети не существует, но обычно под ней подразумевают следующее:
Семантическая сеть - это система знаний, имеющая определенный смысл в виде целостного образа сети, узлы которой соответствуют понятиям и объектам, а дуги - отношениям между объектами.
Следовательно, всевозможные сети можно рассматривать как сети, входящие в состав семантической сети. В том числе к ним могут быть отнесены и сетевые структуры моделей БД.
Сама по себе семантическая сеть является моделью памяти и не раскрывает, каким образом осуществляется представления знаний. Поэтому в контексте знакомства с СОЗ семантические сети должны рассматриваться как метод представления знаний с возможностями структурирования этих знаний, процедурами их использования и механизмом вывода.
Описание иерархической структуры понятий
и диаграмма представления
В иерархической структуре понятий существуют отношения, по крайней мере, двух типов:
отношение включения или совпадения (IS - A);
отношение «целое – часть» (PART - OF).
Например, в предложении
«человек» IS - A «млекопитающее»
основной мыслью является, что человек принадлежит к классу млекопитающих. Это означает, что имеет место отношение включения или совпадения. Для этих отношений характерным является то, что экземпляры понятий нижнего уровня содержат все атрибуты понятий верхнего уровня. Это свойство называется наследованием атрибутов между уровнями иерархии IS - A..
Отношение «целое – часть» можно иллюстрировать предложением
«нос» PART - OF «тела»,
которое характеризует то, что экземпляры понятия «нос» являются частью любого экземпляра понятия «тело».
Наиболее часто используется графическое представление семантических сетей в виде диаграммы. Так предложение
«все ласточки – птицы»
можно представить графом, содержащим две вершины соответствующие понятиям и дугу, указывающую отношение между ними (рис. 5.1).
Рис. 5.1. Семантическая сеть - 1
Если ласточка имеет конкретное имя, например, Ласта, то семантическая сеть может быть расширенна (рис. 5.2).
Рис. 5.2. Семантическая сеть - 2
Наряду с тем, что с помощью данной сети описаны два факта
«Ласта – ласточка»
«ласточка – птица»
из нее можно вынести, используя отношение наследования, факт
«Ласта – птица»
Этот факт показывает, что способ представления семантической сетью позволяет легко делать выводы благодаря иерархии наследования.
Семантическими сетями можно также представлять знания, касающиеся атрибутов объекта. Например, факт «Птицы имеют крылья» можно отобразить в виде рис. 5.3.
|
Рис. 5.3. Семантическая сеть - 3
Это означает, что, используя отношения «IS – A» и «PART – OF» можно вывести факт «Ласта имеет крылья».
Вершины в семантической сети обычно показывают объект проблемной области, концепт, ситуацию и т. п., а дуги - это отношения между ними. При расширении семантической сети в ней возникают дополнительные отношения. Например, если рассматриваемую сеть дополнить фактами «Ласта владеет гнездом» и «Ласта владеет гнездом с весны по осень», то получим семантическую сеть, изображенную на рис. 5.4. Здесь гнездо i – это конкретное гнездо, которым владеет Ласта, а для вершины ситуации (владеет j) определено несколько связей. Такая вершина называется надежной рамкой и определяет различные аргументы предиката ситуации.
Рис. 5.4. Семантическая сеть - 4
Семантическая сеть как Пролог - программа
Важнейшей концепцией формализма семантических сетей является иерархия понятий и связанное с ней наследование атрибутов между уровнями иерархии IS - A.
Если семантическую сеть рассматривать как описание отношений, которые поддерживаются между понятиями, то ее непосредственно, можно реализовать на языке Пролог.
|
Рис. 5.5. Семантическая сеть - 5
Эта сеть может быть реализована в Пролог - программе
является (ласточка, птица)
является (Ласта, ласточка)
имеет (крылья, птица)