1. Trang chủ
  2. » Luận Văn - Báo Cáo

Datalog và cơ sở dữ liệu suy diễn

98 1,3K 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 98
Dung lượng 1,25 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các phương pháp trên xuống còn gọi là suy luận đích hoặc kết xâu lùi có điểm khởi đầu của việc tính toán là từ đích truy vấn và chúng sẽ không tính các sự kiện không thích hợp với câu tr

Trang 2

Vũ Hồng Sơn

DATALOG

CƠ SỞ DỮ LIỆU SUY DIỄN

Ngành: Công nghệ thông tin

Trang 3

MỤC LỤC

LỜI CAM ĐOAN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined.

MỤC LỤC 1

DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT 3

DANH MỤC CÁC HÌNH VẼ 4

MỞ ĐẦU 5

CHƯƠNG 1 KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ CHƯƠNG TRÌNH DATALOG 8

1.1 Ngôn ngữ cấp một (first order language) 8

1.2 Cơ sở dữ liệu suy diễn và chương trình Datalog 9

1.2.1 Cơ sở dữ liệu suy diễn 9

1.2.2 Cú pháp của chương trình Datalog 11

1.2.3 Giả thiết thế giới đóng và các tiếp cận để xác định ngữ nghĩa chương trình Datalog 16

1.2.4 Các thuật toán xác định ngữ nghĩa chương trình Datalog 19

1.3 Chương trình Datalog có chứa phủ định 25

1.3.1 Ngữ nghĩa mô hình hoàn hảo 25

1.3.2 Ngữ nghĩa mô hình bền vững 32

1.4 Kết luận 34

CHƯƠNG 2 TỐI ƯU CÂU TRUY VẤN ĐỐI VỚI CHƯƠNG TRÌNH DATALOG 36 2.1 Định giá câu truy vấn theo kiểu trên xuống (top-down) 36

2.2 Định giá câu truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ 37

2.2.1 Định giá SLD 38

2.2.2 Định giá bảng 40

2.3 Định giá câu truy vấn theo kiểu dưới lên (bottom-up) 45

2.3.1 Thuật toán định giá câu truy vấn theo phương pháp dưới lên 47

2.3.2 Thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh 48

2.4 Định giá câu truy vấn theo cách kết hợp trên xuống và dưới lên 53

2.5 Một số nhận xét so sánh về các phương pháp định giá bảng và ma tập 55

2.6 Kết luận 56

CHƯƠNG 3 PHƯƠNG PHÁP MA TẬP 57

3.1 Phương pháp ma tập 57

3.1.1 Tô điểm 57

3.1.2 Truyền thông tin sang ngang 58

3.1.3 Phép biến đổi ma tập (Magic set transformation) 60

3.1.4 Phương pháp ma tập 61

3.2 Cải tiến phương pháp ma tập trên một số lớp con của chương trình Datalog 62

Trang 4

3.2.1 Phương pháp ma tập cải tiến trên chương trình Datalog tuyên tính phải 62

3.2.2 Phép biến đổi ma tập trên chương trình Datalog không đệ qui 66

3.3 Phương pháp ma tập cải tiến 70

3.3.1 Thuật toán tổ điểm chương trình 71

3.3.2 Tối ưu bước tô điểm chương trình 75

3.3.3 Cải tiến việc thực thi chương trình Mag_Pad 77

3.3.4 Phương pháp ma tập cải tiến 82

3.4 Kết luận 83

KẾT LUẬN 84

TÀI LIỆU THAM KHẢO 85

PHỤ LỤC 88

Trang 5

DANH MỤC CÁC KÝ HIỆU CÁC CHỮ VIẾT TẮT

CSDL: Cơ sở dữ liệu

CWA: Closed World Assumption – Giả thiết thế giới đóng

EDB: Extensionl Database – CSDL Ngoại diên

GCWA: Generalized Closed World Assumption – Giả thiết thế giới đóng tổng quát IDB: Intensionl Database – CSDL Nội hàm

mgu: most general unifier – Hợp nhất tử tổng quát nhất

SCC: Strongly Connect Component – Thành phần liên thông mạnh

Sips: Sideway Information Pausing - Truyền thông tin sang ngang

SLD: Linear Selection resolution for Definite clauses

SLG: Linear Resolution with Selection function for General logic programs

WGCWA: Weak Generalized Closed World Assumption – Giả thiết thế giới đóng yếu tổng quát

Trang 6

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Đồ thị phụ thuộc của chương trình trong ví dụ 1.5 16

Hình 1.2 Cây chứng minh của sự kiện p(a, d) 18

Hình 1.3 Đồ thị phụ thuộc của chương trình trong ví dụ 1.12 28

Hình 1.4 Đồ thị phụ thuộc của chương trình trong ví dụ 1.13 30

Hình 2.1 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.1 39

Hình 2.2 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.2 40

Hình 2.3 Định giá SLG của chương trình P trong ví dụ 2.3 44

Hình 2.4 Đồ thị phụ thuộc của chương trình trong ví dụ 2.5 49

Hình 2.5 Đồ thị phụ thuộc thu gọn của chương trình trong ví dụ 2.5 50

Hình 2.6 Đồ thị phụ thuộc của chương trình trong ví dụ 2.6 52

Hình 3.1 Đồ thị mở rộng của chương trình trong ví dụ 3.5 68

Hình 3.2 Truyền thông tin sang ngang trong ví dụ 3.7 72

Trang 7

MỞ ĐẦU

CSDL suy diễn, một sự mở rộng CSDL quan hệ, không những chỉ có các nguyên tố nền tương ứng với các bộ của các quan hệ trong CSDL quan hệ mà còn có các quy tắc tổng quát (gồm các quy tắc suy diễn và các ràng buộc toàn vẹn) Những quy tắc này tạo thành phần mở rộng So với các hệ CSDL quan hệ, các hệ CSDL suy diễn thừa nhận một kiểu lý thuyết chứng minh, nghĩa là nó được xem xét như một lý thuyết bao gồm một tập các công thức cấp một, còn việc thực hiện một câu truy vấn hoặc làm thoả mãn một ràng buộc toàn vẹn có thể xem như chứng minh một công thức cấp một là hệ quả logic của lý thuyết đã cho

Sức mạnh biểu diễn của CSDL suy diễn là thật sự quan trọng trong nhiều lĩnh vực khác nhau Các ứng dụng tiêu biểu của CSDL bao gồm hệ chuyên gia, hệ hỗ trợ quyết định, phân tích tài chính, phân tích ngôn ngữ, cú pháp Tuy vậy, trong lĩnh vực CSDL suy diễn, mặc dù đã có nhiều kết quả có giá trị nhưng cũng có nhiều vấn đề cần nghiên cứu tiếp, đặc biệt là các vấn đề về ngữ nghĩa của phủ định và tối ưu hoá câu hỏi (truy vấn)

Luận văn nghiên cứu các kỹ thuật tối ưu câu truy vấn trên CSDL suy diễn được viết trong Datalog, là ngôn ngữ chuẩn của CSDL suy diễn Có ba kiểu tiếp cận khác nhau trong việc định giá câu truy vấn: Các phương pháp trên xuống, các phương pháp dưới lên và các phương pháp có sự kết hợp các đặc trưng của phương pháp trên xuống

và dưới lên Các phương pháp trên xuống (còn gọi là suy luận đích hoặc kết xâu lùi) có điểm khởi đầu của việc tính toán là từ đích truy vấn và chúng sẽ không tính các sự kiện không thích hợp với câu truy vấn Tuy nhiên quá trình tính toán có thể kéo dài vô hạn Các phương pháp dưới lên đảm bảo tính kết thúc trong quá trình tìm lời giải của câu truy vấn, nhưng điều này không có nghĩa là nó hiệu quả Chúng thường không định hướng đích, nhiều sự kiện không thích hợp với câu truy vấn cũng được tính Các chiến lược dưới lên không xem xét câu truy vấn trong suốt quá trình định giá, tức là việc tính

Trang 8

toán không được gắn liền với câu truy vấn như thường xảy ra trong các phương pháp trên xuống

Trong thời gian gần đây, một số phương pháp mở rộng để trả lời câu truy vấn được đề xuất nhằm mục đích tạo ra một chiến lược tìm kiếm hướng đích, đồng thời có tính hiệu quả là đảm bảo kết thúc quá trình tính toán câu trả lời truy vấn Điển hình đó

là phép biến đổi ma tập (magic set transformation) và định giá bảng Các phương pháp này được đánh giá là một trong những kỹ thuật tối ưu câu truy vấn có hiệu quả trong CSDL suy diễn Nó đã kết hợp được các ưu điểm của kỹ thuật định giá theo kiểu trên xuống và dưới lên, do đó giảm thiểu được số các sự kiện cần tính và tìm kiếm trên CSDL Ở đây áp dụng hai phương pháp này để xử lý vòng lặp vô hạn trong quá trình định giá câu truy vấn trên chương trình Datalog

Ý tưởng chính của phép biến đổi ma tập là mô phỏng sự lan truyền các trị buộc được tạo ra trong phương pháp định giá câu truy vấn theo kiểu trên xuống Sự lan truyền này nhận được bằng cách viết lại chương trình gốc ban đầu Trong mỗi quy tắc gốc một điều kiện mới được thêm vào để hạn chế việc tính toán trên quy tắc Các điều kiện này được xem là các quan hệ lọc Một quy tắc mới được tạo ra để mô phỏng sự lan truyền các trị buộc

Mặc dầu kỹ thuật ma tập đã được đánh giá là rất hiệu quả nhưng nó chưa hẳn là chiến lược định giá câu truy vấn tốt nhất Trong luận văn này đi sâu vào phân tích một

số hạn chế của phương pháp này và giới thiệu một số cải tiến

Luận văn gồm phần mở đầu, ba chương nội dung, phần kết luận, tài liệu tham khảo và phần phụ lục

Chương 1 trình bày khái quát về CSDL suy diễn và chương trình D atalog Nội dung chính tập trung vào cơ sở lý thuyết của ngôn ngữ cấp một, CSDL suy diễn và chương trình Datalog Hai dạng ngữ nghĩa phổ biến của chương trình logic được thiết

Trang 9

kế lại để áp dụng trên lớp chương trình Datalog có chứa phủ định là ngữ nghĩa mô hình hoàn hảo và ngữ nghĩa mô hình bền vững

Chương 2 trình bày về các cách tiếp cận khác nhau để trả lời câu truy vấn trong CSDL suy diễn Luận văn đã tiến hành thảo luận một cách chi tiết, phân tích làm rõ đặc trưng, ý nghĩa của mỗi cách tiếp cận Các phương pháp nhằm ngăn chặn các vòng lặp

vô hạn khi tìm kiếm lời giải của câu truy vấn đối với chương trình Datalog bằng phương pháp định giá bảng cũng như thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh đã được phân tích, xem xét

Chương 3 trình bày kỹ hơn về phương pháp biến đổi ma tập và thảo luận một số hạn chế của phép biến đổi ma tập Từ đó đã có được sự cải tiến thuật toán ma tập trên một số lớp con của chương trình Datalog là chương trình Datalog tuyến tính phải và chương trình Datalog không đệ qui Một số cải tiến khác về thuật toán ma tập trên chương trình Datalog cũng được xem xét [6]

Phần phụ lục trình bày một số phương pháp định giá chương trình Datalog bằng một số thuật toán đơn giản, dễ cài đặt Tuy nhiên một số phương pháp xử lý vòng lặp

vô hạn khi định giá trên xuống chưa được đề cập trong phụ lục này

Trang 10

CHƯƠNG 1 KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU SUY DIỄN VÀ

CHƯƠNG TRÌNH DATALOG

Chương 1 trình bày cú pháp, ngữ nghĩa và các kỹ thuật định giá câu truy vấn đối với CSDL suy diễn và chương trình Datalog Phần lớn nội dung của chương này được tổng hợp từ nhiều công trình nghiên cứu của các tác giả ở trong và ngoài nước Đây là những kiến thức cơ sở cần thiết mà luận văn sẽ dùng trong các chương tiếp theo

CSDL suy diễn sử dụng ngôn ngữ logic cấp một làm ngôn ngữ cơ sở Vì vậy, chúng

ta bắt đầu từ ký pháp của logic cấp một

1.1 Ngôn ngữ cấp một [19] (first order language)

Chúng ta tìm hiểu về logic vị từ bậc nhất được xem như là một phương thức biểu diễn tri thức, đồng thời là một ngôn ngữ để diễn tả các phép toán trên các quan hệ

Một ngôn ngữ cấp một được xây dựng trên một bảng chữ và những công thức được

xây dựng trên bảng chữ đó

Định nghĩa 1.1 Bảng chữ bao gồm các hằng, biến, ký hiệu hàm, ký hiệu vị từ, hằng vị

từ: true, false, các toán tử liên kết: (phủ định), (hội), (tuyển), (kéo theo), (tương đương), các ký hiệu lượng từ: (tồn tại), (với mọi), các cặp dấu ngoặc đơn (), dấu phẩy (,)

Định nghĩa 1.2 Hạng thức (term) được định nghĩa đệ qui như sau:

(i) Mỗi hằng là một hạng thức

(ii) Mỗi biến là một hạng thức

(iii) Nếu f là ký hiệu hàm n đối và t1, t2, …, tn là các hạng thức thì f(t1, t2, …, tn ) là một hạng thức

từ có n đối và ti, i=1, …, n là những hạng thức Nguyên tố nền là nguyên tố không chứa biến Literal là một nguyên tố, gọi là literal dương hoặc phủ định của một nguyên tố,

Trang 11

gọi là literal âm Với p là một nguyên tố, literal âm được ký hiệu p, p và p còn gọi

là phần bù của nhau

Định nghĩa 1.4 Công thức logic được định nghĩa một cách đệ qui như sau:

(i) Nguyên tố là một công thức

(ii) True và False là các công thức

(iii) Nếu E và F là các công thức logic thì E F, E, E F, E F, E F là các công thức logic

(iv) Nếu E là một công thức logic và X là một biến thì ( X)E, ( X)E là một công thức logic

Định nghĩa 1.5

Công thức không chứa các biến được gọi là công thức nền (ground formula)

Nếu trong các công thức ( X)E, ( X)E chứa biến X và có thể thêm một số biến khác không nằm dưới dấu , thì biến X được gọi là biến buộc, còn các biến khác được gọi là biến tự do

Công thức đóng là công thức không chứa các biến tự do

Ví dụ 1.1 Y X(p(X,Y) q(Y)) là công thức đóng Tuy nhiên X(p(X,Y) q(Y))

không phải là công thức đóng, vì Y là biến tự do

1.2 Cơ sở dữ liệu suy diễn và chương trình Datalog [23, 24]

Trong phần này chỉ tóm tắt một số khái niệm của CSDL suy diễn và tập trung vào

mô hình dữ liệu quan trọng của CSDL suy diễn là chương trình Datalog Datalog là một ngôn ngữ truy vấn rất mạnh dựa trên logic mệnh đề Horn và đã được nghiên cứu sâu sắc bởi nhiều chuyên gia như Ullman, Ceri, Gottlob, Tanca, … Chúng ta cũng thảo

luận một số tiếp cận ngữ nghĩa của chương trình Datalog khi cho phép các literal âm

xuất hiện trong thân quy tắc

1.2.1 Cơ sở dữ liệu suy diễn

Định nghĩa 1.6

Trang 12

(i) Một CSDL suy diễn là một tập hữu hạn các mệnh đề có dạng:

p1 p2 … pm q1 q2 … qn (m 0, n 0) (*) trong đó pi (i=0, 1, …, m) là các nguyên tố và qj (j=0, 1, …, n) là các literal Tất cả các

đối của các pi và qj đều không chứa các ký hiệu hàm

Mệnh đề (*) có thể xuất hiện dưới các dạng khác nhau tuỳ thuộc vào các giá trị của m và n:

được gọi là quy tắc suy diễn Vị từ p được gọi là đầu quy tắc (head), q1 q2 … qn

được gọi là thân quy tắc (body) và qi (i = 1, …, n) được gọi là các đích con (subgoal)

Nếu p, qi (i = 1, …, n) là các nguyên tố thì quy tắc này gọi là quy tắc Datalog Ta cũng

nói rằng p q1 q2 … qn là quy tắc định nghĩa vị từ p

Trang 13

và được gọi là quy tắc Datalog dạng tuyển p1 p2 … pm gọi là đầu quy tắc và q1

phủ định thì P được gọi là chương trình Datalog dạng tuyển Ngược lại, P được gọi là chương trình Datalog dạng tuyển mở rộng

1.2.2 Cú pháp của chương trình Datalog

Định nghĩa 1.7 Một chương trình Datalog là một CSDL suy diễn xác định bao gồm

một tập hữu hạn các mệnh đề Horn, nghĩa là các quy tắc có dạng:

p q1 q2 … qn (n 0)

Trong đó các vị từ p, qi là các nguyên tố

Để đảm bảo các kết quả của chương trình Datalog là hữu hạn, ta giả thiết mọi

quy tắc trong chương trình Datalog đều thoả mãn điều kiện an toàn: mỗi biến xuất hiện

trong đầu một quy tắc phải xuất hiện trong thân của nó

Định nghĩa 1.8 Giả sử P là chương trình Datalog

Vị từ nội hàm hay vị từ IDB là vị từ được định nghĩa bởi các quy tắc trong P Vị

từ ngoại diên hay vị từ EDB là vị từ không được định nghĩa qua các quy tắc, nó

chỉ xuất hiện trong thân quy tắc Các vị từ IDB hoặc EDB gọi là những vị từ thông thường

CSDL ngoại diên hoặc CSDL EDB của chương trình Datalog là tập các sự kiện được lưu trữ trong CSDL CSDL nội hàm hoặc CSDL IDB là tập các quy tắc

của chương trình

Trang 14

Vị từ được cài sẵn (built-in predicate) là một vị từ so sánh số học =, , , , ,

Nếu là vị từ được cài sẵn thì ta viết X Y thay cho cách viết (X,Y)

Chú ý: Các vị từ EDB chỉ xuất hiện trong thân quy tắc còn các vị từ IDB có thể xuất

hiện ở cả thân và đầu của quy tắc Vị từ được cài sẵn chỉ được xuất hiện trong thân quy tắc

Định nghĩa 1.9 Với mỗi vị từ q có k đối được đặt tương ứng một quan hệ Q có k thuộc

tính Giá trị của quan hệ Q là tập các bộ, một bộ của quan hệ Q có k thuộc tính được biểu thị bởi (a1, a2, …, ak) trong đó các ai là hằng, q(a1, a2, …, ak) là đúng nếu (a1, a2,

…, ak) thuộc Q Quan hệ ứng với vị từ EDB (tương ứng IDB) gọi là quan hệ EDB (tương ứng IDB)

Với mỗi chương trình Datalog P, ta liên kết với ngôn ngữ cấp một L(P) bao gồm các vị từ, các hằng, các công thức trong P Ta có định nghĩa sau:

Định nghĩa 1.10 Giả sử P là chương trình Datalog Lúc đó:

Vũ trụ Herbrand (Herbrand universe) của P, ký hiệu Up, là tập tất cả các hạng

thức nền của P

Cơ sở Herbrand (Herbrand base) của P, ký hiệu Bp, là tập tất cả các nguyên tố nền của P

Thể hiện Herbrand (Herbrand interpretation) hoặc đơn giản ta chỉ gọi là thể

hiện, là một tập con I bất kỳ của cơ sở Herbrand Bp của P

- Nếu A I, ta nói rằng sự kiện A đúng trong I và viết I |= A

- Nếu A Bp nhưng A I, ta nói rằng sự kiện A sai trong I va viết I | A

Ví dụ 1.2 Xét chương trình Datalog P gồm các quy tắc sau:

q(a, b) q(b, c) p(X, Y) q(X, Y) p(X, Y) p(X, Z) p(Z, Y)

Trang 15

Vũ trụ Herbrand của P là Up = {a, b, c} và cơ sở Herbrand của P là:

Bp = {p(a, a), p(a, b), p(a, c), p(b, a), p(b, b), p(b, c), p(c, a), p(c, b), p(c, c),

q(a, a), q(a, b), q(a, c), q(b, a), q(b, b), q(b, c), q(c, a), q(c, b), q(c, c), }

Định nghĩa 1.11 Một phép thế (substitution) là tậo hữu hạn có dạng {X1/t1, …,

Xn/tn} trong đó Xi là các biến phân biệt, ti là các hạng thức, Xi ti, mỗi phần tử Xi/ti là

ký hiệu của phép thế tương ứng biến Xi với hạng thức ti, i=1, …, n Nếu tất cả ti là hằng

thì được gọi là phép thế nền

Định nghĩa 1.12 Một biểu thức là một hạng thức, một literal hoặc hội hoặc tuyển các

literal

E , gọi là hiện hành của E bởi , là biểu thức nhận được từ E bằng cách thay thế đồng

thời các biến Xi xuất hiện trong E bởi các ti (i= 1, …, n) Nếu E không chứa biến thì

E được gọi là một hiện hành nền của E

Định nghĩa 1.14 Giả sử ta có hai phép thế

= {X1/t1, …, Xn/tn} = {Y1/t1, …,Ym/tm} Hợp thành của và , là phép thế nhận được bằng cách xoá khỏi tập hợp:

{X1/t1 , …, Xn/tn , Y1/t1, …,Ym/tm} Mọi phần tử Xi/ti mà Xi = ti và Yi/ti mà Yi {Xi, X2, …, Xn} Ký hiệu =

Định nghĩa 1.15 Phép hợp nhất

Cho E và F là hai nguyên tố Lúc đó:

(i) E và F gọi là có thể hợp nhất nếu tồn tại phép thế sao cho E = F , lúc đó

được gọi là phép hợp nhất của E và F

(ii) Cho 2 phép thế 1 và 2 Ta gọi phép thế 1 tổng quát hơn phép thế 2 nếu

tồn tại một phép thế sao cho 1= 2

Trang 16

(iii) Cho là một phép hợp nhất của E và F Nếu tổng quát hơn mọi phép hợp

nhất khác của E và F thì được gọi là hợp nhất tử tổng quát nhất (most general unifier) của E và F, ký hiệu mgu(E, F)

Ví dụ 1.3 Cho E=p(f(x), z) và F=p(y, a)

Ta có E và F có thể hợp nhất và = {y/f(a), x/a, z/a} là một hợp nhất tử của E và F Hợp nhất tử tổng quát nhất của E và F là = {y/f(x), z/a} Để ý = {x|a}

Định lý 1.1 [19] Tồn tại thuật toán tìm hợp nhất tử tổng quát nhất của hai nguyên tố

nếu chúng có thể hợp nhất được và ngược lại thông báo không tồn tại hợp nhất tử

Định nghĩa 1.16 Giả sử P là chương trình Datalog Lúc đó:

Một thể hiện Herbrand I gọi là mô hình Herbrand (hoặc đơn giản là mô hình)

của P, ký hiệu I |= P, nếu với mọi quy tắc p q1 … qn trong P và mọi phép thế nền đối với quy tắc này, điều kiện sau đây là thoả:

Nếu qi I với mọi i = 1, 2, …, n thì p I

Mô hình I của P được gọi là mô hình cực tiểu (minimal model) nếu không tồn

tại một mô hình J nào khác của P sao cho J I

Mô hình I của P được gọi là mô hình nhỏ nhất (least model) nếu với mọi mô

hình J của P ta luôn có I J

Mệnh đề 1.1 [19] Đối với mọi chương trình Datalog P, luôn luôn tồn tại mô hình cực

tiểu duy nhất của P

Mô hình cực tiểu của chương trình Datalog P có thể tính được nhờ vào một toán

tử hệ quả trực tiếp (direct consequence operator) Tp Đối với thể hiện Herbrand I cho trước của chương trình Datalog P, toán tử Tp xây dựng nên một thể hiện Herbrand của

P là Tp(I) - chứa các sự kiện được dẫn xuất bởi các quy tắc trong P từ những sự kiện trong I

hiệu 2B p

là tập các tập con của Bp Toán tử hệ quả trực tiếp là một ánh xạ Tp:

Trang 17

2B p 2B p

được định nghĩa như sau: Với mỗi I 2B p

, Tp(I) = {A Bp| quy tắc p q1 … qn của P và phép thế nền đối với quy tắc này sao cho p = A và I |= (q1 …

qn ) }

Ví dụ 1.4 Xét quy tắc r: p(a,X) q(X, Y) r(Y, a) của chương trình Datalog P Giả sử

q(b, c), r(c, a) thể hiện Herbrrand I và phép thế nền = {X/b, Y/c} Lúc đó ta có (q(X, Y) r(Y, a)) = q(b, c) r(c, a) I và p(a, X) = p(a, b) nên suy ra p(a,b) Tp(I)

Định lý sau đây cho ta một tính chất quan trọng của toán tử Tp:

Định lý 1.2 [12] Giả sử P là chương trình Datalog Lúc đó:

(i) Tp đơn điệu tăng và có điểm bất động nhỏ nhất

(ii) Điểm bất động nhỏ nhất của Tp chính là mô hình cực tiểu duy nhất của P

Định nghĩa 1.18 Giả sử P là chương trình Datalog

Đồ thị phụ thuộc (dependency graph) của P là một đồ thị có hướng DG(P) = <V,

E>, trong đó V là tập đỉnh gồm các vị từ IDB và EDB của P và E là tập cạnh, cạnh (q, p) E nếu P chứa quy tắc với p là đầu và q ở trong thân

Chương trình P được gọi là đệ qui nếu đồ thị phụ thuộc DG(P) có ít nhất một chu trình, ngược lại P được gọi là không đệ qui Vị từ p nằm trong một chu trình

nào đó của đồ thị DG(P) được gọi là vị từ đệ qui, ngược lại gọi là vị từ không đệ qui

Ví dụ 1.5 Xét chương trình Datalog sau đây:

q(X, Y) p(Z, X) p(Z, Y) q(X, Y) r(Z, X) r(Z, Y) p(X, Y) r(Z, Y) s(X, Z) r(X, Y) p(Z, Y) s(Z, X)

Đồ thị phụ thuộc của chương trình trên có dạng như hình vẽ

Trang 18

Hình 1.1 Đồ thị phụ thuộc của chương trình trong ví dụ 1.5 1.2.3 Giả thiết thế giới đóng và các tiếp cận để xác định ngữ nghĩa chương trình Datalog

1.2.3.1 Giả thiết thế giới đóng

Trong CSDL suy diễn, giả thiết thế giới đóng (CWA) của Reiter đóng vai trò

hết sức quan trọng CWA đã được sử dụng như một quy tắc ngầm định để đưa ra kết luận đối với các sự kiện phủ định Dưới CWA, nếu một nguyên tố nền p thuộc cơ sở Herbrand Bp của chương trình Datalog P không thể suy ra được từ những quan hệ EDB

và các quy tắc trong P thì p sẽ được xem là đúng Ký hiệu CWA(P) là tập được xác định bởi:

1.2.3.2 Tiếp cận theo quan điểm lý thuyết mô hình

Theo quan điểm lý thuyết mô hình, các quy tắc trong chương trình được xem là công cụ để xác định mô hình Một thể hiện của một tập các vị từ sẽ gán giá trị chân lý cho mỗi tình huống có thể có của các vị từ Để là mô hình của một tập các quy tắc, một thể hiện phải làm cho các quy tắc đúng với mọi phép gán giá trị cho các biến trong mỗi

q

Trang 19

quy tắc được lấy từ miền giá trị đã cho Theo quan điểm này, ngữ nghĩa của chương trình Datalog P là mô hình cực tiểu của P EDB

Ví dụ 1.8 Xét chương trình Datalog sau đây:

Trong ví dụ này, có thể thấy rằng có một lượng vô hạn các mô hình phù hợp với CSDL {r(1), s(1, 2)} Thể hiện M1 là một mô hình đặc biệt, bởi vì nó là mô hình cực tiểu, theo nghĩa là chúng ta không thể làm cho một sự kiện đúng trong mô hình trở thành sai mà vẫn nhận được mô hình Để ý rằng mô hình M2 không có đặc tính này, chẳng hạn có thể loại bỏ sự kiện p(2), nghĩa là xem p(2) là sai, kết quả nhận được cũng

là một mô hình Hơn nữa, mô hình cực tiểu M1 là duy nhất phù hợp với CSDL {r(1), s(1, 2)}

1.2.3.3 Tiếp cận theo quan điểm lý thuyết chứng minh

Theo quan điểm lý thuyết chứng minh, các công thức của chương trình được xem là các tiền đề được sử dụng trong chứng minh Ngữ nghĩa của chương trình Datalog P được định nghĩa là tập tất cả các sự kiện có thể được dẫn xuất từ P bằng cách

áp dụng các quy tắc trong P và những sự kiện đã biết trong CSDL Quá trình có thể được thực hiện bắt đầu từ các sự kiện EDB đã cho và tiến hành lặp trên các quy tắc trong chương trình từ vế phải sang vế trái, tức là từ thân đến đầu, chẳng hạn ta xét ví dụ:

Trang 20

Ví dụ 1.9 Xét chương trình gồm các quy tắc sau:

r1: p(X, Y) q(X, Y)

r2: p(X, Y) p(X, Z) p(Z, Y) trong đó q vị từ EDB, giả sử q(a, e) và q(e, d) là các sự kiện EDB Từ quy tắc r1 ta suy

ra p(a, e) và p(e, d) đúng và từ quy tắc r2 ta nhận được p(a, d) đúng Quá trình suy dẫn

để chứng minh p(a, d) có thể mô tả như hình vẽ sau:

Hình 1.2 Cây chứng minh của sự kiện p(a, d) 1.2.3.4 Tiếp cận theo quan điểm lý thuyết điểm bất động

Với các kết quả nghiên cứu về lý thuyết điểm bất động trong chương trình logic bởi Van Emden và Kowalski, Apt và Van Emden, ngữ nghĩa của chương trình Datalog

P cũng có thể được xác định là điểm bất động nhỏ nhất của toán tử hệ quả trực tiếp Tp(định lý 1.2)

Nhận xét: Trong cả ba cách tiếp cận trên, đối với trường hợp đơn giản là chương trình

Datalog nguyên thuỷ, nghĩa là các quy tắc không chứa phủ định thì tất cả phương pháp đều cho ra cùng một kết quả Trong trường hợp tổng quát, khi cho phép sử dụng nhiều loại quy tắc phức tạp hơn thì ta có nhiều cách tiếp cận khác nhau, dẫn đến nhiều câu trả lời khác nhau Trong nhiều trường hợp, không có gì đảm bảo chỉ có một câu trả lời duy nhất được tạo ra Chẳng hạn, với chương trình P = { p q, q p}, P có hai mô hình cực tiểu là {p} và {q}, tuy nhiên P không có mô hình nhỏ nhất Chúng ta xem xét kỹ hơn vấn đề này trong phần 1.3

p(a, d)

p(e, d) p(a, e)

q(e, d) q(a, e)

Trang 21

1.2.4 Các thuật toán xác định ngữ nghĩa chương trình Datalog

Mệnh đề sau đây được suy ra trực tiếp từ định lý 1.2:

Mệnh đề 1.2 Giả sử P là chương trình Datalog Mô hình nhỏ nhất của P là giới hạn của

dãy Tp n, n N, trong đó Tp 0 = , Tp (i+1) = Tp(Tp i)

Từ mệnh đề này ta có thuật toán:

Thuật toán 1.1

Vào: Chương trình Datalog P và DB là CSDL EDB đã cho

Ra: Mô hình nhỏ nhất của P

Phương pháp: Thuật toán được viết theo ngôn ngữ tựa Pascal như sau:

Trang 22

I2 = Tp 2 = Tp(I1) = I1 {path(1, 2), path(2, 3), path(3, 4), path(4, 5)}

I3 = Tp 3 = Tp(I2) = I2 {path(1, 3), path(3, 4), path(4, 5)}

Giả sử P là chương trình Datalog có các vị từ EDB q1, , qm tương ứng với các quan hệ EDB Q1, , Qm và các vị từ IDB p1, …,pn tương ứng với các quan hệ IDB P1, , Pn

Ri, tính biểu thức đại số quan hệ EVAL-RULE(r, R1, …, Rn ) của thân quy tắc r theo các bước:

Q R Trong đó Vi là tập các thành phần chỉ chứa đúng một sự xuất hiện của mỗi biến X có trong các đối của Si, Fi là hội của các điều kiện sau đây:

a) Nếu tại vị trí thứ k của Si có một hằng a thì Fi có dạng: $k=a

Trường hợp Si chứa các biến khác nhau thì Qi = Ri

Trang 23

Bước 1 b Đối với mỗi biến X không xuất hiện trong các đích con thông thường, ta tính

một biểu thức Dx để tạo ra quan hệ một ngôi chứa tất cả giá trị mà X có thể nhận trong phép gán làm cho các đích con của quy tắc r đúng

a) Nếu Y = a (hằng) thì Dx = {a}

b) Nếu y là biến xuất hiện như đối thứ j của đích con thông thường Si thì:

Dx = j(Ri)

định ở bước 2 Trong phép nối này ta xem Qi như là một quan hệ mà các thuộc tính là các biến xuất hiện trong Si và xem Dx là quan hệ có thuộc tính X

mỗi đích con được cài sẵn X Y xuất hiện trong p1, …, pn và E là biểu thức được xác định trong bước 3 Nếu không có đích con được cài sẵn thì biểu thức yêu cầu chính là

E

hệ đối với thân quy tắc của pi lên các thành phần tương ứng với các biến của đầu, sau

đó lấy hợp trên tất cả cá quy tắc có đầu là pi:

Giả sử Hi là tập các quy tắc có đầu là pi, giả thiết các pi có dạng pi (X1, …, Xk) trong đó Xi Xj với mọi i j, Q1, …, Qm là các quan hệ EDB, P1, …, Pn là các quan hệ IDB , lúc đó biểu thức đối với Pi sẽ là:

Trang 24

1.2.4.2 Thuật toán ngây thơ (naive) [25]

Thuật toán 1.2

EDB Q1, …, Qm cho trước và các vị từ IDB p1, …, pn tương ứng với các quan hệ IDB

P1, …, Pn cần tính

Ra: Mô hình nhỏ nhất của P

Phương pháp: Thuật toán được viết theo ngôn ngữ tựa Pascal như sau:

i

P i = 1, …, n;

Output Pi, i = 1, …, n

1.2.4.3 Thuật toán nửa ngây thơ (semi -naive) [25]

Theo thuật toán ngây thơ, khi tính Pi ở bước k+1 ta cần phải tính lại Pi ở bước k, điều này gây ra việc lãng phí thời gian bộ nhớ Thuật toán nửa ngây thơ sau đây khắc phục được nhược điểm đó, để tính (k 1)

i

P ở bước k+1 ta chỉ cần tính các bộ mới được sinh ra: (k 1) (k 1) ( )k

P P P

Xét quy tắc r với các đích con S1, …, Sn Đặt R1, …, Rn là các quan hệ hiện tại tương ứng với các đích con S1, …, Sn và đặt R1, …, Rn là các quan hệ gia tăng tương ứng ( Ri là tập hợp các bộ thêm vào của Ri ở vòng lặp gần nhất của thuật toán ngây thơ) Lúc đó quan hệ gia tăng đối với quy tắc r là hợp của n quan hệ EVAL-RULE(r,

R1, …, Ri-1, Ri, Ri+1, …, Rn ) i = 1, …, n

Trang 25

Đặt: EVAL-RULE-INCR(r, R1, …, Ri-1, R1, …, Rn ) =

1 i n

 EVAL-RULE(r, R1, …,

Ri-1, Ri, Ri+1, …, Rn )

Ta giả sử đối với các vị từ EDB q1, …, qk tương ứng bởi các quan hệ EDB Q1,

…, Qk Đối với mỗi vị từ IDB p1, …, pm được cho tương ứng với các quan hệ IDB P1,

…, Pm và các quan hệ gia tăng tương ứng P1, …, Pm

Với p vị từ IDB, EVAL-INCR(r, Q1, …, Qk, P1, …, Pm, P1, …, Pm ) là hợp của các EVAL-RULE-INCR sinh ra đối với mỗi quy tắc chứa p Ta có thuật toán:

Thuật toán 1.3

EDB Q1, …, Qk cho trước và các vị từ IDB p1, …, pm tương ứng với các quan hệ IDB

P1, …, Pm cần tính

Ra: Mô hình nhỏ nhất của P

Phương pháp: Thuật toán được viết theo ngôn ngữ tựa Pascal như sau:

For i := 1 to m do

Begin

Pi := EVAL(pi, Q1, …, Qk, , …, );

Pi := Pi; End;

Repeat

For i:=1 to m do

Pi’ := Pi; For i:=1 to m do

Begin

Pi := EVAL-INCR(pi, Q1, …, Qk, P1, …, Pm, P1, …, Pm);

Pi := Pi – Pi; End;

Trang 26

For i:=1 to m do

Pi := Pi Pi; Until Pi = , i = 1, …, m;

Output Pi, i = 1, …, m

1.2.4.4 Tối ưu thuật toán nửa ngây thơ trong các trường hợp đặc biệt [1]

Trong trường hợp tổng quát hệ phương trình đại số quan hệ nhận được từ chương trình Datalog P có thể giải bằng các thuật toán ngây thơ và nửa ngây thơ tuy nhiên nếu

P có các tính chất đặc biệt, chẳng hạn P là chương trình tuyến tính thì ta có thể cải tiến thuật toán nửa ngây thơ nhằm nâng cao hiệu quả của nó

Định nghĩa 1.19 Giả sử P là chương trình Datalog Lúc đó:

Quy tắc r của P được gọi là tuyến tính trong P nếu có nhiều nhất một vị từ trong thân của r đệ qui lẫn nhau với vị từ đầu quy tắc

Chương trình Datalog P là tuyến tính nếu mọi quy tắc của P là tuyến tính

Gọi là hệ phương trình đại số quan hệ tương ứng với chương trình Datalog P,

hệ phương trình này có dạng: Pi = Ei (P1, …, Pn) (i=1, …, n)

Trường hợp 1: Chương trình Datalog P là tuyến tính Phép lặp của thuật toán nửa

Trường hợp 2: Nếu trong chương trình P vế phải của một quy tắc chỉ chứa một vị từ

IDB duy nhất là đầu của quy tắc thì phép lặp đơn giản là:

Trang 27

1.3 Chương trình Datalog có chứa phủ định

Phần này trình bày một số tiếp cận ngữ nghĩa quan trọng của chương trình Datalog có chứa phủ định Giả thiết thế giới đóng sẽ được sử dụng trong việc xác định ngữ nghĩa của các sự kiện phủ định

1.3.1 Ngữ nghĩa mô hình hoàn hảo

Lớp chương trình logic với ngữ nghĩa mô hình hoàn hảo (perfect model semantics) được xác định trên các chương trình phân tầng và phân tầng địa phương [11, 20, 24] Ngữ nghĩa mô hình hoàn hảo là một sự mở rộng của ngữ nghĩa mô hình nhỏ nhất

Định nghĩa 1.20

Quy tắc Datalog là công thức có dạng:

p q1 q2 … qm h1 h2 … hn (m 0, n 0) Trong đó p, qi, hj (i=1, …, m, j=1, …, n) là các nguyên tố có các đối chỉ có thể

là hằng hoặc biến Quy tắc này được gọi là an toàn nếu quy tắc p q1 q2 … qm

an toàn và mọi biến xuất hiện trong các đích con âm cũng xuất hiện trong các đích con dương

Một chương trình Datalog P là một CSDL suy diễn xác định gồm các quy tắc

Trang 28

- Nếu có quy tắc với p là vị từ đầu và q là đích con phủ định thì có một cạnh

có hướng q p từ đỉnh q đến đỉnh p được gán nhãn “-” Lúc đó ta nói cạnh

q p là cạnh âm và vị từ p là phụ thuộc âm vào vị từ q

Định nghĩa 1.22 [11] Chương trình Datalog P gọi là đệ qui nếu đồ thị phụ thuộc

DG(P) của nó có chu trình, ngược lại P được gọi là không đệ qui Vị từ nằm trong chu trình được gọi là vị từ đệ qui, ngược lại gọi là vị từ không đệ qui

Định nghĩa 1.23 [11] Chương trình Datalog P gọi là được phân tầng nếu có một phép

gán str(.) các số nguyên tố 0, 1, 2, … cho các vị từ p trong P, sao cho với mỗi quy tắc r trong P ta có: Nếu p là vị từ đầu và q là đích con của r thì str(p) str(q) nếu q là nguyên tố và str(p) > str(q) nếu q là đích con âm Chương trình Datalog là phân tầng nếu nó được phân tầng

Mệnh đề 1.3 [11] Chương trình Datalog P là phân tầng khi và chỉ khi đồ thị phụ

thuộc DG(P) không có chu trình chứa cạnh âm, nghĩa là không có đích con phủ định đệ qui

Chú ý:

(i) Không phải mọi chương trình Datalog đều phân tầng

(ii) Các chương trình Datalog phân tầng thường có nhiều mô hình cực tiểu

và có thể không có mô hình nhỏ nhất

Ví dụ 1.11 Xét chương trình bao gồm các quy tắc sau:

r1: p(X) r(X) q(X)

r2: q(X) r(X) p(X) Trong đó r là vị từ EDB và p, q là các vị từ IDB Gọi P, Q và R lần lượt là quan

hệ cho những vị từ IDB p, q và r Giả sử R có một bộ dữ liệu là {1} Gọi S1 là một thể hiện trong đó P= và Q={1}, S2 là thể hiện trong đó P = {1} và Q = S1 và S2 đều là những mô hình cực tiểu nhưng chương trình này không có mô hình nhỏ nhất

Trang 29

Nếu chương trình Datalog là phân tầng thì ta có thể tính các vị từ IDB theo thứ

tự các tầng của chúng, bắt đầu từ tầng thấp nhất Giả sử p là vị từ có tầng i, nếu quy tắc

có p là đầu và q là đích con có tầng nhỏ hơn i thì ta có thể nhận được quan hệ của q bởi

vì quan hệ này hoặc là quan hệ EDB hoặc đã được tính ở các tầng trước đó Rõ ràng không có đích con có tầng lớn hơn i và nếu q là đích con phủ định thì tầng của q là nhỏ hơn i Chiến lược này sẽ sinh ra một số mô hình cực tiểu của các quy tắc Quan trọng

hơn việc tính các vị từ IDB theo thứ tự chúng xuất hiện ở các tầng luôn luôn tự nhiên

và tạo ra một mô hình cực tiểu Vì vậy ta còn gọi mô hình này là mô hình hoàn hảo và

nó được xem là ngữ nghĩa của chương trình Datalog phân tầng

Giả sử quy tắc r trong P chứa đích con phủ định q(X1, …, Xn) có n biến Gọi Q

là quan hệ đã tính đối với q (hoặc đã cho nếu q là vị từ EDB) Để tính quan hệ cho đích con phủ định q(X1, …, Xn), ta có thể thực hiện như sau: Gọi DOM là hợp tất cả các hằng xuất hiện trong các quan hệ EDB và trong các quy tắc Do các quy tắc là an toàn nên không thể tồn tại một ký hiệu nào không thuộc DOM lại có thể xuất hiện trong một phép thế làm cho thân quy tắc đúng Vì vậy, ta có thể hạn chế quan hệ cho mỗi đích con phủ định chỉ chứa những bộ có các thành phần là những giá trị được chọn từ DOM Quan hệ

Thuật toán 1.4 {Tìm mô hình hoàn hảo của chương trình Datalog phân tầng)

Vào: Chương trình Datalog phân tầng, các quan hệ đối với các vị từ EDB của chương

trình

Ra: Mô hình hoàn hảo của P

Phương pháp: Thuật toán thực hiện theo các bước:

n lần

Trang 30

1 Tính DOM của P bằng cách chiếu tất cả quan hệ EDB lên các thành phần của chúng

và sau đó lấy hợp của các phép chiếu này và tập các hằng xuất hiện trong các quy tắc nếu có

2 Đánh số tầng cho tất cả các vị từ trong P, giả sử Pi là chương trình con của P ứng với tầng thứ i (i = 1, 2, …, k)

3 Với mỗi tầng i (i = 1, …, k) thực hiện các bước sau:

i) Tính các quan hệ cho các đích con phủ định trong quy tắc thuộc các tầng j

(j<i)

ii) Xem các quan hệ của các vị từ ở tầng thấp hơn là các vị từ EDB, tính mô

hình cực tiểu Mi của Pi

4 M = M1 M2 … Mk là mô hình hoàn hảo cần tìm của P

Định lý 1.3 [11] Thuật toán 1.4 tạo ra mô hình cực tiểu của chương trình Datalog

phân tầng

Định nghĩa 1.24 [11] Mô hình cực tiểu của chương trình Datalog được tạo ra bởi

thuật toán 1.4 được gọi là ngữ nghĩa mô hình hoàn hảo của P

Ví dụ 1.12 Xét chương trình Datalog gồm các quy tắc sau:

Trang 31

Chương trình này phân tầng và ta có p, r, s thuộc tầng 0 và q thuộc tầng 1 Gọi

R, S là các quan hệ EDB tương ứng với các vị từ EDB r, s Gọi P, Q là các quan hệ IDB tướng ứng với vị từ IDB q, p Giả sử R = {1}, S = {1, 2} Ta có DOM = 1(R)

1(S) = R S = {1, 2} Ở tầng 1, ta có ngay quan hệ của P chính bằng R, sang tầng 2

ta có quan hệ đối với p(X) là

Định nghĩa 1.25 Giả sử P là Datalog và D là CSDL EDB cho trước Ký hiệu

ground(P, G) là chương trình nhận được từ P bằng cách thay thế tất cả các biến của

mọi quy tắc bởi các hằng trong P và loại bỏ các quy tắc có chứa đích con EDB sai

Để ý rằng nếu M là mô hình của chương trình P với CSDL EDB D cho trước thì

M cũng là mô hình của ground(P, D) và ngược lại

Định nghĩa 1.26 [20] Chương trình Datalog P gọi là phân tầng địa phương theo một

CSDL EDB D nếu ta có thể phân hoạch cơ sở Herbrand Bp của P thành các tập con B1,

B2, …, Bk, gọi là các tầng, sao cho đối với mọi quy tắc p q1 q2 … qm r1

r2 … rh của ground(P, D), nếu vị từ đầu p của quy tắc thuộc vào một tầng Bk

Trang 32

Mệnh đề 1.4 [20] Chương trình Datalog là phân tầng địa phương theo một CSDL

EDB D nếu và chỉ nếu đồ thị phụ thuộc của ground(P, D) không có chu trình âm

Ví dụ 1.13 Xét chương trình Datalog P chỉ gồm một quy tắc:

Đồ thị phụ thuộc của ground(P, D) như hình vẽ sau:

Hình 1.4 Đồ thị phụ thuộc của chương trình trong ví dụ 1.13

Chương trình này phân tầng địa phương và q(1, 2), q(1, 3), q(2, 3), p(3) thuộc tầng 0, p(2) thuộc tầng 2 và p(1) thuộc tầng 2

Mọi chương trình Datalog phân tầng địa phương có chính xác một mô hình mà

ta cũng gọi là mô hình hoàn hảo Việc xác định mô hình hoàn hảo của chương trình Datalog phân tầng địa phương được thực hiện tương tự thuật toán tìm mô hình hoàn hảo của chương trình Datalog phân tầng Ta có thuật toán sau:

Thuật toán 1.5 (Tìm mô hình hoàn hảo của chương trình Datalog phân tầng địa

phương)

p(1)

p(2)

p(3) q(1, 3) q(2, 3)

q(1, 2)

-

-

-

Trang 33

Vào: Chương trình Datalog P phân tầng địa phương theo CSDL EDB D

Ra: Mô hình hoàn hảo của P

Phương pháp:

1 Đánh số tầng cho tất cả các sự kiện trong P

2 Với mỗi tầng, bắt đầu từ tầng thấp nhất, tính mô hình cực tiểu của tập các quy tắc trong tầng đó

3 Mô hình hoàn hảo chính là hợp của các mô hình cực tiểu của các tầng

Ví dụ 1.14 Xét chương trình Datalog P phân tầng địa phương ở ví dụ 1.13, ta có:

Tầng 0: M0 = {q(1, 2), q(1, 3), q(2, 3)}

Tầng 1: M1 = {q(1, 2), q(1, 3), q(2, 3), p(2)}

Tầng 2: M2 = {q(1, 2), q(1, 3), q(2, 3), p(2), p(1)}

Vậy mô hình hoàn hảo của P là {q(1, 2), q(1, 3), q(2, 3), p(2), p(1)}

Định lý 1.4 [20] Thuật toán 1.5 xác định chính xác một mô hình cực tiểu của chương

trình Datalog P phân tầng địa phương

Quan hệ giữa chương trình Datalog P phân tầng, phân tầng địa phương được thể hiện qua các mệnh đề sau đây:

Mệnh đề 1.5 [20] Mọi chương trình Datalog phân tầng đều phân tầng địa phương Mệnh đề 1.6 [20] Nếu chương trình Datalog phân tầng địa phương cũng phân tầng t hì

mô hình hoàn hảo của chương trình Datalog phân tầng địa phương đồng nhất với mô hình hoàn hảo của chương trình Datalog phân tầng

Định lý 1.5 [20] Mô hình hoàn hảo của chương trình Datalog phân tầng (hoặc phân

tầng địa phương) được tính với thời gian đa thức

Trong phần tiếp theo, thảo luận một mở rộng quan trọng của ngữ nghĩa mô hình hoàn hảo đối với lớp chương trình Datalog là ngữ nghĩa mô hình bền vững

Trang 34

1.3.2 Ngữ nghĩa mô hình bền vững

Lớp các chương trình với ngữ nghĩa mô hình hoàn hảo bị hạn chế trên các chương trình phân tầng hoặc phân tầng địa phương Ngữ nghĩa mô hình bền vững (stable model semantics) là sự mở rộng ngữ nghĩa mô hình hoàn hảo, được đề xuất bởi Gelfond và Lifschitz [18] Ngữ nghĩa mô hình bền vững dựa trên cơ sở phép biến đổi

chương trình được gọi là phép biến đổi Gelfond-Lifschitz Phép biến đổi này tạo ra một

chương trình logic dương từ chương trình logic và thể hiện đã cho

Định nghĩa 1.27 [18] Giả sử P là chương trình Datalog và mỗi quy tắc của P được

thay thế bởi các hiện hành của quy tắc Đối với mỗi thể hiện I của P, phép biến đổi

Gelfond-Lifschitz của P theo I, ký hiệu P1, là chương trình nhận được từ P bằng cách:

Loại bỏ các quy tắc có chứa đích con q với q I

Xoá các đích con phủ định trong thân các quy tắc còn lại

Rõ ràng P1 là chương trình logic không chứa phủ định, vì vậy P1 có duy nhất một mô hình cực tiểu, ký hiệu Sp(I)

Định nghĩa 1.28 [18] Một thể hiện I của chương trình Datalog P được gọi là tập bền

vững của P nếu Sp(I) = I

Mệnh đề 1.7 [18] Mọi tập bền vững của P đều là mô hình cực tiểu P

Mệnh đề này cho phép ta gọi các tập bền vững là các mô hình bền vững

Định nghĩa 1.29 [18] Nếu chương trình Datalog P có đúng một mô hình bền vững thì

mô hình này được xem là ngữ nghĩa của P

Ví dụ 1.15 Xem chương trình sau:

q(1,2) p(X) q(X, Y) p(Y)

Trang 35

Cho I = {q(1,2), p(1)} Phép biến đổi Gelfond-Lifchitz P1 là chương trình:

Trang 36

P = {p q r t, p q, q p r t, r t, t } Với I={p, r, t}, ta có P1 = {p , r t, t }

Vậy Sp(I) = {p, r, t} Vậy I là mô hình bền vững của P Bây giờ nếu ta thêm một quy

tắc mới u u vào P, lúc này P không có mô hình bền vững

Sau đây là một số tính chất của mô hình bền vững:

Mệnh đề 1.8 [18] Đối với các chương trình Datalog P không chứa phủ định thì mô

hình nhỏ nhất của P chính là mô hình bền vững duy nhất

Định lý 1.6 [18] Nếu P là chương trình Datalog phân tầng thì P có duy nhất mô hình

bền vững và mô hình này đồng nhất với mô hình hoàn hảo của P

Định lý 1.7 Bài toán kiểm định thể hiện M là mô hình bền vững của chương trình

Datalog P được thực hiện với thời gian đa thức

trình Datalog, vì vậy việc kiểm định M là mô hình nhỏ nhất của PM được thực hiện với thời gian đa thức.[]

Để kết thúc phần này, ta có một số nhận xét: hai dạng ngữ nghĩa được thảo luận

ở trên chỉ được định nghĩa đối với một lớp hạn chế các chương trình logic Mặc dù ngữ nghĩa mô hình bền vững là mở rộng của ngữ nghĩa mô hình hoàn hảo nhưng việc tính toán mô hình bền vững không đơn giản và đòi hỏi chi phí cao; hơn nữa mô hình bền vững có thể không tồn tại

Trang 37

cứu để mở rộng về ngữ nghĩa của trình Datalog có chứa phủ định trên logic 3 -trị cũng như các kỹ thuật tối ưu câu truy vấn trong CSDL suy diễn và chương trình Datalog

Trang 38

CHƯƠNG 2 TỐI ƯU CÂU TRUY VẤN ĐỐI VỚI CHƯƠNG

TRÌNH DATALOG

Chương 2 trình bày về các cách tiếp cận khác nhau để trả lời câu truy vấn trong CSDL suy diễn Luận văn đã tiến hành thảo luận một cách chi tiết, phân tích làm rõ đặc trưng, ý nghĩa của mỗi cách tiếp cận Các phương pháp nhằm ngăn chặn các vòng lặp

vô hạn khi tìm kiếm lời giải của câu truy vấn đối với chương trình Datalog bằng phương pháp định giá bảng cũng như thuật toán định giá chương trình Datalog theo các thành phần liên thông mạnh đã được phân tích, xem xét

Tối ưu câu truy vấn là một trong những nhiệm vụ chính của CSDL suy diễn Chương trình Datalog là mô hình dữ liệu logic quan trọng của cơ sở suy diễn Có ba kiểu tiếp cận khác nhau trong việc định giá câu truy vấn trên chương trình Datalog: Các phương pháp tiếp cận trên xuống (top-down), các phương pháp tiếp cận dưới lên (bottom-up) và các phương pháp tiếp cận có sự kết hợp của hai phương pháp trên xuống và dưới lên

2.1 Định giá câu truy vấn theo kiểu trên xuống (top-down) [4]

Cách tiếp cận trên xuống (top-down) còn gọi là suy luận từ đích hoặc kết xâu lùi (backward-chaining) Xuất phát từ đích truy vấn, ta sẽ xem xét tất cả các cách thức có thể dẫn tới đích Trong việc định giá câu truy vấn theo kiểu trên xuống thì phép hợp nhất đóng vai trò trung tâm của quá trình tính toán

Các bước chính thực hiện việc đính giá phương pháp trên xuống như sau:

1 Khởi đầu từ đích truy vấn Q và chương trình Datalog P

2 Chọn một đích Ai từ đích truy vấn A1 A2 … Ai … An Việc chọn đích Aithường thực hiện từ phải sang trái Tìm một quy tắc A B1 B2 … Bm trong chương trình P sao cho A = Ai với là hợp nhất tử tổng quát nhất của A và Ai Kết thúc là thất bại nếu không có quy tắc nào như vậy

Trang 39

3 Cập nhật lại đích truy vấn bởi phép thế

(A1 A2 … Ai B1 B2 … Bm Ai+1 … An)

4 Nếu kết quả nhận được ở bước 3 là khác rỗng thì trở lại bước 2 Ngược lại, kết thúc

là thành công, ta nhận được một câu trả lời đối với truy vấn

Prolog là ví dụ điển hình cho cách tiếp cận này, thứ tự xử lý đích và các đích con được xác định dựa vào thứ tự các quy tắc được liệt kê trong chương trình

Việc sử dụng kiểu tiếp cận trên xuống có ưu điểm là cho phép khám phá chỉ các câu trả lời câu truy vấn, không tính các sự kiện không thích hợp với câu truy vấn

Tuy nhiên nó có những nhược điểm:

(i) Hỗ trợ không đầy đủ đối với bộ nhớ ngoài Việc tính toán không thể thực

hiện trên một tập khá lớn các sự kiện, và nếu bộ nhớ chính quá nhỏ thì sẽ không đem lại hiệu quả

(ii) Do việc tính toán được thực hiện “mỗi lần một bộ” nên có thể dẫn đến tình

trạng “thắt cổ chai” trong trường hợp có một số lượng thông tin lớn làm cản trở việc tính toán

(iii) Phương pháp trên xuống có sử dụng thủ tục quay lui để thử các quy tắc khác

khi một quy tắc thất bại, vì vậy đễ đi vào một vòng lặp vô hạn

(iv) Thủ tục quay lui không nhận ra các đích đã được gọi thực hiện trước đó nên

có thể lặp lại tính toán một cách không cần thiết

2.2 Định giá câu truy vấn theo kiểu trên xuống có sử dụng kỹ thuật ghi nhớ

Để khắc phục những nhược điểm của phương pháp trên xuống, kỹ thuật ghi nhớ thường được sử dụng Ước lượng bảng (table evaluation) là phương pháp định giá truy vấn theo kiểu trên xuống đối với chương trình lôgic tổng quát, phương pháp này có sử dụng kỹ thuật ghi nhớ Phương pháp ước lượng bảng sẽ ngăn chặn các vòng lặp vô hạn

và đảm bảo việc định giá truy vấn sẽ kết thúc đối với chương trình Datalog, chi tiết hơn

có thể xem trong [3]

Trang 40

Phần này tập trung trình bày chiến lược định giá bảng SLG nhằm ngăn chặn các vòng lặp vô hạn trong quá trình định giá câu truy vấn đối với các chương trình Datalog Chúng là các thuật toán hướng đích, có thể được áp dụng để định giá câu truy vấn đối với chương trình Datalog

đã tạo ra một sự phân chia chính xác trong không gian tìm kiếm: cần tính toán gì và thứ

tự tính toán là như thế nào Một điều đáng tiếc đối với phương pháp này là nó không hiệu quả, việc tính toán trên cây SLD có thể kéo dài vô hạn

Định nghĩa 2.1 Giả sử P là một chương trình Datalog và Q là một đích truy vấn Cây

SLD của đích truy vấn Q đối với chương trình P được xác định như sau:

Mỗi nút của cây là một đích và gắn kết với một phép thay thế

Đích Q là nút gốc, phép thay thế của Q là rỗng

Nếu Q’ = q1 q2 … qn (n 1) là một nút trong cây và q1 là vị từ IDB Các nút con của Q’ được xây dựng như sau: Với mọi quy tắc r trong P sao cho đầu của r và q1 là có thể hợp nhất được, đặt: H B1 B2 … Bn là một biến thể của r bằng cách dùng các biến mới Lúc đó một nút con Q” của Q’ là:

Ngày đăng: 02/07/2015, 19:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lê Mạnh Thạnh, Trương Công Tuấn. Một số phương pháp xác định mô hình của chương trình Datalog và mở rộng của nó. Kỷ yếu Hội thảo Quốc gia về Tin học ứng dụng, Quy Nhơn 6/1998 Sách, tạp chí
Tiêu đề: Một số phương pháp xác định mô hình của chương trình Datalog và mở rộng của nó
[2] Lê Mạnh Thạnh, Trương Công Tuấn. Một số phương pháp ước lượng câu truy vấn trong cơ sở dữ liệu suy diễn, Tạp chí Khoa học Đại học Huế, số 7/2001, 49-59 Sách, tạp chí
Tiêu đề: Một số phương pháp ước lượng câu truy vấn trong cơ sở dữ liệu suy diễn
[3] Hồ Thuần, Lê Mạnh Thạnh, Trương Công Tuấn. Phân tích một số phương pháp xử lý vòng lặp vô hạn trong quá trình ước lượng câu truy vấn đối với chương trình Datalog. Tạp chí Tin học và Điều khiển học, tập 17, số 4, 2001, 87-96 Sách, tạp chí
Tiêu đề: Phân tích một số phương pháp xử lý vòng lặp vô hạn trong quá trình ước lượng câu truy vấn đối với chương trình Datalog
[4] Hồ Thuần, Lê Mạnh Thạnh, Trương Công Tuấn. Tối ưu truy vấn trên chương trình Datalog. Kỷ yếu Hội nghị Toán Toàn quốc, Huế 9/2002 Sách, tạp chí
Tiêu đề: Tối ưu truy vấn trên chương trình Datalog
[5] Lê Mạnh Thạnh, Trương Công Tuấn. Thuật toán ma tập cải tiến để ước lượng câu truy vấn đối với lớp con của chương trình Datalog. Chuyên san Tạp chí Bưu chính Viễn thông, Số 8, 2002, 78-84 Sách, tạp chí
Tiêu đề: Thuật toán ma tập cải tiến để ước lượng câu truy vấn đối với lớp con của chương trình Datalog
[6] Lê Mạnh Thạnh, Trương Công Tuấn. Một số cải tiến đối với phép biến đổi ma tập để tối ưu câu truy vấn trên chương trình Datalog. Chuyên san Tạp chí Bưu chính Viễn thông, Số 9, 2003, 77-81 Sách, tạp chí
Tiêu đề: Một số cải tiến đối với phép biến đổi ma tập để tối ưu câu truy vấn trên chương trình Datalog
[7] Lê Mạnh Thạnh, Trương Công Tuấn. Tối ưu hóa câu truy vấn trong cơ sở dữ liệu suy diễn bằng phép biến đổi ma tập. Tạp chí Tin học và Điều khiển học, tập 19, số 3, 2003, 233-242 Sách, tạp chí
Tiêu đề: Tối ưu hóa câu truy vấn trong cơ sở dữ liệu suy diễn bằng phép biến đổi ma tập
[8] Hồ Thuần, Lê Mạnh Thạnh, Trương Công Tuấn, Ngữ nghĩa chương trình Datalog có chứa phủ định dựa trên logic ba giá trị. Kỷ yếu Hội thảo Khoa học quốc gia“Nghiên cứu phát triển và ứng dụng Công nghệ thông tin và Truyền thông” (ICT.Rda), 2/2003 Sách, tạp chí
Tiêu đề: Ngữ nghĩa chương trình Datalog có chứa phủ định dựa trên logic ba giá trị". Kỷ yếu Hội thảo Khoa học quốc gia “Nghiên cứu phát triển và ứng dụng Công nghệ thông tin và Truyền thông
[9] Trương Công Tuấn (2003), Nghiên cứu Datalog trong mối quan hệ giữa Logic và cơ sở dữ liệu, Luận án Tiến sĩ Toán học, Viện Công nghệ thông tin, Hà Nội Sách, tạp chí
Tiêu đề: Nghiên cứu Datalog trong mối quan hệ giữa Logic và cơ sở dữ liệu
Tác giả: Trương Công Tuấn
Năm: 2003
[10] Ullman J.D., Nguyên lý các hệ cơ sở dữ liệu và cơ sở tri thức , Biên dịch: Trần Đức Quang, Tập 1, 2, 3, NXB Thống kê 2000.B. TÀI LIỆU THAM KHẢO TIẾNG ANH Sách, tạp chí
Tiêu đề: Nguyên lý các hệ cơ sở dữ liệu và cơ sở tri thức
Nhà XB: NXB Thống kê 2000. B. TÀI LIỆU THAM KHẢO TIẾNG ANH
[11] Apt K. R., Blair H. A., and Walker A., Towards a Theory of Declarative Knowledge, In J. Minker, editor, Foundation of Deductive Databases and Logic Programming, pages 89-142, Morgan Kaufmann, 1988 Sách, tạp chí
Tiêu đề: Towards a Theory of Declarative Knowledge
[13] Beeri C., Ramakrishnan R., On the Power of Magic, Procceding of the ACM Symposium on the Principles of Databases Systems, CA, 1987 Sách, tạp chí
Tiêu đề: On the Power of Magic
[14] Ceri S., Gottlob G., Tanca L., Logic Programming and Databases, Springer- Verlag Berlin Heidelberg, 1990 Sách, tạp chí
Tiêu đề: Logic Programming and Databases
[15] Chen W. and Warren D. S., Tabled Evaluation with Delaying for General Logic Programs, JACM, 43(1), 20-74, 1/1996 Sách, tạp chí
Tiêu đề: Tabled Evaluation with Delaying for General Logic Programs
[16] Clement T.Yu, Weiyi Meng, Principles of Database Query Processing for Advanced Applications, Morgan Kaufmann Publisders, Inc, 1998 Sách, tạp chí
Tiêu đề: Principles of Database Query Processing for Advanced Applications
[17] Gallaire H., Minker J., Nicolas J., Logic and Databases: A Deductive Approach, In Computing Survey, Vol 16, 1984 Sách, tạp chí
Tiêu đề: Logic and Databases: A Deductive Approach
[18] Gelfond M., Lifschitz V., The Stable Model Semantics for Logic Programming , In R. Kowalski and K. Bowen, Editors, Proceedings of the Fifth Logic Programming Symposium, 1988, 1070-1080 Sách, tạp chí
Tiêu đề: The Stable Model Semantics for Logic Programming
[19] Loyd J. W., Foundations of Logic Programming , First Edition. Springer-Verlag, New York, 1984 Sách, tạp chí
Tiêu đề: Foundations of Logic Programming
[20] Przymusinski T. C., On the declarative semantics of stratified deductive databases and logic programs, In J. Minker, editor, Foundation of Deductive Databases and Logic Programming, pages 193-216, Morgan Kaufmann, 1988 Sách, tạp chí
Tiêu đề: On the declarative semantics of stratified deductive databases and logic programs

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Đồ thị phụ thuộc của chương trình trong ví dụ 1.5 - Datalog và cơ sở dữ liệu suy diễn
Hình 1.1 Đồ thị phụ thuộc của chương trình trong ví dụ 1.5 (Trang 18)
Đồ thị phụ thuộc của ground(P, D) nhƣ hình vẽ sau: - Datalog và cơ sở dữ liệu suy diễn
th ị phụ thuộc của ground(P, D) nhƣ hình vẽ sau: (Trang 32)
Hình 2.1 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.1 - Datalog và cơ sở dữ liệu suy diễn
Hình 2.1 Cây SLD đối với câu truy vấn p(1, Y) trong ví dụ 2.1 (Trang 41)
Hình 2.3 Định giá SLG của chương trình P trong ví dụ 2.3 - Datalog và cơ sở dữ liệu suy diễn
Hình 2.3 Định giá SLG của chương trình P trong ví dụ 2.3 (Trang 46)
Đồ thị phụ thuộc thu gọn của P nhƣ hình vẽ sau: - Datalog và cơ sở dữ liệu suy diễn
th ị phụ thuộc thu gọn của P nhƣ hình vẽ sau: (Trang 51)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w