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

Лингвистическая деятельность человека требует от него использования образований более крупных, чем те, которые могут быть описаны с помощью грамматических правил, а это в еще большей степени затрудняет понимание вопросов, связанных с разграничением синтаксиса и семантики. Рассмотрим следующую басню (У.Чейф, 1972):

"Жили-были волк и ягненок. Однажды увидел волк, что ягненок пьет воду из реки, и появилось у него желание съесть ягненка. Решил он найти себе хоть какое-то оправдание и, несмотря на то, что сам находился выше по течению, обвинил ягненка в том, что тот взбалтывает воду и не дает ему пить…"

Чтобы понять этот отрывок, надо ясно представить себе, что волк лжет! Чтобы понять ключевую фразу "несмотря на то, что...", надо знать, что жидкость не может двигаться вверх по течению, а это, в свою очередь, требует от нас понимания самих слов "вверх по течению". В рамках декларативной, основанной на исчислении предикатов логической системы фразу "выше по течению" можно задать в виде некоторой формулы, например:

[А находится выше по течению, чем В] \/ [Событие Т.B А поток мутный] => [Существует [Событие U.В В поток мутный]] /\ [U позже Т].

Однако более полное определение было бы гораздо сложнее. Например, как записать тот факт, что потоки воды, перемещая какие-либо предметы, обычно не изменяют их расположения относительно друг друга? Логик мог бы попытаться доказать его, исходя из достаточно сложной совокупности "локальных" аксиом и соответствующих правил индуктивного вывода. Представим эти знания с помощью особой структуры данных, которая автоматически переориентирует связи пространственных описаний с терминалов одного фрейма на терминалы другого в рамках одной и той же системы фреймов. И хотя это может рассматриваться как некоторый вид логики, здесь используются определенные механизмы такие же, как и для пространственного мышления.

Во многих случаях нам приходится иметь дело с изменяющимися во времени ситуациями или причинно следственными отношениями. Так, концепции "течение реки" может соответствовать система фреймов, аналогичная той, что показана на рис.2-1, где S1, S2 и S3 обозначают отдельные абстрактные участки реки. Если волк в соответствии с ранее рассмотренной схемой находится слева, а ягненок от него - справа, то S1, S2 и S3 "двигаются" мимо них также слева направо. Наше воображение именно так представляет себе эту картину, а для ее изменения требуются некоторые умственные усилия. Допустим, что участки реки S1, S2 или S3 видны только тогда, когда они располагаются прямо против волка или ягненка. Если последний взбалтывал воду на участке S3, то система фреймов укажет на то, что, поскольку этот участок перестанет быть видимым и не будет находиться вблизи волка, его претензии к ягненку безосновательны. Более подробная система могла бы иметь промежуточные фреймы, но ни для одного из них участок реки возле волка не был бы загрязнен.

Существует еще много нюансов, в которых следует разобраться. Что означает слово "взбалтывал" и почему это мешало волку пить? В обычных условиях с помощью элементов S могут быть представлены просто какие-то плавающие предметы, однако здесь S3 взаимодействует со словом "взбалтывал" и в результате получается нечто противоречащее действию "пить". Или такой вопрос: было ли доказано, что взбалтывание воды в реке обусловливает присутствие грязи в воде на участке S3, или же это указывается в одном из заранее заготовленных значений данного действия?

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

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

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

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

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

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

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT