Язык управления выбором данных

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

Традиционным способом задания стратегии обработки является фик­сация типов данных и программирование "вручную" способа их обра­ботки. Такое управление данными называют встроенным. Например, в различных версиях лингвистических процессоров использова­лись разнообразные встроенные порядки обработки строк: слева направо, справа налево, с возвратом на начало строки, без возврата и их комби­нации. Если над обрабатываемыми данными зафиксировано отношение частичного порядка, то примером могут служить переборы в глубину и в ширину.

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

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

Неформально язык управления данными аналогичен языку управле­ния применением продукций и состоит в следующем.

Для каждого текущего состояния базы данных dr шага вывода r за­дается подмножество данных , на которых (и только на них) в текущий момент вывода проверяются условия применимости активиро­ванных продукций. Такие будем называть активированными данны­ми. Поскольку данные в процессе вывода изменяются (добавляются но­вые и, возможно, исключаются старые факты), то описать множества статически до начала вывода невозможно, в связи, с чем необходимы средства динамического задания множеств .

Будем определять управление данными по некоторому выделен­ному отношению f0 Î F над термами, которое задает структуру M(dr, f0)Í dr зависящую от текущего состояния dr и f0. В этой структуре между элементами определяется как минимальная длина пути между ними, а пара (центр, радиус), где центр — произвольный элемент структуры, радиус — натуральное число, задает в этой струк­туре окрестность поиска, содержащую в себе все элементы структуры, расстояние до которых от центра не больше радиуса окрестности. Мно­жество активированных данных составляют те факты из текущего dr,в которые входят термы, принадлежащие окрестности поиска. Окрест­ность поиска называют иногда "окном активации".

Центр и радиус текущей окрестности могут быть заданы явно (точ­ным указанием) либо вычисляться через центр и радиус окрестности, определенные над структурой предыдущего шага вывода. В результате применения продукций формируется dr+1 состояние базы, которое полу­чается из dr добавлением или вычеркиванием некоторых фактов.

Рассмотрим вывод в окрестности на некотором произвольном шаге т. Пусть dr текущее состояние базы данных, Wr — окрестность поиска шага вывода r. Если окрестность не пуста, то в ней проверяются условия применимости активированных продукций шага вывода r. Продукции с истинными условиями применяются, что приводит к состоянию dr+1. Если dr+1 содержит специальный выделенный символ неудачного выво­да l, то вывод "зависает". В противном случае и тогда, когда текущая окрестность поиска пуста, происходит формирование Wr+1 окрестности поиска, центр и радиус которой вычисляются через соответствующие компоненты Wr, а активированные данные берутся из текущего dr+1 со­стояния базы данных. Если Wr+1 содержит специальный выделенный символ конца, то происходит остановка, означающая конец описания стратегии, а полученное состояние базы данных содержит результат, выводимый продукциями из заданного начального состояния по фикси­рованному порядку обработки данных.

Описанные выше языки управления выводом предназначены для двух основных целей. С одной стороны, они являются достаточно простым и лаконичным средством определения требований и спецификации логики поведения систем продукций, с другой — это точки настройки в про­граммных реализациях, дающие основу для построения технологическо­го пакета систем продукций. В рамках этого пакета каждая из точек настройки интерпретируется соответствующим механизмом (особенно на этапе отладки системы), а наиболее часто встречающиеся дисципли­ны применения продукций и порядки обработки данных встраиваются в технологический пакет в виде стандартных модулей. Спецификация со­ответствующей формулы вызывает эти модули и собирает необходимую конфигурацию.








Дата добавления: 2016-03-05; просмотров: 594;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.