Представление знаний в интеллектуальных системах

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

?са выражение.

Предикат вопроса представляет собой цель. Здесь это начальник(Х, анри).

Цель достигнута, если в БД удалось найти факт или правило, который (которое) удовлетворяет этому предикату. Чтобы удовлетворить приведённому только что простому предикату, нужно иметь факт вида начальник(_, анри), т.е. факт, содержащий:

такое же имя предиката (начальник),

столько же аргументов (два),

те же константы на тех же местах (анри на втором месте)

При выполнении этих условий факт соответствует (следовательно, удовлетворяет) предикату. В нашем примере годится факт начальник(эмиль, анри).

Переменная Х принимает значение той константы, которая стоит на соответствующем месте в найденном факте. Хотя объяснять несколько долго, но это именно то, что подсказывает интуиция.

Ещё один способ выразить семантику рассмотренного выше вопроса состоит в формулировании следующего запроса: Можно ли сопоставить (присвоить, назначить) переменной Х такой терм, чтобы результатом была формула из БД? Утвердительный ответ обеспечивает назначение Х=эмиль. Это лишь одно из возможных назначений-ответов. Си-Пролог в интерактивном режиме даёт все ответы, если после каждого ставить точку с запятой:

? - начальник(Х, анри).

- - > Х=эмиль;

- - > Х=жозеф;

- - > нет

Нет означает исчерпание возможностей.

Если вопрос ? - начальник(Х, анри). считать обращением к процедуре, то константа анри будет входом, а переменная Х - результатом. Это взгляд пользователя, но не Пролога. В выражениях, содержащихся в БД, различие между аргументами не производится. Лишь в вопросах переменные заказывают значения для ответов, например:

? - начальник(жозеф, Y).

- - > Y=анри;

- - > нет

? - начальник(Х, Y).

- - > Х=эмиль, Y=анри;

- - > Х=жозеф, Y=анри;

- - > нет

Переменные можно также использовать в фактах: начальник(Х, адемар). Это выражение является записью на Прологе фразы Адемар - большой начальник и логической формулы . Цель вида начальник(_, адемар) достигается в том случае, если в БД содержится факт начальник(Х, адемар).

При использовании переменной в конъюнкции переменная устанавливает связь между сомножителями конъюнкции. Разумеется, все вхождения переменной принимают одно и то же значение. Ответ на вопрос ? - начальник(Х, анри), библиотекарь(Х). (Над каким библиотекарем Анри начальник?) получается путём последовательного удовлетворения двух частей (достижения двух частичных целей, подцелей) конъюнкции. Первая часть начальник(Х, анри), удовлетворяется фактом начальник(эмиль, анри). реализующим присваивание (назначение) Х=эмиль. Если бы первая подцель не достигалась, то ответ на весь вопрос был бы - нет. Присваивание значения переменной Х преобразует вторую подцель библиотекарь(Х) в библиотекарь(эмиль) которая достигается. Полный ответ

- - > Х=эмиль.

Для получения второго ответа система сперва ищет второе достижение второй подцели. Это всегда библиотекарь(эмиль). при дальнейшем пробегании по БД в предписанном порядке (Дублирование выражений запрещено). Подцель теперь не достигается вновь. Система возвращается к предыдущей подцели начальник(Х, анри). т.е. осуществляет возврат. Подцель вновь достигается при использовании факта начальник(жозеф, анри). Отсюда получаем присваивание Х=жозеф и т.д. В рассмотренном нами примере только один ответ, ибо недостижима цель библиотекарь(жозеф), средствами (фактами) БД библио.

 

19.Концептуальные графы. Пример и терминология

 

Концептуальные графы содержат прямоугольники для представления аргументов и круги для имен предикатов. Круг соединяется стрелкой с прямоугольником, если они представляют соответственно имя и аргумент одного и того же предиката.

Предикаты могут иметь несколько аргументов. Следовательно, круги могут иметь несколько входящих и/или выходящих стрелок. Большинство предикатов, используемых для представления знаний, обладает двумя аргументами (бинарные предикаты). Тогда круги соединены с прямоугольниками двумя стрелками: входящей и выходящей.

Снова обратимся к примеру. На рисунке изображен концептуальный граф предиката Посылка (Жак_2, Мари_4, Книга_22), формализующий фразу Жак посылает книгу Мари.

 

 

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

Отправитель( Посылка_8, Жак_2)

Получатель(Посылка_8, Мари_4)

Объект(Посылка_8, Книга_22)

Элем(Посылка_8, посылки).

 

 

При графическом представлении бинарных предикатов круги иногда опускают, а имена предикатов указывают на стрелках. Напомним, что в одной из прошлых лекций было описано общее правило преобразования m-арного предиката (m2) вида

Предикатное_имя(знчение_1, знчение_2, …, значение_ m) в произведение m бинарных предикатов

Функция_j(предикатное_имя, значение_j).

Свяжем с каждым бинарным оператором концептуальный граф, как показано на следующем рисунке.

 

Стрелки предикатов направлены от первого аргумента предиката (предикатное имя) к имени предиката (Функция_j) и от имени предиката ко второму аргументу (значение_j). В записи, называемой по-английски slot-assertion, имя предиката соответствует "имени слота", а значение - "значению слота". Вообще в концептуальных графах "значение слота" соответствует некоторому концепту.

Графическое представление m-арных предикатов основано на следующем соглашении. С