Из Википедии, свободной энциклопедии
  (Перенаправлено из фрейма (структура данных) )
Перейти к навигации Перейти к поиску

Фреймы - это структура данных искусственного интеллекта, используемая для разделения знаний на подструктуры, представляя « стереотипные ситуации». Они были предложены Марвином Мински в его статье 1974 г. «Структура представления знаний». Фреймы - это основная структура данных, используемая в языке фреймов искусственного интеллекта ; они хранятся в виде онтологий из наборов .

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

Структура кадра [ править ]

Фрейм содержит информацию о том, как использовать фрейм, чего ожидать дальше и что делать, если эти ожидания не оправдываются. Некоторая информация в кадре обычно не изменяется, тогда как другая информация, хранящаяся в «терминалах», обычно изменяется. Терминалы можно рассматривать как переменные. Кадры верхнего уровня несут информацию, которая всегда относится к рассматриваемой проблеме, однако терминалы не обязательно должны соответствовать действительности. Их ценность может измениться с появлением новой информации. Разные кадры могут использовать одни и те же терминалы.

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

  • Факты или данные
    • Ценности (называемые фасетами)
  • Процедуры (также называемые процедурными приложениями)
    • ЕСЛИ НЕОБХОДИМО: отложенная оценка
    • IF-ADDED: обновляет связанную информацию
  • Значения по умолчанию
    • Для данных
    • Для процедур
  • Другие кадры или подкадры

Особенности и преимущества [ править ]

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

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

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

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

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

Пример [ править ]

Здесь стоит отметить простое аналогичное рассуждение (сравнение), которое можно провести между мальчиком и обезьяной, просто имея слоты с одинаковыми названиями.

Также обратите внимание, что Alex, экземпляр мальчика, наследует значения по умолчанию, такие как «Sex», от более общего родительского объекта Boy, но мальчик также может иметь разные значения экземпляра в виде исключений, таких как количество ног.

Язык фрейма [ править ]

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

Пример [ править ]

Простым примером концепций, смоделированных на языке фреймов, является онтология « Друг друга» (FOAF), определенная как часть семантической паутины как основа для социальных сетей и календарных систем. Первичный фрейм в этом простом примере - это человек . Примеры слотов - это адрес электронной почты , домашняя страница, телефон человека и т. Д. Интересы каждого человека могут быть представлены дополнительными фреймами, описывающими пространство деловой и развлекательной сфер. Слот знает, что связывает каждого человека с другим человеком. Значения по умолчанию для интересов человека могут быть выведены из сети людей, с которыми он дружит. [1]

Реализации [ править ]

Самые ранние языки на основе фреймов были специально разработаны для конкретных исследовательских проектов и не были упакованы в качестве инструментов для повторного использования другими исследователями. Как и в случае с механизмами вывода экспертных систем , исследователи вскоре осознали преимущества извлечения части базовой инфраструктуры и разработки языков фреймов общего назначения, которые не были связаны с конкретными приложениями. Одним из первых языков фреймов общего назначения был KRL. [2] Одним из самых влиятельных языков ранних фреймов был KL-ONE [3] KL-ONE породил несколько последующих языков фреймов. Одним из наиболее широко используемых преемников KL-ONE был язык Loom, разработанный Робертом МакГрегором из Института информационных наук.. [4]

В 1980-х годах искусственный интеллект вызвал большой интерес в деловом мире, подпитываемый экспертными системами. Это привело к разработке многих коммерческих продуктов для разработки систем, основанных на знаниях. Эти ранние продукты обычно разрабатывались на Лиспе и интегрировали такие конструкции, как правила IF-THEN для логических рассуждений с иерархиями фреймов для представления данных. Одним из наиболее известных из этих ранних инструментов базы знаний Lisp была среда разработки знаний (KEE) от Intellicorp . KEE предоставил полный фрейм язык с множественным наследованием, слотами, триггерами, значениями по умолчанию и механизмом правил, который поддерживает обратную и прямую цепочки. Как и большинство ранних коммерческих версий программного обеспечения ИИ, KEE изначально был развернут на Лиспе.на платформах машин Lisp, но в конечном итоге был перенесен на ПК и рабочие станции Unix. [5]

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

Само название языка OWL представляет собой хороший пример ценности семантической паутины. Если бы кто-то искал "OWL" в Интернете сегодня, большинство извлеченных страниц было бы на сове, а не на стандартном OWL . С помощью семантической сети можно было бы указать понятие «язык веб-онтологий», и пользователю не нужно было бы беспокоиться о различных возможных акронимах или синонимах в рамках поиска. Точно так же пользователю не нужно беспокоиться о том, что омонимы переполняют результаты поиска нерелевантными данными, такими как информация о хищных птицах, как в этом простом примере.

Помимо OWL, различные стандарты и технологии, относящиеся к семантической паутине, на которые повлияли языки фреймов, включают OIL и DAML . Protege программный инструмент с открытым исходным кодом из Стэнфордского университета предоставляет возможность редактирования онтологий , который построен на OWL и имеет все возможности классификатором. Однако он перестал явно поддерживать фреймы, начиная с версии 3.5 (которая поддерживается для тех, кто предпочитает ориентацию фрейма), текущая версия в 2017 году - 5. Обоснованием перехода от явных фреймов является то, что OWL DL является более выразительным и «промышленным стандартом». [6]

Сравнение рам и объектов [ править ]

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

Следующая таблица иллюстрирует взаимосвязь между стандартной терминологией объектно-ориентированного и фреймового языковых сообществ:

Основное различие между двумя парадигмами заключалось в том, что инкапсуляция считалась основным требованием. Для объектно-ориентированной парадигмы инкапсуляция была одним из, если не самым важным требованием. Стремление уменьшить потенциальное взаимодействие между программными компонентами и, следовательно, управлять большими сложными системами было ключевым фактором объектно-ориентированной технологии. Для языкового лагеря фреймов это требование было менее важным, чем желание предоставить широкий набор возможных инструментов для представления правил, ограничений и логики программирования. В объектно-ориентированном мире все управляется методами и видимостью методов. Так, например, доступ к значению данных свойства объекта должен осуществляться через метод доступа.Этот метод управляет такими вещами, как проверка типа данных и ограничений на значение, которое извлекается или задается для свойства. В языках фреймов с этими же типами ограничений можно справиться несколькими способами. Можно определить триггеры для срабатывания до или после установки или получения значения. Могут быть определены правила, управляющие одинаковыми типами ограничений. Сами слоты могут быть дополнены дополнительной информацией (называемой «фасетами» на некоторых языках), опять же, с тем же типом информации об ограничениях.Сами слоты могут быть дополнены дополнительной информацией (называемой «фасетами» на некоторых языках), опять же, с тем же типом информации об ограничениях.Сами слоты могут быть дополнены дополнительной информацией (называемой «фасетами» на некоторых языках), опять же, с тем же типом информации об ограничениях.

Другим основным отличием между фреймовым и объектно-ориентированным языками было множественное наследование (позволяющее фрейму или классу иметь два или более суперкласса). Для фреймовых языков требовалось множественное наследование. Это следует из желания моделировать мир так, как это делают люди, человеческие представления о мире редко попадают в строго определенные неперекрывающиеся таксономии. Для многих объектно-ориентированных языков, особенно в последние годы объектно-ориентированного программирования, единичное наследование было либо настоятельно желательным, либо обязательным. Множественное наследование рассматривалось как возможный шаг на этапе анализа для моделирования домена, но то, что следует исключить на этапах проектирования и реализации во имя сохранения инкапсуляции и модульности. [7]

Хотя ранние языки фреймов, такие как KRL, не включали передачу сообщений, движимую требованиями разработчиков, большинство более поздних языков фреймов (например, Loom, KEE) включали возможность определять сообщения во фреймах. [8]

На объектно-ориентированной стороне также появились стандарты, которые обеспечивают, по сути, те же функциональные возможности, что и фреймовые языки, хотя и в другом формате, и все они стандартизированы для объектных библиотек. Например, Группа управления объектами имеет стандартизованные спецификации для таких возможностей, как связывание тестовых данных и ограничений с объектами (аналогично обычному использованию фасетов во фреймах и ограничениям в языках фреймов, таких как Loom), а также для интеграции механизмов правил. [9] [10]

История [ править ]

Ранняя работа над Frames была вдохновлена ​​психологическими исследованиями 1930-х годов, которые показали, что люди используют накопленные стереотипные знания для интерпретации и действий в новых когнитивных ситуациях. [11] Термин «фрейм» впервые был использован Марвином Мински в качестве парадигмы для понимания визуального мышления и обработки естественного языка. [12] В этих и многих других типах проблем пространство потенциального решения даже для самой маленькой проблемы огромно. Например, извлечение фонем из необработанного аудиопотока или определение границобъекта. Вещи, которые кажутся людям банальными, на самом деле довольно сложны. Фактически, насколько сложными они были на самом деле, вероятно, не было полностью понятно, пока исследователи ИИ не начали исследовать сложность получения компьютеров для их решения.

Первоначальное понятие фреймов или скриптов, как их еще называли, заключается в том, что они устанавливают контекст для проблемы и, таким образом, автоматически значительно сокращают возможное пространство поиска. Эту идею также переняли Шанк и Абельсон, которые использовали ее, чтобы проиллюстрировать, как система ИИ может обрабатывать обычные человеческие взаимодействия, такие как заказ еды в ресторане. [13] Эти взаимодействия были стандартизированы как фреймы со слотами, в которых хранилась соответствующая информация о каждом фрейме. Слоты аналогичны свойствам объекта в объектно-ориентированном моделировании и отношениям в моделях сущность-отношение. Слоты часто имели значения по умолчанию, но также требовали дальнейшего уточнения в рамках выполнения каждого экземпляра сценария. То есть выполнение такой задачи, как заказ в ресторане, контролировалось, начиная с базового экземпляра Frame, а затем создавая и уточняя различные значения по мере необходимости. По сути, абстрактный фрейм представлял класс объекта, а экземпляры фрейма - экземпляр объекта. В этой ранней работе основное внимание уделялось описанию статических данных Frame. Были разработаны различные механизмы для определения диапазона слота, значений по умолчанию и т. Д. Однакодаже в этих ранних системах были процедурные возможности. Одним из распространенных приемов было использование «триггеров» (аналогично концепции базы данныхтриггеры ), прикрепленные к слотам. Триггер - это просто процедурный код, прикрепленный к слоту. Триггер мог сработать до и / или после доступа к значению слота или его изменения.

Как и классы объектов, фреймы были организованы в иерархии подчинения . Например, базовую раму можно заказать в ресторане. Примером может служить то, что Джо идет в Макдональдс. Специализация (по сути, подкласс ) рамки ресторана - это рамка для заказа в модном ресторане. Фрейм причудливого ресторана унаследует все значения по умолчанию из фрейма ресторана, но также либо добавит больше слотов, либо изменит одно или несколько значений по умолчанию (например, ожидаемый диапазон цен) для специализированного фрейма. [14] [15]

Языки [ править ]

Большая часть ранних исследований языка Фреймов (например, Шэнк и Абельсон) была продиктована результатами экспериментальной психологии и попытками разработать инструменты представления знаний, соответствующие шаблонам, которые люди, как считалось, использовали для выполнения повседневных задач. Этих исследователей меньше интересовали математические формальности, поскольку они считали, что такие формализмы не обязательно были хорошими моделями того, как средний человек представляет себе мир. Например, то, как люди используют язык, часто далеко не по-настоящему логично.

Точно так же в лингвистике Чарльз Дж. Филмор в середине 1970-х начал работать над своей теорией семантики фреймов , которая позже привела к появлению таких вычислительных ресурсов, как FrameNet . [16] Семантика фреймов была мотивирована размышлениями о человеческом языке и человеческом познании.

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

Эта эволюция также иллюстрирует классическое разделение в исследованиях искусственного интеллекта, известное как « аккуратность против неряшливости ». «Аккуратными» были исследователи, которые больше всего ценили математическую точность и формализм, которых можно было достичь с помощью логики первого порядка и теории множеств . «Беспорядки» больше интересовались моделированием знаний в представлениях, которые были интуитивно понятны и психологически значимы для людей. [17]

Наиболее заметным из более формальных подходов был язык KL-ONE . [18] KL-ONE позже породил несколько последующих языков фреймов. Формальная семантика таких языков, как KL-ONE, дала этим фрейм-языкам новый тип возможности автоматического мышления, известный как классификатор . Классификатор - это механизм, который анализирует различные объявления на языке фреймов: определение наборов, подмножеств, отношений и т. Д. Затем классификатор может автоматически выводить различные дополнительные отношения и определять, когда некоторые части модели несовместимы друг с другом. Таким образом, многие задачи, которые обычно выполняются с помощью прямой или обратной цепочки в механизме вывода, могут вместо этого выполняться классификатором. [19]

Эта технология особенно ценна при работе с Интернетом. Интересный результат заключается в том, что формализм таких языков, как KL-ONE, может быть наиболее полезным при работе с очень неформальными и неструктурированными данными, которые можно найти в Интернете. В Интернете просто невозможно требовать, чтобы все системы стандартизировались по одной модели данных. Терминология неизбежно будет использоваться во множестве противоречивых форм. Возможность автоматической классификации механизма классификатора предоставляет разработчикам ИИ мощный набор инструментов, помогающий упорядочить и согласовать очень непоследовательный сбор данных (например, Интернет). Концепция расширенного Интернета, в котором страницы упорядочены не только по ключевым словам текста, но и по классификации концепций, известна как семантическая сеть.. Технология классификации, первоначально разработанная для языков Frame, является ключевым фактором Семантической паутины. [20] [21] Разделение на «аккуратность и неопрятность» также проявилось в исследованиях семантической сети, кульминацией которых стало создание сообщества Linking Open Data - их внимание было сосредоточено на публикации данных в сети, а не на моделировании.

См. Также [ править ]

  • Дедуктивный классификатор
  • Описание логики
  • Факт
  • Логика первого порядка
  • Проблема с рамой
  • Знание
  • База знаний
  • Система, основанная на знаниях
  • Язык онтологий
  • Предикат
  • Семантика
  • Семантическая сеть
  • Ситуационное исчисление
  • Правда

Ссылки [ править ]

  1. ^ "FOAF" . http://semanticweb.org . Архивировано из оригинального 10 февраля 2013 года . Проверено 7 июня 2014 . Внешняя ссылка в |website=( помощь )
  2. ^ Bobrow, DG; Терри Виноград (1977). «Обзор KRL: язык представления знаний» . Когнитивная наука . 1 : 3–46. DOI : 10,1207 / s15516709cog0101_2 .
  3. ^ Брахман, Рон (1978). «Структурная парадигма представления знаний» . Технический отчет Болта, Беранека и Неймана (3605).
  4. ^ МакГрегор, Роберт (июнь 1991 г.). «Использование классификатора описания для улучшения представления знаний». Эксперт IEEE . 6 (3): 41–46. DOI : 10.1109 / 64.87683 .
  5. ^ Меттри, Уильям (1987). «Оценка инструментов для построения больших систем, основанных на знаниях» . Журнал AI . 8 (4). Архивировано из оригинала на 2013-11-10 . Проверено 9 декабря 2013 .
  6. ^ Хорридж, Мэтью. «Protégé OWL Tutorial. Пошаговое руководство по моделированию в OWL с использованием популярных инструментов Protégé OWL» . Манчестерский университет . Манчестерский университет. Архивировано из оригинального 13 декабря 2013 года . Проверено 9 декабря 2013 года .
  7. ^ «Единый язык моделирования» . essentialstrategies.com . Основные стратегии Inc. 1999 . Проверено 10 декабря 2013 года . По опыту вашего автора, почти все примеры, которые требуют множественного наследования или множественных иерархий типов, могут быть решены путем атаки на модель с другого направления.
  8. ^ Меттри, Уильям (1987). «Оценка инструментов для построения больших систем, основанных на знаниях» . Журнал AI . 8 (4). Архивировано из оригинала на 2013-11-10 . Проверено 9 декабря 2013 .
  9. ^ Макгрегор, Роберт (13 августа 1999). «Ретроспектива на ткацком станке» . isi.edu . Институт информационных наук. Архивировано из оригинального 25 октября 2013 года . Проверено 10 декабря 2013 года .
  10. ^ «Формальные спецификации OMG» . omg.org . Группа управления объектами . Проверено 10 декабря 2013 года .
  11. Перейти ↑ Bartlett, FC (1932). Вспоминая: исследование экспериментальной и социальной психологии . Кембридж, Англия: Издательство Кембриджского университета. DOI : 10.1086 / 399084 . S2CID 7992164 . 
  12. Перейти ↑ Minsky, Marvin (1975). «Рамки для представления знаний» (PDF) . В Пэт Уинстон (ред.). Психология компьютерного зрения . Нью-Йорк: Макгроу Хилл. С. 211–277.
  13. ^ Шанк, Роджер; Р.П. Абельсон (1977). Сценарии, планы, цели и понимание . Хиллсдейл, Нью-Джерси: Лоуренс Эрлбаум.
  14. ^ Фейгенбаум, Эдвард; Аврон Барр (1 сентября 1986 г.). Справочник по искусственному интеллекту, Том III . Эддисон-Уэсли. С. 216–222. ISBN 978-0201118117.
  15. ^ Bobrow, DG; Терри Виноград (1977). «Обзор KRL: язык представления знаний» . Когнитивная наука . 1 : 3–46. DOI : 10,1207 / s15516709cog0101_2 .
  16. ^ Лакофф, Джордж (18 февраля 2014). «Чарльз Филлмор, первооткрыватель семантики фреймов, умер в научной фантастике в возрасте 84 лет: он выяснил, как работает фрейминг» . The Huffington Post . Проверено 7 марта 2014 года .
  17. ^ Кревье, Даниэль (1993). AI: бурные поиски искусственного интеллекта . Нью-Йорк: Основные книги. п. 168. ISBN 978-0-465-02997-6.
  18. ^ Брахман, Рон (1978). «Структурная парадигма представления знаний» . Технический отчет Болта, Беранека и Неймана (3605).
  19. ^ МакГрегор, Роберт (июнь 1991 г.). «Использование классификатора описания для улучшения представления знаний». Эксперт IEEE . 6 (3): 41–46. DOI : 10.1109 / 64.87683 .
  20. ^ Бернерс-Ли, Тим; Джеймс Хендлер; Ора Лассила (17 мая 2001 г.). «Семантическая паутина. Новая форма веб-контента, значимая для компьютеров, откроет революцию новых возможностей» . Scientific American . 284 (5): 34–43. DOI : 10.1038 / Scientificamerican0501-34 . Архивировано из оригинала на 2013-04-24.
  21. ^ Хорридж, Мэтью. «Protégé OWL Tutorial. Пошаговое руководство по моделированию в OWL с использованием популярных инструментов Protégé OWL» . Манчестерский университет . Манчестерский университет. Архивировано из оригинального 13 декабря 2013 года . Проверено 9 декабря 2013 года .

Библиография [ править ]

  • Рассел, Стюарт Дж .; Норвиг, Питер (2010), Искусственный интеллект: современный подход (2-е изд.), Верхняя Сэдл-Ривер, Нью-Джерси: Prentice Hall, ISBN 0-13-604259-7 , ch. 1. 
  • Марвин Мински, Структура представления знаний , MIT-AI Laboratory Memo 306, июнь 1974 г.
  • Дэниел Г. Боброу, Терри Виноград, Обзор KRL, языка представления знаний] | date = декабрь 2019 | bot = InternetArchiveBot | fix -pting = yes}}, Меморандум Стэнфордской лаборатории искусственного интеллекта AIM 293, 1976.
  • Р. Брюс Робертс и Ира П. Гольдштейн, The FRL Primer , 1977
  • Р. Брюс Робертс и Ира П. Гольдштейн, Руководство FRL , 1977 г.
  • Brachman, R .; Шмольце, Дж. (1985). «Обзор системы представления знаний KL-ONE» . Когнитивная наука . 9 (2): 171–216. DOI : 10.1016 / s0364-0213 (85) 80014-8 .
  • Fikes, RE; Келер, Т. (1985). «Роль представления на основе фрейма в представлении знаний и рассуждении». Коммуникации ACM . 28 (9): 904–920. DOI : 10.1145 / 4284.4285 .
  • Питер Кларк и Брюс Портер: KM - Машина знаний 2.0: Руководство пользователя, http://www.cs.utexas.edu/users/mfkb/RKF/km.html .
  • Питер Д. Карп, Пространство проектирования систем представления знаний о кадрах , Техническая записка 520. Центр искусственного интеллекта , SRI International , 1992

Внешние ссылки [ править ]

  • «Рамки для представления знаний» Минского.
  • Искусственный интеллект: современный веб-сайт
  • Каркасные системы
  • Общий протокол кадра
  • Редактор онтологий Protégé
  • Введение в фреймовые языки