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

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

Функции

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: