3.2. Сопоставление образцов

3.2. Сопоставление образцов

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

Данная проблема может быть сформулирована следующим образом: допустим, что Е есть штраф за потерю одного полностью согласованного терминала, а F — потери от того, что какой-то другой терминал не может конкретизировать свои задания. Тогда, если Е больше F, то любой новый фрейм должен сохранять старый субфрейм. При наличии какой-либо приоритетности среди терминалов типичный запрос на вызов нового фрейма должен включать:

1. Поиск фрейма с возможно большим числом терминалов, общих с конкретизированными терминалами (a, b,… z) старого фрейма и расположенных в порядке убывания их приоритетности.

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

2. Поиск или создание нового фрейма, обладающего свойствами (a, b,…, z).

В том случае, когда мы в большей степени подчеркиваем различия, а не их общие характеристики, можно объединить оба правила в одно:

3. Поиск нового фрейма, во всем подобного старому фрейму, за исключением различий (a, b, …, z) между ними.

Реализация правил 1 и 2 может быть выполнена с помощью процесса поиска в памяти с параллельной выборкой или хаш-кодированием (метод функции расстановки), если терминалы или свойства (a, b , ..., z) — простые атомарные понятия. (В любом случае должен существовать какой-то механизм для поддержания работы генерирующих программ или для одного из видов сопоставления образцов). К сожалению, для осуществления всего этого имеется так много различных способов, что нельзя указать на какие-нибудь характерные для данных целей требования к конструктивным особенностям этих механизмов.

Хотя правила 1 и 2 формально являются частными случаями правила 3, на практике они различны, поскольку для работы со сложным правилом 3 требуются знания о том, каковы же эти различия (a, b, ..., z). Действительно, последнее правило слишком сложно, чтобы его можно было использовать по той схеме, как это предполагалось выше: я приведу доводы в пользу того, что следует в большей степени полагаться на особые, выявленные в процессе обучения различия между парами фреймов, чем на общие принципы.

Нужно еще раз подчеркнуть, что оснований считать реальной возможность быстрого достижения успеха практически нет. Для решения новых и трудных задач необходимо построить новую структуру представления, а это потребует применения как общих, так и специальных знаний. Работа П.Фримэна и А.Ньюэлла(1971), в которой рассматривается проблема конструирования структур, дополняет данную работу в одном важном направлении. В ней рассматривается вопрос о том, каким образом следует создавать структуры, удовлетворяющие наборам функциональных требований, т. е. условиям, связанным с достижением целей, в дополнение к тем требованиям, которые определяются необходимостью использования определенных субфреймов и символов.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Создание образцов выбора

Из книги автора

Создание образцов выбора Как вы могли ожидать, исходя из того, что "child::MASS" можно представить в виде "MASS" и применения шаблонов, таких как "/", "/PLANETS" и т.д., вплотную познакомиться с созданием образцов выбора не так-то просто — этому посвящена вся глава 4.Образцы выбора (match pattern)


Глава 4 Создание образцов выбора

Из книги автора

Глава 4 Создание образцов выбора До сих пор материал книги был достаточно очевиден, за исключением одного: несколько загадочных образцов выбора (match pattern). Мы работали с различными образцами выбора, такими как «/PLANETS» в элементах <xsl:template>, не предлагая систематического


Ячейки образцов материалов

Из книги автора

Ячейки образцов материалов По умолчанию при работе над новой сценой Material Editor (Редактор материалов) показывает шесть ячеек с образцами материалов. Щелчок на ячейке активизирует ее и изменяет цвет ее границы на белый. Если ячейка образца содержит материал, который


R.13.1 Сопоставление описаний

Из книги автора

R.13.1 Сопоставление описаний Два описания функций с одинаковыми именами относятся к одной и той же функции, если они находятся в одной области видимости и имеют идентичные типы параметров (§R.13). Функция-член производного класса относится к иной области видимости, чем


R.13.2 Сопоставление параметров

Из книги автора

R.13.2 Сопоставление параметров При вызове функции с данным именем происходит выбор из всех функций с этим именем, которые находятся в текущей области видимости, и для которых существуют преобразования типа, делающие вызов возможным. Выбирается та функция, которая


3.14.1. Сопоставление с IP-адресом

Из книги автора

3.14.1. Сопоставление с IP-адресом Пусть мы хотим понять, содержит ли строка допустимый IPv4-адрес. Стандартно он записывается в точечно-десятичной нотации, то есть в виде четырех десятичных чисел, разделенных точками, причем каждое число должно находиться в диапазоне от 0 до


3.14.8. Сопоставление с номером версии

Из книги автора

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


3.14.9. Еще несколько образцов

Из книги автора

3.14.9. Еще несколько образцов Завершим наш список несколькими выражениями из категории «разное». Как обычно, почти все эти задачи можно решить несколькими способами.Пусть нужно распознать двузначный почтовый код американского штата. Проще всего, конечно, взять выражение


Шаг первый – получение образцов почерка

Из книги автора

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


Шаг второй – анализ образцов

Из книги автора

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


Типы образцов Flash

Из книги автора

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


Создание образцов

Из книги автора

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


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

Из книги автора

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


Использование образцов-клипов

Из книги автора

Использование образцов-клипов А теперь давайте сделаем вот что. Запустим воспроизведение созданной нами составной анимации в отдельном окне, выбрав пункт Test Movie меню Control. После этого в окне просмотра фильма отключим пункт-выключатель Loop в меню Control, чтобы убрать