Представление Entity Properties View для правил
Правила можно формировать как на языке ObjectLogic 9так будем делать в лабораторной работе) и отображать с помощью графического редактора, либо формировать в графическом редакторе. Правила дают возможность получить новую информацию, то есть расширить объектную базу. Правила рассматриваются следующим образом: Если посылка правила выполняется, заключение также истинно. Посылка называется телом правила и является логической формулой, содержащей предикаты, которые объединяются с помощью операций OR, NOT, AND, <--, --> и <-->. A -> B в теле правила – это сокращение NOT A OR B, A <- B - сокращение NOT B OR A <-> = сокращение (A->B) AND (B<-A). Переменные в теле правила могут быть снабжены кванторами существования или всеобщности. Заголовок правила отделяется от телв правила символом <- и каждое правило заканчивается точкой. Правила используют переменные для передачи информации между подцелями и заголовком. Предположим, что в бъектной базе определены отношения friend и owner для некоторых Person. Правила вычисляют рефлексивное определение friend и определяют новое правило для возможного водителя, основанного на фактах friend- и owner-. ?X[friend->?Y] :- ?Y:Person[friend->?X]. ?X[driver->?Y] :- ?X:Vehicle[owner->?Y]. ?X[driver->?Z] :- ?X:Vehicle[owner->?Y] AND ?Y:Person[friend->?Z]. Логическая формула в теле правила может быть с отрицанием. Например, следующее правило определяет для каждой машины ?X всех людей ?Y, которые не могут быть водителями для ?X: ?X[driver->?Y] :- ?X:Car AND ?Y:Person AND NOT ?X[driver -> ?Y]. Кванторы FORALL и EXISTS включают переменные в правила и запросы. Синтаксически переменные подобные ?X или ?Y не отличаются от констант поэтому требуется точное связывание квантором. Всегда важно знать диапазон, то есть время жизни переменой. Для иллюстрации отличий констант и переменных приведем пример, в котором все переменные подчеркнуты, а константы – нет.. FORALL X,Y p(X,Y) <- r(U,Y) AND EXISTS U q(U,Y). FORALL X,Y p(X,Y) <- EXISTS U q(U,Y) AND r(U,Y). FORALL X,Y p(X,Y) <- (EXISTS U q(U,Y)) AND r(U,Y).
p(?X,?Y) :- r(?X,?Y) AND (EXIST ?U q(?U,?Y)). p(?X,?Y) :- (EXIST ?U q(?U,?Y) AND r(?U,?Y)). p(?X,?Y) :- (EXIST ?U q(?U,?Y)) AND r(?U,?Y). Все переменные в правиле или запросе должны иметь оганиченную область действия, то есть для каждой переменной должно выполняться одно или более из следующих условий: 1. Переменная встречается в положительной (без отрицания) части тела правила. 2. Переменная связывается с константой в запросе или правиле. 3. Переменная связывается с выходной переменной встроенного предиката и со всеми входными переменными. Поясним эти условия примерами.
?- p(?X,?Y) AND _add(?X,?Y,?Z). Переменные X и Y связаны, так как они встречаются в предикате p(X,Y) без отрицания. Встроенный предикат _add имеет заголовок {number,number,variable}; это означает, что первые два входные аргумента должны быть связаны с числами и третий может быть переменной и является выходной переменной. Таким образом, Z связана как выходная величина предиката add, а все входные переменные add связаны. ?- p(?X,5). p(?X,?Y) :- q(?X,?Y) AND _add(?X,?Y,?Z) and _add(?Z,?Y,?U). Переменная Y правила связана с константой 5 в запросе. Переменная X связана в предикате q(X) и поэтому Z связана как выходная переменная встроенного предиката add. Следующее правило оределяет всех людей ?X, которые имеют хотя бы одного друга: personWithFriends(?X) :- ?X:Person AND (EXIST ?Y ?X[friend -> ?Y]). Графический редактор правил (GRE) появляется в представлении Entity Properties View – Rules.
Слева расположено несколько текстовых клавиш, которые обеспечивают функциональность GRE. Меню Palette позволяет выбирать новые элементы правила.
· Select активизирует выбор с помощью мыши · Comparison активизирует выбор сравнения (=, <, >, !=, <, >) между двумя понятиями или между понятием и атрибутом · Connections активизирует выбор связи для изображения атрибутов и отношений · New Component Выбор поля, чтобы показать / скрыть функциональность компонент · Attribute valueЗначение атрибута · Predicate Выбор предиката из списка встроенных
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|