Фрейм (инженерия знаний)

Фрейм (англ. frame) — структура данных в области искусственного интеллекта, используемая для разделения знаний на подструктуры путём представления стереотипных ситуаций[1]. Концепция впервые была предложена Марвином Мински в 1974 году в статье «Структура для представления знаний»[1]. Фреймы являются основной структурой данных, применяемой в специализированных языках описания фреймов, где они хранятся в виде онтологий множеств[2].

Фреймы — одна из основных технологий схем представления и вывода знаний. Они были разработаны на основе семантических сетей, а потому относятся к классу структурных представлений знаний[3].

По определению С. Рассела и П. Норвига в книге «Искусственный интеллект: современный подход», структурные представления собирают «факты о конкретных типах объектов и событий и структурируют типы в крупную таксономическую иерархию, аналогичную биологической таксономии»[4].

Структура фрейма

Фрейм содержит информацию о правилах своего использования, о том, что должно произойти далее, и о действиях при несоблюдении этих ожиданий.

Часть информации во фрейме обычно неизменна, а другие данные, сохраняемые в терминалах, могут меняться; терминалы рассматриваются как переменные.

Верхнеуровневые фреймы содержат сведения, всегда истинные для данной задачи, однако значения терминалов могут изменяться по мере поступления новой информации. Разные фреймы могут использовать одни и те же терминалы.

Каждая единица информации конкретного фрейма хранится в отдельном слоте.

Информация в фрейме может включать:

  • Факты или данные:
    • Значения («facets» — фасеты)
  • Процедуры (процедурные вложения):
    • IF-NEEDED — отложенное вычисление
    • IF-ADDED — обновление связанной информации
  • Значения по умолчанию
    • Для данных
    • Для процедур
  • Другие фреймы или подфреймы

Особенности и достоинства

Терминалы фрейма обычно уже заполнены значениями по умолчанию, что отражает принципы работы человеческого разума[1].

Например, когда человек слышит фразу «мальчик пинает мяч», большинство визуализирует конкретный знакомый мяч (например, футбольный), а не абстрактный объект без характеристик.

Одно из преимуществ фреймового представления знаний — возможность задания исключений для конкретных экземпляров, что отличает его от семантических сетей и придаёт гибкость, необходимую для адекватного отображения реальных явлений.

Аналогично семантическим сетям, фреймы поддерживают распространение активации при запросах. Согласно правилам наследования, любые значения, задаваемые для слота и наследуемые подфреймами, будут обновлены (IF-ADDED) во всех соответствующих слотах подфреймов; новые экземпляры фрейма также получат новое значение по умолчанию.

Благодаря структуре фреймов возможно построение семантической сети на их основе, хотя явные дуги могут отсутствовать. Ссылки на труды Ноама Хомского и его генеративную грамматику 1950-х годов, как правило, отсутствуют в работах Мински.

Упрощённые структуры фреймов обеспечивают лёгкий аналоговый вывод, что ценно для интеллектуальных агентов. Процедурные вложения во фреймах позволяют добиться большей гибкости и приближения к реальности, а также удобны для программных приложений.

Пример

Интересной особенностью является простота аналоговых рассуждений между, например, «мальчиком» и «обезьяной» благодаря одинаковому именованию слотов.

Экземпляр Alex («Алекс»), относящийся к классу «мальчик», наследует, например, пол («мужской») от базового фрейма, но конкретные значения, такие как количество ног, могут быть изменены как исключение.

Слот Значение Тип
ALEX _ (Данный фрейм)
NAME Алекс (ключевое значение)
ISA Мальчик (родительский фрейм)
SEX Мужской (наследуемое значение)
AGE IF-NEEDED: Subtract(current,BIRTHDATE); (процедурное вложение)
HOME 100 Main St. (значение экземпляра)
BIRTHDATE 4 августа 2000 (значение экземпляра)
FAVORITE_FOOD Спагетти (значение экземпляра)
CLIMBS Деревья (значение экземпляра)
BODY_TYPE Худощавый (значение экземпляра)
NUM_LEGS 1 (исключение)
Слот Значение Тип
МАЛЬЧИК _ (Данный фрейм)
ISA Человек (родительский фрейм)
SEX Мужской (значение экземпляра)
AGE До 12 лет (процедурное вложение — ограничение)
HOME Какое-либо место (фрейм)
NUM_LEGS По умолчанию = 2 (по умолчанию, наследовано от фрейма «Человек»)
Слот Значение Тип
ОБЕЗЬЯНА _ (Данный фрейм)
ISA Примат (родительский фрейм)
SEX Один из (Мужской, Женский) (процедурное вложение)
AGE целое число (процедурное вложение — ограничение)
HABITAT По умолчанию = Джунгли (по умолчанию)
FAVORITE_FOOD По умолчанию = Бананы (по умолчанию)
CLIMBS Деревья
BODY_TYPE По умолчанию = Худощавый (по умолчанию)
NUM_LEGS По умолчанию = 2 (по умолчанию)

Фреймовый язык

Фреймовый язык — технология, применяемая для представления знаний в искусственном интеллекте. Он похож на иерархии классов в объектно-ориентированных языках программирования, хотя их фундаментальные цели различаются.

Фреймы нацелены на явно́е и интуитивное описание знаний, тогда как объекты ориентированы на инкапсуляцию и сокрытие информации. Фреймы возникли в исследованиях по ИИ, а объекты — преимущественно в разработке ПО.

Однако в реальной практике техники и возможности фреймовых и объектно-ориентированных языков во многом пересекаются.

Пример

Простым примером концепций, моделируемых во фреймовом языке, является онтология Friend of A Friend (FOAF), созданная для семантической сети и используемая в качестве основы для социальных сетей и календарей.

Главный фрейм в приведённом примере — «Person» («Человек»).

Примеры слотов: email, домашняя страница, телефон и др.

Интересы каждого человека могут быть представлены дополнительными фреймами, описывающими область бизнеса и развлечений.

Слот knows образует связи между людьми.

Значения интересов могут быть выведены по связям внутри социальной сети[5].

Реализации

Первые языки на фреймах разрабатывались как индивидуальные решения для конкретных исследовательских проектов и не были оформлены в виде независимых инструментов.

Подобно экспертным системам с отдельными машинами вывода, учёные впоследствии начали выделять универсальную инфраструктуру и создавать обобщённые языки, не связанные со специфическими приложениями.

Одним из первых таких языков был KRL[2]. Одним из наиболее влиятельных ранних языков стал KL-ONE[3], породивший множество последующих стандартов.

Одним из самых распространённых преемников KL-ONE был язык Loom, разработанный Робертом Макгрегором в Институте информационных наук[6].

В 1980-х сфера искусственного интеллекта привлекла всё больше внимания бизнеса за счёт развития экспертных систем. Это привело к созданию коммерческих продуктов для проектирования систем на основе знаний. Ранние продукты обычно реализовывались на Lisp и совмещали правила IF-THEN для логического вывода с иерархиями фреймов.

Одной из самых известных ранних оболочек была Knowledge Engineering Environment (KEE), разработанная компанией Intellicorp, с полной поддержкой языка фреймов, множественного наследования, слотов, триггеров, значений по умолчанию и системы вывода, поддерживающей прямой и обратный вывод. Первоначально KEE функционировала на специализированных машинах Lisp, но затем была портирована и на ПК под UNIX[7].

Работы по семантической паутине способствовали возрождению интереса к автоматическим классификаторам и языкам фреймов. Примеры — стандарт OWL (Web Ontology Language), создающий семантический слой поверх Интернета, и предназначенный для организации веба по смысловым онтологиям, а не только по ключевым словам.

Название языка OWL иллюстрирует достоинства семантического подхода: если искать «OWL» сегодня, большинство страниц будут о сове, а не о стандарте. В семантической сети пользователь сможет точно указать, о каком значении идёт речь, без хлопот с омонимами и синонимами.

К стандартам и инструментам этого класса относятся OIL, DAML и Protégé от Стэнфордского университета, первоначально поддерживавший явные фреймы (до версии 3.5), впоследствии перешедший на OWL DL как более выразительный и промышленный стандарт[8].

Сравнение фреймов и объектов

Фреймовые и объектно-ориентированные языки имеют большое пересечение по возможностям. Несмотря на различие терминологии и целей на ранних этапах, к моменту коммерциализации разработчики стали активно комбинировать лучшие решения обеих парадигм.

Общая цель обоих подходов — максимально приблизить архитектуру программ к концепциям реального мира и их таксономиям.

Соответствие терминологии показано в таблице:

Терминология фреймов Терминология ООП
Фрейм Класс объектов
Слот Свойство объекта или атрибут
Триггер Акцессоры и мутаторы
Метод (например, loom, KEE) Метод (функция-член)

Ключевое отличие состоит в подходе к инкапсуляции. В ООП инкапсуляция считается одним из главных требований — управление доступом к данным и методам важно для масштабирования сложных систем. Во фреймовых языках инкапсуляция не столь критична — значимее наличие гибких инструментов для описания правил, ограничений, логики.

Другое отличие — поддержка множественного наследования. Для фреймов это обязательное условие: концепции реального мира редко укладываются в строго раздельные таксономии. В ООП, напротив, тенденция — к единственному наследованию и модульности[9].

Поздние фреймовые языки вроде Loom и KEE включали механизм «сообщений», схожий с принципом message passing.

В ООП также реализованы стандарты для ассоциаций тестовых данных и ограничений с объектами (аналогично слоту «facets» во фреймах), а также для интеграции правил[10][11].

История

Ранняя работа по фреймам была вдохновлена психологическими исследованиями 1930-х годов, согласно которым люди используют стереотипные структуры знаний для интерпретации новых когнитивных ситуаций[12]. Термин «фрейм» был введён Марвином Мински для описания парадигмы понимания зрительного и речевого восприятия[13].

Первоначально предполагалось, что фреймы (или скрипты) позволяют устанавливать контекст задачи и резко сузить пространство поиска решений. Идея была расширена Роджером Шанкомом и Робертом Абельсоном, которые применили её для описания типовых человеческих взаимодействий, например заказа блюда в ресторане[14]. В таких сценариях хранились слоты, соответствовавшие объектным свойствам. Слоты могли иметь значения по умолчанию, но также требовали доопределения в ходе выполнения задания.

Как и объектные классы, фреймы организовывались в иерархии подтипов. Базовый фрейм (например, «заказ в ресторане») мог быть конкретизирован (фрейм «заказ в дорогом ресторане» с дополнительными слотами либо иными значениями по умолчанию)[15][2].

Языки

Большая часть ранних исследований в области фреймов была мотивирована опытом экспериментальной психологии (например, работы Шанка и Абельсона) и попытками создать средства представления знаний, отражающие реальные паттерны человеческой деятельности. Для этих исследователей математическая строгость не была главной — аналогично, как и в лингвистике Чарльз Филлмор в 1970-х выдвинул теорию фреймовой семантики, впоследствии реализованную, например, в системе FrameNet[16].

Другие исследователи, такие как Рон Брачман, стремились придать фреймам математическую строгость и свести их к теориям множеств и логике для автоматизации построения и проверки моделей с помощью логического вывода. Этот подход позволял применять автоматические классификаторы.

Это отражает классический конфликт в ИИ — «строгие» (neats) и «приближённые» (scruffies) подходы[17].

Наиболее известным формально-логическим языком был KL-ONE[3]. Он обеспечил автоматическую классификацию и проверку логических связей между фреймами (классификатор), что стало основой для функций вывода и обнаружения противоречий[6].

Эти технологии оказались крайне полезны для интерпретации неструктурированных данных, например, в семантической паутине[18].

Разделение на «строгих» и «приближённых» также проявилось и в развитии семантической паутины, породив, например, движение Linking Open Data — с упором больше на публикацию данных, чем на моделирование литералов[19].

Примечания

  1. 1 2 3 A Framework for Representing Knowledge (англ.). MIT AI Lab. Massachusetts Institute of Technology (июнь 1974). Дата обращения: 7 июня 2024.
  2. 1 2 3 Bobrow, D.G.; Terry Winograd (1977). “An Overview of KRL: A Knowledge Representation Language”. Cognitive Science. 1: 3—46. DOI:10.1207/s15516709cog0101_2.
  3. 1 2 3 Brachman, Ron (1978). “A Structural Paradigm for Representing Knowledge”. Bolt, Beranek, and Neumann Technical Report (3605).
  4. Russell, Stuart J. Artificial Intelligence: A Modern Approach : [англ.] / Stuart J. Russell, Peter Norvig. — Prentice Hall, 2010. — ISBN 0-13-604259-7.
  5. FOAF (англ.). semanticweb.org. Дата обращения: 7 июня 2024. Архивировано 10 февраля 2013 года.
  6. 1 2 MacGregor, Robert (June 1991). “Using a description classifier to enhance knowledge representation”. IEEE Expert. 6 (3): 41—46. DOI:10.1109/64.87683. S2CID 29575443.
  7. Mettrey, William (1987). “An Assessment of Tools for Building Large Knowledge-Based Systems”. AI Magazine. 8 (4). Архивировано из оригинала 2013-11-10. Дата обращения 2024-06-07. Используется устаревший параметр |url-status= (справка)
  8. Horridge, Mathew Protégé OWL Tutorial A step-by-step guide to modeling in OWL using the popular Protégé OWL tools. (англ.). Manchester University. Дата обращения: 7 июня 2024. Архивировано 13 декабря 2013 года.
  9. The Unified Modeling Language. essentialstrategies.com. Essential Strategies Inc. (1999). Дата обращения: 7 июня 2024.
  10. Macgregor, Robert Retrospective on Loom. isi.edu. Information Sciences Institute (13 августа 1999). Дата обращения: 7 июня 2024. Архивировано 25 октября 2013 года.
  11. OMG Formal Specifications. omg.org. Object Management Group. Дата обращения: 7 июня 2024.
  12. Bartlett, F. C. Remembering: A Study in Experimental and Social Psychology : [англ.]. — Cambridge : Cambridge University Press, 1932. — doi:10.1086/399084.
  13. Minsky, Marvin. A Framework for Representing Knowledge // The Psychology of Computer Vision : [англ.] / Pat Winston. — New York : McGraw Hill, 1975. — P. 211–277.
  14. Schank, Roger. Scripts, Plans, Goals, and Understanding : [англ.] / Roger Schank, R. P. Abelson. — Hillsdale, New Jersey : Lawrence Erlbaum, 1977. — ISBN 9781134919666. — doi:10.4324/9780203781036.
  15. Feigenbaum, Edward. The Handbook of Artificial Intelligence, Volume III : [англ.] / Edward Feigenbaum, Avron Barr. — Addison-Wesley, 1 сентября 1986. — P. 216–222. — ISBN 978-0201118117.
  16. Lakoff, George. Charles Fillmore, Discoverer of Frame Semantics, Dies in SF at 84: He Figured Out How Framing Works (англ.) (18 февраля 2014). Дата обращения: 7 июня 2024.
  17. Crevier, Daniel. AI: The Tumultuous Search for Artificial Intelligence : [англ.]. — New York : Basic Books, 1993. — P. 168. — ISBN 978-0-465-02997-6.
  18. Berners-Lee, Tim; James Hendler; Ora Lassila (17 мая 2001). “The Semantic Web A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities”. Scientific American [англ.]. 284 (5): 34—43. DOI:10.1038/scientificamerican0501-34. Используется устаревший параметр |url-status= (справка)
  19. Horridge, Mathew Protégé OWL Tutorial A step-by-step guide to modeling in OWL using the popular Protégé OWL tools. (англ.). Manchester University. Дата обращения: 7 июня 2024. Архивировано 13 декабря 2013 года.

Литература

  • Беляевская, Е. Г. О конвергенции когнитивных структур / Е. Г. Беляевская // Когнитивные исследования языка. — 2025. — № 3-1(64). — С. 18-23.
  • Гончаренко, В. В. Фреймы для распознавания смысла текста / В. В. Гончаренко, Е. А. Шингарева ; Отв. ред. Р. Г. Пиотровский. — Кишинев : Штиинца, 1984. — 198 с. : ил.; 21 см.
  • Гурина, Р. В. Фреймовое представление знаний : [монография] / Р. В. Гурина, Е. Е. Соколова. — Москва : Нар. образование : НИИ шк. технологий, 2005. — 175 с. : ил., табл.; 20 см.
  • Категории искусственного интеллекта в лингвистической семантике. Фреймы и сценарии. — Москва : ИНИОН, 1987. — 53,[1] с. : 20 см.
  • Кудряшов, В. А. Технология фрейм реле на цифровых сетях связи : Учеб. пособие / В. А. Кудряшов, А. К. Лебединский; М-во путей сообщения Рос. Федерации. Петерб. гос. ун-т путей сообщ. (ПГУПС-ЛИИЖТ). — СПб. : [Петерб. гос. ун-т путей сообщ.], 2002. — 29 с. : ил., табл.; 21 см.
  • Левковец, Л. Adobe InDesign CS4 : базовый курс на примерах / Леонид Левковец. — Санкт-Петербург : БХВ-Петербург, 2009 (СПб. : Наука). — 543 с. : ил., табл.; 24 см
  • Рассел, С. Искусственный интеллект : современный подход : [перевод с английского] / Стюарт Рассел, Питер Норвиг. — 4-е изд. — Москва : Диалектика ; Санкт-Петербург : Диалектика, 2021—. — 24 см.
  • Сагикызы, А. Информационное общество: концептуальные модели и алгоритмы фреймирования опыта повседневности / А. Сагикызы, В. Ю. Дунаев, В. Д. Курганская // Вопросы философии. — 2026. — № 1. — С. 28-38.
  • Сидняев, Н. И. Исследование мультипликативной последовательности псевдослучайных фреймов в базе знаний / Н. И. Сидняев, Е. Е. Синева // Научно-техническая информация. Серия 2: Информационные процессы и системы. — 2025. — № 2. — С. 1-9.
  • Стренева, Н. В. Фрейм текстов-граффити: графика и форма представления [Текст] : монография / Н. В. Стренева ; Министерство образования и науки Российской Федерации, Федеральное государственное бюджетное образовательное учреждение высшего образования "Оренбургский государственный университет". — Оренбург : Университет, 2017. — 108 с. : ил., табл.; 21 см.

Дополнительная литература