Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспектирование-2,6-интерфейс пользователя.docx
Скачиваний:
13
Добавлен:
02.05.2015
Размер:
233.8 Кб
Скачать

База знаний

Положение в области баз знаний таково, что следует говорить о наступлении периода создания промышленных образцов подобных систем. Эти системы реализуются либо чисто программно, либо программно-ап­паратными средствами, получившими название машин баз зна­ний. В стандартный набор процедур, образующих базу знаний, входят процедуры ввода и кодировки информации, процедуры проверки введенной информации на непротиворечивость с ранее записанной информацией, процедуры корректировки знаний, проце­дуры пополнения знаний, подобные тем, которые мы упоминали в связи с описанием уровней понимания, процедуры реализации вопросно-ответного отношения. В ближайшем будущем к этим процедурам будут добавлены средства для диалогового взаимодействия инженера по знаниям с экспертом – специалистом в не­которой проблемной области, с помощью которых станет возможным «добывать знания» у эксперта. Способы реализации перечис­ленных процедур описаны в [36-39].

Представление знаний требует разработки специальных язы­ковых средств, ориентированных на описание знаний и манипули­рование ими. Обычные языки программирования, ориентирован­ные на запись и реализацию процедур, плохо подходят для баз знаний. Первые попытки строить языки, специально предназна­ченные для баз знаний (ФРЛ, КРЛ, ОПС-5 и др.) выявили ряд трудностей, которые стоят на пути созданий эффективных средств для работы со знаниями. Так одной из причин неудач первого эта­па японского проекта ЭВМ пятого поколения была плохая совместимость языков представления знаний в базах знаний с языками логического программирования, используемыми в решателях.

В настоящее время можно считать, что спор о достоинствах и недостатках языков декларативного и процедурного типов, осно­ванных на фреймах н продукциях, разрешился полюбовно. Ста­ло ясно, что хорошие языки представления знаний и манипулиро­вания ими должны иметь достаточно богатые возможности как для декларативных описаний, так и дли описания процедур. При­мером такого смешанного языка может служить фреймовый язык, у которого в качестве значений слотов могут выступать отдельные продукции или имена присоединенных процедур. Именно по этому пути идут сейчас все разработчики ЭВМ новых поколении.

Решатель

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

Работы по реализации подобных процедур были начаты в СССР довольно давно, раньше, чем в зарубежных странах. Пер­вые системы такого типа ПРИЗ и СПОРА еще не были достаточ­но эффективными, но заложили основу теории и практики построе­ния подобных систем [40]. В последнее время было показано, что в качестве языка, на котором функционирует решатель, можно использовать языки логического программирования, в частно­сти язык ПРОЛОГ. Переход к языкам такого типа резко повышает эффективность процедур автоматического синтеза программ в решателях [41]. Можно предполагать, 'что подобный подход даст возможность строить вполне приемлемые с практической точки зрения решатели в ЭВМ новых поколений.