Для описания всех аспектов систелш ИИ в профаммной среде используются высокоуровневые спецификации . Для этих целей в FEAR задействован проблемно-ориентированный язык (domain-specific language) начального уровня, основанный на XML. Поскольку в основе любой системы ИИ лежит манипуляция данными на разных уровнях, с<х»іїкгісівующие операции формализованы потрем следующим категориям.
> Интерфейсы предоставляют набор доступных для вызова функций (с помощью входов и выходов), передаваемых сообщений, определений типов и объявлений констант.
> Модули представляют собой реализацию интерфейсов. Большинство интерфейсов подключается во время выполнения (иными словами, они реализованы на C++), однако хранение постоянных данных можно также рассмафи-вать как интерфейс с файловой системой (например, запись бинарных файлов во время заверщения работы). Для формализации взаимозависимостей между модулями каждый модуль снабжается интерфейсами импорта и экспорта.
> Архитектурные решения создаются на основе низкоуровневых компонентов (экземпляров модулей), собранных в иерархической модели. В основе такой иерархии, как правило, находится лозг (brain) анимата.
Эти высокоуровневые определения обрабатываются специальным набором инструментов для получения заготовок исходных файлов по заранее подготовленным шаблонам. Такой подход получил название метапрограммирования (также известен под названием метода автоматической генерации кода). Это позволяет профамми-сту, подготовив новые спецификации (например, модули и интерфейсы), тут же подключить их к FEAR с минимальными потерями времени на кодирование вручную, поскольку все работы по созданию модулей и привязке их к имеющейся профаммной среде уже автоматизированы.