Введение

Loom — это язык представления знаний, разработанный исследователями из исследовательской группы искусственного интеллекта в Институте информационных наук Университета Южной Калифорнии. Руководителем проекта Loom и главным архитектором был Роберт Макгрегор. Исследование финансировалось главным образом Агентством передовых исследовательских проектов Министерства обороны (DARPA). Loom — это язык, основанный на фреймах, в традиции KL ONE. Как и KL ONE, Loom имеет формальную семантику, которая отображает декларации в Loom на утверждения теории множеств и логики первого порядка. Эта формальная семантика позволяет использовать механизм доказательства теорем, называемый классификатором. Классификатор может анализировать модели Loom (известные как онтологии) и выводить различные сведения о модели. Например, классификатор может обнаруживать новые классы или изменять отношения «подкласс/суперкласс» в модели. Классификатор также может выявлять противоречия в декларациях модели. Это очень мощная и довольно необычная возможность, поскольку она позволяет проводить анализ на уровне онтологии, уровне деклараций, а не на уровне реализации, как это делают большинство механизмов логического вывода. Целью проекта Loom является разработка и внедрение передовых инструментов для представления знаний и рассуждений в области искусственного интеллекта, в частности, для обеспечения возможности генерации кода из доказуемо корректных моделей предметной области. Loom — это язык и среда для создания интеллектуальных приложений. В его основе лежит система представления знаний и рассуждений, сочетающая язык, основанный на фреймах, с автоматическим классификатором. Декларативные знания в Loom состоят из определений, правил, фактов и правил по умолчанию. Дедуктивный механизм, называемый классификатором, использует прямой вывод (forward chaining), семантическую унификацию и объектно-ориентированные технологии поддержания непротиворечивости для компиляции декларативных знаний в сеть, предназначенную для эффективной поддержки обработки дедуктивных запросов. Система Loom реализует логический сопоставитель с образцом, который управляет системой производных правил и механизмом направленной диспетчеризации методов, поддерживающим определение объектно-ориентированных методов. Высокая степень интеграции между декларативными и процедурными компонентами Loom позволяет программистам использовать парадигмы логического программирования, производных правил и объектно-ориентированного программирования в одном приложении. Loom также может использоваться в качестве дедуктивного слоя, накладываемого на обычную сеть CLOS (Common Lisp Object System). В этом режиме пользователи могут получить многие преимущества использования Loom, не затрагивая функциональность или производительность своих приложений, основанных на CLOS. В последнее время Loom был заменен PowerLoom.