Методы и алгоритмы трансляции естественно-языковых запросов к базе данных в SQL-запросы. Найханова Л.В - 75 стр.

UptoLike

75
таблицами
i
g
~
и
j
g
~
, а новый функциональный предикат (P
f
(t
in
(
i
g
~
), y
3
, f
29
) позволяет
определить таблицу y
3
, имеющую прямую связь с таблицей
i
g
~
. Тогда первой ситуации
будет соответствовать продукция pr
21
Tr
=<q
21
Tr
, r
21
Tr
>, где:
q
21
Tr
= P
par
(τ
i
, t(x
i1
, l
1
), t(x
i2
, l
2
), t(x
i3
, l
3
), t(x
i4
, l
4
) , t(x
i5
, Null))
P
par
(τ
j
, t(x
j1
, l
5
), t(x
j2
, l
6
),
t(x
j3
, l
7
), t(x
j4
, l
8
) , t(x
i5
, Null)) P
E
(x
i1
, 1)
P
E
(x
j1
, 1)
((P
f
(t
in
(
i
g
~
), y
1
, f
27
) P
f
(t
in
(y
1
,
j
g
~
), y
2
,
f
28
) )( P
f
(t
in
(
j
g
~
), y
1
, f
27
) P
f
(t
in
(y
1
,
i
g
~
), y
2
, f
28
))
P
E
(y
2
, ложь)
(P
f
(t
in
(
i
g
~
), y
3
, f
29
)
P
S
(t(
ji
gg
~
,
~
), y
2
, t
r
sv
) P
par
(τ
i
, t(x
i1
, l
1
), t(x
i2
, l
2
), t(x
i3
, l
3
), t(x
i4
, l
4
), t(x
i5
, 1));
r
21
Tr
= add[(
1
~
i
g
)
P
par
(τ
i1
, t(x
i1
, 1),t(x
i2
, l
2
),t(x
i3
, l
3
),t(x
i4
, 1),t(x
i5
, 1))].
Программа r
21
Tr
посредством операции разбиения дуги
ji
gg
~
,
~
добавляет между
вершинами
i
g
~
и
j
g
~
новую вершину
1
~
i
g
и приписывает ей вектор τ
i1
, в котором указывает,
что
1
~
i
g
является добавленной таблицей (x
i4
=1). Это порождает новые дуги
1
~
,
~
ii
gg и
ji
gg
~
,
~
1
,
для идентификации которых осуществляется переход на доказательство первой гипотезы.
Второй и третьей ситуациям соответствует продукция pr
22
Tr
=<q
22
Tr
, r
22
Tr
>:
q
22
Tr
= P
par
(τ
i
, t(x
i1
, l
1
), t(x
i2
, l
2
), t(x
i3
, l
3
), t(x
i4
, l
4
) , t(x
i5
, Null))
P
par
(τ
j
, t(x
j1
, l
5
), t(x
j2
, l
6
),
t(x
j3
, l
7
), t(x
j4
, l
8
) , t(x
i5
, Null)) P
E
(x
i1
, 1)
P
E
(x
j1
, 2)
((P
f
(t
in
(
i
g
~
), y
1
, f
27
) P
f
(t
in
(y
1
, x
j2
), y
2
,
f
28
))(P
f
(t
in
(x
j2
), y
1
, f
27
) P
f
(t
in
(y
1
,
i
g
~
), y
2
, f
28
))
P
E
(y
2
, ложь)
(P
f
(t
in
(
i
g
~
), y
3
, f
29
)
P
S
(t(
j2
x,
~
i
g
), y
2
, t
r
sv
)
P
par
(τ
i
, t(x
i1
, l
1
), t(x
i2
, l
2
), t(x
i3
, l
3
), t(x
i4
, l
4
), t(x
i5
, 1));
r
22
Tr
= add[(
1
~
i
g
)
P
par
(τ
i1
, t(x
i1
, 1),t(x
i2
, l
2
),t(x
i3
, l
3
),t(x
i4
, 1),t(x
i5
, 1))].
Таким образом, строится транзитивное замыкание посредством поиска связи между
таблицами в графе Е. Если доказательство ситуаций успешно, то осуществляется переход
на доказательство первой гипотезы и так далее, пока не произойдет транзитивное
замыкание, т.е. последняя дабавленная вершина в граф
G будет иметь прямую связь с j-
ой вершиной графа
G
~
, при этом ни одна из ситуаций второй гипотезы не будет успешно
доказана.
3.3.2. Алгоритм доказательства гипотез
Для доказательства сформируем формулу
0
dΓ , где
0
d - входная ситуация. Ситуация
d
0
для обеих гипотез формируется одинаково на основе анализа элементов векторов
τ
i
и
τ
j
и
терминов физической модели данных, расположенных в рассматриваемых смежных
вершинах графа
G
~
. Для первой ситуации у векторов
τ
i
и
τ
j
элементы должны иметь
следующие значения:
- х
i1
имеет значение «1»;
- х
j1
имеет значение «1»;
- остальные элементы векторов
τ
i
и
τ
j
имеют значение null.
Для второй ситуации элементы векторов
τ
i
и
τ
j
должны иметь следующие значения:
- х
i1
имеет значение «1»;
- х
j1
имеет значение «2»;
- х
j2
имеет значение у, где уидентификатор таблицы, содержащей идентификатор
столбца, расположенного в j-той вершине;
- остальные элементы векторов
τ
i
и
τ
j
имеют значение null.
таблицами g~i и g~ j , а новый функциональный предикат (Pf(tin( g~i ), y3, f29) позволяет
определить таблицу y , имеющую прямую связь с таблицей g~ . Тогда первой ситуации
                                        3                                                                                              i
                                                                        Tr                    Tr         Tr
будет соответствовать продукция pr21 =, где:
        q21Tr = Ppar(τi, t(xi1, l1), t(xi2, l2), t(xi3, l3), t(xi4, l4) , t(xi5, Null)) ∧ Ppar(τj, t(xj1, l5), t(xj2, l6),
t(xj3, l7), t(xj4, l8) , t(xi5, Null)) ∧ PE(xi1, 1) ∧ PE(xj1, 1) ∧ ((Pf(tin( g~i ), y1, f27) ∧ Pf(tin(y1, g~ j ), y2,
f ) )∨( P (t ( g~ ), y , f ) ∧ P (t (y , g~ ), y , f )) ∧ P (y , ложь) ∧ (P (t ( g~ ), y , f ) ↔
28            f in    j            1        27          f in    1            i            2        28                 E       2             f in       i   3   29

PS(t( g~i , g~ j ), y2, trsv) ∧ Ppar(τi, t(xi1, l1), t(xi2, l2), t(xi3, l3), t(xi4, l4), t(xi5, 1));
       r Tr = add[( g~ ′ ) ∧ P (τ , t(x , 1),t(x , l ),t(x , l ),t(x , 1),t(x , 1))].
         21                   i1             par   i1      i1                    i2       2         i3        3       i4          i5

      Программа r21 посредством операции разбиения дуги g~i , g~ j добавляет между
                                   Tr


вершинами g~i и g~ j новую вершину g~i′1 и приписывает ей вектор τi1, в котором указывает,
что g~i′1 является добавленной таблицей (xi4=1). Это порождает новые дуги g~i , g~i1 и g~i1 , g~ j ,
для идентификации которых осуществляется переход на доказательство первой гипотезы.
        Второй и третьей ситуациям соответствует продукция pr22Tr=:
        q22Tr = Ppar(τi, t(xi1, l1), t(xi2, l2), t(xi3, l3), t(xi4, l4) , t(xi5, Null)) ∧ Ppar(τj, t(xj1, l5), t(xj2, l6),
t(xj3, l7), t(xj4, l8) , t(xi5, Null)) ∧ PE(xi1, 1) ∧ PE(xj1, 2) ∧ ((Pf(tin( g~i ), y1, f27) ∧ Pf(tin(y1, xj2), y2,
f ))∨(P (t (x ), y , f ) ∧ P (t (y , g~ ), y , f )) ∧ P (y , ложь) ∧ (P (t ( g~ ), y , f ) ↔
28        f in   j2       1        27              f in   1         i                 2       28                  E       2                f in    i       3   29

PS(t( g~i , x j2 ), y2, trsv) ∧ Ppar(τi, t(xi1, l1), t(xi2, l2), t(xi3, l3), t(xi4, l4), t(xi5, 1));
       r Tr = add[( g~ ′ ) ∧ P (τ , t(x , 1),t(x , l ),t(x , l ),t(x , 1),t(x , 1))].
         22                   i1             par   i1      i1                    i2       2         i3    3           i4          i5

     Таким образом, строится транзитивное замыкание посредством поиска связи между
таблицами в графе Е. Если доказательство ситуаций успешно, то осуществляется переход
на доказательство первой гипотезы и так далее, пока не произойдет транзитивное
замыкание, т.е. последняя дабавленная вершина в граф G будет иметь прямую связь с j-
                     ~
ой вершиной графа G , при этом ни одна из ситуаций второй гипотезы не будет успешно
доказана.
3.3.2. Алгоритм доказательства гипотез
       Для доказательства сформируем формулу Γ ∧ d0 , где d 0 - входная ситуация. Ситуация
d0 для обеих гипотез формируется одинаково на основе анализа элементов векторов τi и τj и
терминов физической модели данных, расположенных в рассматриваемых смежных
                  ~
вершинах графа G . Для первой ситуации у векторов τi и τj элементы должны иметь
следующие значения:
      - хi1 имеет значение «1»;
      - хj1 имеет значение «1»;
      - остальные элементы векторов τi и τj имеют значение null.
      Для второй ситуации элементы векторов τi и τj должны иметь следующие значения:
      - хi1 имеет значение «1»;
      - хj1 имеет значение «2»;
      - хj2 имеет значение у, где у – идентификатор таблицы, содержащей идентификатор
столбца, расположенного в j-той вершине;
      - остальные элементы векторов τi и τj имеют значение null.

                                                                                              75