Здавалка
Главная | Обратная связь

Представление 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 Все права принадлежат авторам размещенных материалов.