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

UptoLike

72
тогда и только тогда, когда имеет место закономерность, описываемая конъюнкцией
следующих фактов:
- вершина
i
g
~
имеет вектор η
i
- P
par
(η
i
, t(z
1
, y
1
), t(z
2
, y
2
), t(z
3
, y
3
));
- z
2
имеет значение «2» - P
E
(y
2
, 2).
Тогда элементы продукции pr
15
Tr
записываются в виде:
q
15
Tr
= P
par
(η
i
, t(z
1
, y
1
), t(z
2
, y
2
), t(z
3
, y
3
))
P
E
(y
2
, 2) ),,
~
(
r
tris
tygP P
par
(τ
i
, t(x
i1
, y
5
), t(x
i2
,
y
6
), t(x
i3
, y
7
), t(x
i4
, Null), t(x
i5
, Null));
r
15
Tr
= add[(
i
g
~
, y) P
par
(τ
i
, t(x
i1
, 1), t(x
i2
, Null), t(x
i3
, Null), t(x
i4
, Null) , t(x
i5
, Null))].
Второй ситуации соответствует продукция pr
16
Tr
=<q
16
Tr
, r
16
Tr
>, где
q
16
Tr
= P
par
(η
i
, t(z
1
, y
1
), t(z
2
, y
2
), t(z
3
, y
3
))
P
E
(y
2
, 1)
P
f
(t
in
(
i
g
~
), y
4
, f
25
) ),,
~
(
r
tris
tygP
P
par
(τ
i
, t(x
i1
,), t(x
i2
, y
6
), t(x
i3
, y
7
), t(x
i4
, Null) , t(x
i5
, Null)), где P
f
(t
in
(
i
g
~
), y
4
, f
25
) –
функциональный предикат, в котором f
25
ссылка на процедуру F
25
, возвращающую в
переменной y
4
имя таблицы атрибута
i
g
~
;
r
16
Tr
= add[(
i
g
~
, y) P
par
(τ
i
, t(x
i1
, 2), t(x
i2
, y
4
), t(x
i3
, Null), t(x
i4
, Null) , t(x
i5
, Null))].
Третьей ситуации соответствует продукция pr
17
Tr
=<q
17
Tr
, r
17
Tr
>, где
q
17
Tr
= P
par
(η
i
, t(z
1
, y
1
), t(z
2
, y
2
), t(z
3
, y
3
))
(P
E
(y
2
, 3) P
E
(y
2
, 4) P
E
(y
2
, 5)) P
par
(τ
i
, t(x
i1
,
y
5
), t(x
i2
, y
6
), t(x
i3
, y
7
), t(x
i4
, Null) , t(x
i5
, Null));
r
17
Tr
= add[P
par
(τ
i
, t(x
i1
, 3), t(x
i2
, Null), t(x
i3
, Null), t(x
i4
, Null) , t(x
i5
, Null))].
Четвертой ситуации соответствует продукция pr
18
Tr
=<q
18
Tr
, r
18
Tr
>, где
q
18
Tr
= P
par
(η
i
, t(z
1
, y
1
), t(z
2
, y
2
), t(z
3
, y
3
))
P
E
(z
2
, 6)
P
f
(t
in
(
i
g
~
), y
4
, f
26
) P
f
(t
in
(y
4
), y
5
,
f
25
) P
par
(τ
i
, t(x
i1
, y
5
), t(x
i2
, y
6
), t(x
i3
, y
7
), t(x
i4
, Null) , t(x
i5
, Null)), где P
f
(t
in
(
i
g
~
), y
4
, f
26
) –
функциональный предикат, в котором f
26
ссылка на процедуру F
26
, возвращающую в
переменной yпонятие, расположенное в предыдущей вершине
1
~
i
g ;
r
18
Tr
= add[P
par
(τ
i
, t(x
i1
, 4), t(x
i2
, y
5
), t(x
i3
, y
4
), t(x
i4
, Null) , t(x
i5
, Null))].
Выполнение данных продукций позволит сформировать граф зависимостей
G
~
,
вершины которого являются терминами физической модели данных.
3.3. Формирование SQL-запроса или построение преобразования
4
Ψ
Для построения Ψ
4
необходимо выполнить преобразования: QGG →→
Ψ
Ψ
44
~
, где
G
~
- граф зависимостей в терминах физической модели данных, G - граф SQL-запроса, Q -
SQL-запрос в виде команды SELECT.
Представление решения задачи как анализ возможных ситуаций предполагает
построение и доказательство гипотез о том, какие ситуации могут быть описаны графом
G
~
.
Полнота множества гипотез определяется сложностью связей вершин (таблиц,
расположенных в вершинах графа) между собой. Сложность связей вершин зависит от
взаимосвязей таблиц в модели данных. Таким образом, мы имеем граф
G
~
, отображающий
запрос пользователя, к каждой вершине которого приписан вектор
τ
, а также граф
Ε
,
отображающий модель данных. Граф
G
~
задан множеством вершин g
~
и множеством дуг
{(
ji
gg
~
,
~
)|
Ggg
ji
~
~
,
~
}. Граф
Ε
задан множеством предикатов
par
P
, описывающих физическую
модель данных. Тогда необходимо рассмотреть две гипотезы, связанные с типом
взаимосвязи пары смежных вершин графа
G
~
и соответствующих вершин графа Е:
тогда и только тогда, когда имеет место закономерность, описываемая конъюнкцией
следующих фактов:
     - вершина g~i′ имеет вектор ηi - Ppar(ηi, t(z1, y1), t(z2, y2), t(z3, y3));
       - z2 имеет значение «2» - PE(y2, 2).
       Тогда элементы продукции pr15Tr записываются в виде:
       q15Tr = Ppar(ηi, t(z1, y1), t(z2, y2), t(z3, y3)) ∧ PE(y2, 2) ↔ Ps ( g~i , y, t trr ) ∧ Ppar(τi, t(xi1, y5), t(xi2,
y6), t(xi3, y7), t(xi4, Null), t(xi5, Null));
       r15Tr = add[( g~i′ , y) ∧ Ppar(τi, t(xi1, 1), t(xi2, Null), t(xi3, Null), t(xi4, Null) , t(xi5, Null))].
     Второй ситуации соответствует продукция pr16Tr =, где
     q16Tr = Ppar(ηi, t(z1, y1), t(z2, y2), t(z3, y3)) ∧ PE(y2, 1) ∧ Pf(tin( g~i′ ), y4, f25) ↔ Ps ( g~i , y, t trr )
∧ Ppar(τi, t(xi1,), t(xi2, y6), t(xi3, y7), t(xi4, Null) , t(xi5, Null)), где Pf(tin( g~i′ ), y4, f25) –
функциональный предикат, в котором f25 – ссылка на процедуру F25, возвращающую в
переменной y4 – имя таблицы атрибута g~i′ ;
          r16Tr = add[( g~i′ , y) ∧ Ppar(τi, t(xi1, 2), t(xi2, y4), t(xi3, Null), t(xi4, Null) , t(xi5, Null))].
       Третьей ситуации соответствует продукция pr17Tr =, где
       q17Tr = Ppar(ηi, t(z1, y1), t(z2, y2), t(z3, y3)) ∧ (PE(y2, 3)∨ PE(y2, 4)∨ PE(y2, 5)) ↔ Ppar(τi, t(xi1,
y5), t(xi2, y6), t(xi3, y7), t(xi4, Null) , t(xi5, Null));
       r17Tr = add[Ppar(τi, t(xi1, 3), t(xi2, Null), t(xi3, Null), t(xi4, Null) , t(xi5, Null))].
       Четвертой ситуации соответствует продукция pr18Tr =, где
       q18Tr = Ppar(ηi, t(z1, y1), t(z2, y2), t(z3, y3)) ∧ PE(z2, 6) ∧ Pf(tin( g~i′ ), y4, f26) ∧ Pf(tin(y4), y5,
f ) ↔ P (τ , t(x , y ), t(x , y ), t(x , y ), t(x , Null) , t(x , Null)), где P (t ( g~ ′ ), y , f ) –
25         par   i    i1   5       i2   6      i3   7       i4               i5                   f in   i     4   26

функциональный предикат, в котором f26 – ссылка на процедуру F26, возвращающую в
переменной y – понятие, расположенное в предыдущей вершине g~i′−1 ;
    r18Tr = add[Ppar(τi, t(xi1, 4), t(xi2, y5), t(xi3, y4), t(xi4, Null) , t(xi5, Null))].
                                                                                           ~
    Выполнение данных продукций позволит сформировать граф зависимостей G ,
вершины которого являются терминами физической модели данных.
3.3. Формирование SQL-запроса или построение преобразования                                         Ψ4
                                                                 Ψ′4   Ψ4′′                ~
       Для построения Ψ4 необходимо выполнить преобразования: G      → Q , где
                                                                 → G 
~
G - граф зависимостей в терминах физической модели данных, G - граф SQL-запроса, Q -
SQL-запрос в виде команды SELECT.
     Представление решения задачи как анализ возможных ситуаций предполагает
                                                                                    ~
построение и доказательство гипотез о том, какие ситуации могут быть описаны графом G .
Полнота множества гипотез определяется сложностью связей вершин (таблиц,
расположенных в вершинах графа) между собой. Сложность связей вершин зависит от
                                                                      ~
взаимосвязей таблиц в модели данных. Таким образом, мы имеем граф G , отображающий
запрос пользователя, к каждой вершине которого приписан вектор τ, а также граф Ε,
                                       ~
отображающий модель данных. Граф G задан множеством вершин g~ и множеством дуг
                              ~
{( g~i , g~ j )| g~i , g~ j ∈ G }. Граф Ε задан множеством предикатов Ppar , описывающих физическую
модель данных. Тогда необходимо рассмотреть две гипотезы, связанные с типом
                                      ~
взаимосвязи пары смежных вершин графа G и соответствующих вершин графа Е:
                                                           72