Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Процедурные знания





Помимо эвристической, CLIPS поддерживает и процедурную парадигму пред­ставления знаний, используемую в большинстве языков программирования. Конструкторы deffunction и defgeneric позволяют пользователю определять новые выполняемые конструкции непосредственно в среде CLIPS, возвра­щающие некоторые значения или выполняющие какие-то полезные дейст­вия. Вызов этих новых функций ничем не отличается от вызова встроенных функций CLIPS. Обработчики сообщений позволяют пользователю опреде­лять поведение объектов, с помощью задания той или иной реакции на со­общения. Функции, родовые функции и обработчики сообщений представ­ляют собой отрезки кода, заданного пользователем и выполняемого, в случае необходимости, интерпретатором CLIPS. Кроме того, механизм модулей (конструктор defmodule, см. гл. 12) позволяет разбивать базу знаний CLIPS на отдельные смысловые части.

Функции

Конструктор deffunction позволяет создавать новые функции непосредст­венно в CLIPS. Более ранние версии CLIPS позволяли использовать только внешние пользовательские функции, написанные на каком-нибудь языке программирования (чаще всего Си) и присоединенные к среде CLIPS.

Тело функции, определенной с помощью конструктора deffunction, пред­ставляет собой последовательность действий, подобную используемой в правой части правил. Заданные пользователем действия выполняются при вызове соответствующей функции. Значение, возвращаемое функцией, яв­ляется результатом вычисления последнего действия. Подробно тема функ­ций освящена в гл. 7.

Родовые функции

Родовые функции, так же как и обычные функции, могут быть созданы не­посредственно в CLIPS. Способ вызова таких функций также ничем не от­личается от способа вызова обычных функций. Однако родовые функции гораздо мощнее обычных, т. к. они способны перегружаться. Благодаря механизму перегрузки родовая функция может выполнять различные действия в зависимости от типа и числа аргументов. Обычно родовая функция состо­ит из нескольких компонентов, называемых методами. Каждый метод со­держит различный набор аргументов родовой функции.

Например, можно перегрузить системную функцию + (арифметическое сложение) для выполнения операции конкатенации двух строк. Однако по­сле этого функция + все еще сможет выполнять арифметическое сложение. В данном примере у родовой функции + существует два метода: первый ме­тод явно определен пользователем для конкатенации двух строк, второй представляет собой неявный вызов стандартной функции, выполняющей арифметическое сложение. Значение, возвращенное родовой функцией, яв­ляется значением, полученным в результате вычисления последнего дейст­вия в применяемом методе.

Обработчики сообщений

Как уже упоминалось, объект CLIPS состоит из двух основных частей — свойств объекта и его поведения. Свойства объектов определяются в терми­нах слотов. Поведение объекта обуславливается обработчиками сообщений, которые являются присоединенной к классу последовательностью действий с заданным именем. Любые манипуляции с объектом можно выполнить только с помощью сообщений. Например, в случае уже упоминавшегося объекта Rolls-Royce, являющегося экземпляром пользовательского класса car, для того чтобы запустить двигатель, пользователь должен послать объ­екту сообщение start-engine с помощью функции send. To, каким образом объект Rolls-Royce прореагирует на это сообщение, зависит от определения обработчика сообщения start-engine, связанного с классом car. Назначение обработчиков сообщений в принципе эквивалентно назначению любой функции — возвращение результата или выполнение неких полезных действий. Более подробно тема объектов раскрывается в гл. 11.

Модули

Модули позволяют разбивать базу знаний на отдельные смысловые части. Каждый вызываемый конструктор помещается в определенный модуль. Программист имеет возможность контролировать возможности доступа и видимость конструкторов в тех или иных модулях. Кроме того, для модулей можно устанавливать видимость определенных фактов или объектов. Моду­ли можно использовать для контроля или изменения потока выполнения правил. Подробное описание модулей приведено в гл. 12.







Дата добавления: 2015-08-30; просмотров: 943. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

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

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

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Studopedia.info - Студопедия - 2014-2024 год . (0.007 сек.) русская версия | украинская версия