Метод представления сетей вывода в реляционных СУБД
В настоящем контексте под семантической сетью понимается граф, содержащий, по определению, три типа вершин: * импликативные; * предикативные (дизъюнктивные или конъюнктивные в частном случае); * терминальные. Вершина называется импликативной, если она соответствует заключению импликации и все исходящие из нее связи являются отдельными импликациями в поддержку одного заключения. Вершина называется предикативной, если она соответствует предикату и все члены ее семьи являются термами (аргументами) этого предиката и все исходящие из нее связи ведут к вершинам, соответствующим термам этого предиката. Вершина называется терминальной, если она не имеет исходящих из нее дуг. Она соответствует атрибуту, значение которого либо берется из базы данных, либо запрашивается системой извне. Если обозначить импликативную вершину квадратом, предикативную - кружком, а терминальную треугольником, а любую из них - ромбом, то можно провести аналогии между правилами на языке Пролог и элементами сети следующим образом:
1. Простая импликация с if (e) then (c)
е
2.Импликация с конъюнкцией AND C
“and” if (e1 and e2) then c
e1 e2 3. Импликация с дизъюнкцией OR C
OR
if (e1 or e2) then (c)
e1 e2 4. Импликация с отрицанием NOT c
NOT e2 if ((not e1) or e2) then c
e1
5. Несколько правил в поддержку одного заключения. C
AND e3 if (e1 and e2) then (c) if (e3) then (c)
e1 e2
6. Одно свидетельство, используемое в двух правилах. C1 C2
NOT AND if (not e1) then (c1) if (e1 and e2) then (c2)
e1 e2 Замечание. Следует обратить внимание, что во всех изображённых сетевых фрагментах связи между вершинами являются чисто иерархическими и не несут ни какой другой семантической нагрузки. Используя вышеприведенные соглашения по графическому изображению сети вывода, в качестве примера построим семантическую сеть для следующих правил: Если (е1), то (с1) C5 Если (е2), то (с2) Если (е3), то (с2) Если (е4), то (с3) or Если (не е5), то (с3) Если (с2 и с3), то (с4) Если (с1 или с4), то (с5) C1 C4 e1 and
C2 C3
e4 not
e2 e3 e5
Алгоритмы вывода по семантической сети основываются на нижеследующих правилах. 1. Посещение терминальной вершины в процессе обхода сети называется успешным, если ассоциированная с этой вершиной процедура возвращает значение “истина”. 2. Посещение в процессе обхода сети предикативной вершины является успешным, если обход дерева с корнем в этой вершине является успешным и процедура, ассоциированная с этой вершиной возвращает значение “истина”. 3. Посещение в процессе обхода сети импликативной вершины является успешным если посещение хотя бы одной ее нижележащей вершины явилось успешным. 4. Импликация имеет место, если посещение соответствующей ей вершины оказалось успешным. В настоящем контексте сеть вывода рассматривается и представляется на логическом уровне как структура, состоящая из элементов, связанных только иерархическим отношением в виде упорядоченных пар, условно называемых: “ сын - отец ” или, на производственном жаргоне, - “что - куда”. С каждой вершиной ассоциируется определенное данное, из реляционной или классификационной компоненты системы или символ операции, собственное уникальное имя вершины, а также семантика в форме общего имени. Таким образом, традиционная база правил отображается на семантическую сеть, которая, в свою очередь, представляется в системе в форме определенным образом структурированных и интерпретируемых данных. Алгоритмы вывода над такой семантической сетью рассматриваются в следующем разделе на примере информационно –логических таблиц.
|