Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СИИ.doc
Скачиваний:
104
Добавлен:
02.05.2014
Размер:
3.54 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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