(deftemplate <имя-шаблона>[<необязательные-комментарии>] [<определение-слота>*])
<определение-слота>::= <определение-простого-слота>|<определение-составного-слота>
<определение-простого-слота>::= (slot <имя-поля> <атрибуты-шаблона>)
<определение-составного-слота>::= (multislot <имя-поля> <атрибуты-шаблона>)
<атрибуты-шаблона>::= <атрибут-значение-по-умолчанию>|<атрибут-ограничения>
<атрибут-значение-по-умолчанию>::= (default?DERIVE I?NONE |<Выражение>)|
(default-dynamic <Выражение>)
Заметим еще раз, что имена шаблонов и слотов должны быть значениями типа symbol, кроме того, на имена шаблонов распространяется запрет на использование некоторых слов, зарезервированных системой, перечисленных выше.
Комментарии являются необязательными и, как правило, описывают назначения шаблона. Комментарии необходимо заключать в кавычки. Кроме данного типа комментариев в конструкторе deftempiate также применимы обычные комментарии CLIPS, начинающиеся с символа;. Отличие этих комментариев заключается в том, что комментарии, начинающиеся с символа;, полностью игнорируются системой CLIPS, а комментарии, следующие после имени шаблона и заключенные в кавычки, сохраняются в базе знаний системы. Эти комментарии доступны при просматривании определения шаблона. Определим в среде CLIPS следующий шаблон: