CLIPS предоставляет богатый набор функций, предназначенных для работы с классами, объектами, слотами, обработчиками сообщений. Описание этих функций приведено в табл. 15.14.
Таблица 15.14. Объектно-ориентированные функции
| Функция | Описание |
| get-class-list | Получение списка существующих классов |
| defclass-module | Поиск модуля, в котором определен класс |
| class-existp | Определяет, существует ли заданный класс |
| superclassp | Определяет, является ли первый класс суперклассом второго |
| subclassp | Определяет, является ли первый класс подклассом второго |
| slot-existp | Проверяет существование слота |
| slot-writablep | Проверяет, доступен ли слот записи |
| slot-initablep | Проверяет, доступен ли слот инициализации |
| slot-publicp | Проверяет, является ли слот видимым |
| slot-direct-accessp | Проверяет, возможно ли прямое обращение к слоту |
| message-handler-existp | Проверяет существование обработчика сообщения |
| class-abstractp | Проверяет, является ли класс абстрактным |
| class-reactivep | Проверяет, является ли класс активным |
| class-superclasses | Получение списка суперклассов |
| сlass-subclasses | Получение списка подклассов |
| class-slots | Получение списка слотов класса |
| get-defmessage-handler-list | Получение списка обработчиков сообщений класса |
| slot-facets | Получение списка значений граней слота |
| slot-sources | Получение списка источников определения слота |
| slot-types | Получение типа слота |
| slot-cardinality | Получение мощности составного слота |
| slot-allowed-values | Получение списка допустимых значений слота |
| slot-range | Получение допустимого диапазона значений слота |
| slot-default-value | Получение значения по умолчанию для слота |
| next-handlerp | Проверка существования скрытых обработчиков |
| call-next-handler | Вызов скрытого обработчика |
| override-next-handier | Вызов скрытого обработчика с измененными аргументами |
| get-definstance-list | Получение списка классов, созданных с помощью конструктора definstance |
| definstances-module | Получения модуля, в котором определен конструктор definstance |
| init-slots | Инициализация слотов |
| unmake-instance | Удаление объекта |
| delete-instance | Удаление объекта из обработчика сообщения |
| class | Определение класса заданного объекта |
| instance-name | Определение имени объекта |
| instance-address | Определение адреса объекта |
| symbol-to-instance-name | Преобразование значение типа symbol в instance-name |
| instance-name-to-symbol | Преобразование значение типа instance-name в symbol |
| instancep | Проверка существования объекта с заданным адресом или именем |
| instance-addressp | Проверка существования объекта с заданным адресом |
| instance-namep | Проверка существования объекта с заданным именем |
| instance-existp | Проверка существования объекта |
| dynamic-put | Чтение значения слота |
| dynamic-get | Запись значения слота |
| slot-replase$ | Замена полей составных слотов |
| slot-insert$ | Добавления полей составных слотов |
| slot-delete$ | Удаление полей составных слотов |
Функция get-defclass-list возвращает составную величину, содержащую имена всех определенных в системе классов, видимых в заданном модуле. Если параметр <имя-модуля> не задан, функция выведет список классов, определенных в текущем модуле. Вместо имени модуля допустимо использовать символ *. В этом случае возвращается список всех классов






