Теперь, уже с формальной стороны, рассмотрим основную терминологию. Поскольку базы знаний — относительно новый предмет, то некоторые из используемых здесь определений еще не устоялись. Это несколько затрудняет обсуждение излагаемого материала. Например, некоторые авторы пользуются термином основанные на знаниях системы, тогда как другие говорят о системах управления базами знаний [5]. Оба термина, обозначающие одно и то же, широко распространены.
Вывод – процесс получения заключения из некоторых предложений.
Система управления базами знаний - это система, обладающая всеми стандартными возможностями систем управления базами данных, т.е. хранения данных и манипуляций ими, а также средствами создания правил вывода, их хранения и применения к хранимым таблицам данных.
Основанная на знаниях система – это альтернативный термин для системы управления базой знаний.
Система баз знаний (СБЗ). - компьютерная система, имеющая следующие составляющие:
o База данных, содержащая основные факты;
o База данных, содержащая правила, которые позволяют делать выводы из базы данных фактов;
o Программное обеспечение, называемое системой управления базой знаний (СУБЗ), которое поддерживает обычные функции СУБД, а также управление процессом вывода в базе данных правил, оперирующих базой данных фактов.
Система управления базой знаний (СУБЗ) это системное программное обеспечение, которое поддерживает обычные функции СУБД, а также осуществляет управление процессом вывода правил в базе данных, оперирующей базой данных фактов.
Общий успех систем управления базами данных в сочетании с информационными потребностями менеджмента и исследованиями искусственного интеллекта привел к росту заинтересованности в превращении систем управления базами данных в системы управления базами знаний. Это переход к более высокому уровню абстракции информации. Поясним данное обстоятельство на конкретном примере. Пусть в базе данных находится информация
Собрание собрание_38 проводится в Таганроге.
Здесь имеется в виду, что для конкретного вида мероприятия (в данном случае – собрание, а не заседание и т.д.), и его условного обозначения (собрание_38 а не заседание_01) определено место проведения (Таганрог).
Это простой факт. Очевидно, что соответствующую этому факту информацию можно выразить в следующей строке реляционной таблицы:
собрание (собрание_38, Таганрог)
С другой стороны, информация, подобная следующей
Собрание собрание_38 плодотворно
не является простым фактом и представляет собой информацию более высокого уровня. Значение этого факта отражено в классификации, предложенной Уидерхолдом (Wiederhold, 1984) [1]:
o Структурное знание — это знание о зависимостях между данными и ограничениями на них. Например, «перевод студента на следующий курс зависит от того, были ли им сданы зачеты и экзамены в предыдущую сессию»;
o Общее процедурное знание — это знание, которое можно описать только процедурой. Например, «совпадение заказанного количества товара с полученным количеством товара позволяет санкционировать оплату»;
o Прикладное знание — знание, которое определяется правилами и соглашениями, относящимися к конкретной предметной области, например, «определению наиболее дешевого плана двухнедельного отдыха на море»;
o Знание предприятия — знание, помогающее предприятию принимать решения. Например, для фирмы, производящей компьютеры, анализ информации о ценах, прибылях, продажах и конкурирующих товарах может помочь в принятии решений о стратегии маркетинга.
Знание, существующее в базах данных состоит из фактов и элементов, хранящихся в реляционных таблицах. Оно называется экстенсивным знанием. Знание, которое определяется независимо от наполнения базы данных фактами, обычно при помощи логических механизмов, называется интенсивным знанием. Большинство из разрабатываемых баз знаний хранят интенсивное знание в виде логических правил.
Логическое программирование - программирование, основанное на использовании механизма доказательства теорем в логике, позволяющее выяснить, является ли противоречивым некоторое множество логических формул. При этом программа рассматривается как набор логических формул, описывающих предметную область, совместно с теоремой, которая должна быть доказана. Логическое программирование избавляет разработчика от необходимости определения точной последовательности шагов выполнения вычислений. Далее приведем основные термины Пролога [2].
Программа на языке Пролог - набор утверждений, составляющих базу фактов и базу правил, к которым допустимо обращение с запросами, касающимися их содержимого. Запросы называются также целевыми утверждения.
Терм языка Пролог - это либо константа, либо переменная, либо структура. Константами являются атомы и числа.
Константы используются для обозначения (именования) конкретных объектов предметной области и конкретных отношений между ними.
Атом языка Пролог - это
• последовательность букв, цифр и знака "подчеркивание", обязательно начинающаяся со строчной буквы;
• последовательности специальных знаков ":-", "?-", "=", ">" и других.
Переменная языка Пролог - последовательность букв, цифр и знака "подчеркивание", обязательно начинающаяся с прописной буквы.
База фактов в языке Пролог - последовательность утверждений, описывающих факты предметной области в виде структур, функторами которых являются атомы - имена отношений (предикатные буквы), а компонентами - предметные константы.
Каждый факт представляет собой элементарную формулу (предикат) исчисления предикатов первого порядка и является дизъюнктом Хорна, состоящим из одного (положительного) литерала. При описании фактов переменные не используются.
|