Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Исполняемые утверждения БЗ



Основу исполняемых утверждений БЗ составляют правила и процедуры. Кроме того, есть формулы, функции, действия и т.п. Правила в G2 имеют традиционный вид: условие (антецедент) и заключение (консеквент). Кроме if-правила: условие ("if <логическое выражение>") и заключение ("then <действия>") используются еще 4 типа правил: initially, unconditionally, when и whenever.

Способы применения каждого правила определяются его синтаксисом:

<правило>::= {\<префикс for>\

{<правило if> | <правило unconditional1у>

\ <правило when> | <правило whenever>]

\ <правило initially>]

<префикс fоr>::= for {any | the } <item>...

<правило if>::= if <логическое выражение> then <список действий> <правило unconditionally>::= unconditionally <список действий>

<правило when>::= when <логическое выражение>

then <список действий>

<правило whenever>::= whenever <описание события>

|ог <описание события>\

|and when < логическое выражение>\

<правило initially>::= initially

|if <логическое выражение> then <список действий>

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

- минимизируется избыточность БЗ;

- упрощается наполнение БЗ и ее сопровождение;

- минимизируются ошибки при отладке БЗ;

- способствует повторной используемости знаний (так как общие правила запоминаются в библиотеке G2 и могут использоваться в подобных приложениях).

Несмотря на то, что продукционные правила обеспечивают достаточную гибкость для описания реакций системы на изменения окружающего мира, в некоторых случаях, когда необходимо выполнить жесткую последовательность действий (например, запуск или остановку комплекса оборудования), более предпочтительным является процедурный подход. Язык программирования, используемый в G2 для представления процедурных знаний, является достаточно близким родственником Паскаля. Кроме стандартных управляющих конструкций язык расширен элементами, учитывающими работу процедуры в реальном времени: ожидание наступления событий, разрешение другим задачам прерывать выполнение данной процедуры, директивы, задающие последовательное или параллельное выполнение операторов. Еще одна интересная особенность языка- итераторы, позволяющие организовать цикл над множеством экземпляров класса. Перечисленные свойства языка позволяют системе одновременно выполнять множество различных процедур или множество копий одной и той же процедуры для множества различных объектов.





Дата публикования: 2014-11-18; Прочитано: 186 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...