Читаем Фреймы для представления знаний полностью

Можно продолжить эту процедуру построения системы фреймов, соответствующую перемещению точки наблюдения вокруг куба. Это привело бы к получению более широкой системы фреймов, в которой каждый фрейм соответствует своей позиции наблюдения куба. На рис.П1в показана система фреймов, состоящая из трех фреймов, каждый из которых представляет визуальный образ, получающийся в одной из трех позиций наблюдения. Две из этих позиций соответствуют перемещению вправо и влево на 45° относительно третьей позиции; указатели между фреймами соответствуют перемещениям точки наблюдения. Важно обратить внимание на выявленное в этом примере важное свойство представления ситуации с помощью системы фреймов. Оно состоит в том, что различные фреймы, входящие в систему, используют один и тот же терминал, соответствующий одной и той же физической черте, которая видна из различных позиций наблюдения. Это позволяет заранее сосредоточить в одном месте информацию о свойствах известных объектов независимо от позиций наблюдения, которых, особенно для предметов сложной формы, может быть очень много. В результате экономится память и сокращается процесс восприятия при изменении позиций наблюдения, так как память уже располагает необходимой информацией и время затрачивается лишь на "извлечение" ее из памяти.

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

2.2. Фрейм-сценарий

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

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

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

Одежда: воскресная, самая лучшая;

Подарок: должен понравиться.

Для объяснения быстрого понимания человеком ситуации, представляемой сценарием, в работе Р.Шенка, Р.Абельсона(l975) предлагается отождествлять терминалы фрейма-сценария с наиболее характерными вопросами, обычно связанными с этой ситуаций. Ответы на эти вопросы полезно получить для понимания данной ситуации. По существу фрейм-сценарий в этом случае является собранием вопросов, которые необходимо задать относительно некоторой гипотетической ситуации, и способов ответа на них.

Для фрейма-сценария - дня рождения ребенка в число таких вопросов войдут следующие:

Что должны надеть гости?

Выбран ли подарок для ребенка?

Понравится ли ему подарок?

Где купить подарок?

Где достать денег? и т. д.

Для того чтобы попять действие, о котором рассказывается или которое наблюдается, человек часто вынужден задать такие вопросы:

"Кто осуществляет действие (агент)?",

"Какова цель действия (намерение)?",

"Каковы последствия (эффект)?",

"На кого это действие влияет (получатель)?",

"Каким образом оно произведено (инструмент)?".

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT