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

Một phần của tài liệu Datalog và cơ sở dữ liệu suy diễn (Trang 62)

Vào: Chƣơng trình Datalog P, câu truy vấn q. Gọi Pad

là chƣơng trình tô điểm nhận đƣợc từ P theo một chiến lƣợc truyền thông tin ngang đã cho.

Ra: Một chƣơng trình mới, ký hiệu Mag_Pad. Việc định giá trên chƣơng trình Mag_Pad sẽ cho cùng kết quả câu truy vấn trên chƣơng trình P.

Phƣơng pháp: Phép biến đổi ma tập đƣợc thực hiện theo các bƣớc:

Bƣớc 1: Bƣớc tô điểm chƣơng trình: Biến đổi chƣơng trình Datalog P ban đầu thành

chƣơng trình có tô điểm Pad

theo một chiến lƣợc truyền thông tin sang ngang đã đƣợc chọn.

Bƣớc 2: Bƣớc biến đổi ma tập: Biến đổi chƣơng trình Pad thành chƣơng trình Mag_Pad,

1. Đối với mỗi vị từ p với đối là t_ trong chƣơng trình Pad, tạo ra một vị từ mới

mag_p( _

b

t ) với _b

t là đối bị buộc của vị từ p. 2. Đối với mỗi quy tắc r trong Pad

: 1

_ _ _

1

( ) ( ) ... n( )n

p t q t q t ta sửa đổi thành một quy tắc trong Mag_Pad : _ 1 _ _ _ 1 ( ) _ ( )b ( ) ... n ( )n p t mag p t q t q t 3. Đối với mỗi quy tắc r trong Pad

: 1

_ _ _

1

( ) ( ) ... n( )n

p t q t q t và với mọi vị từ IDB qi, 1 i n ta thêm vào Mag_Pad các quy tắc magic:

_ _ 1 _ _ 1 1 1 _ i( )ib _ ( )b ( ) ... i (i ) mag q t mag p t q t q t

4. Thêm một sự kiện “hạt nhân” mag_q(

_

c), trong đó c_ là tập các hằng tƣơng ứng với các đối bị buộc của câu truy vấn.

Tính đúng đắn của phép biến đổi ma tập đƣợc thể hiện bởi định lý:

Định lý 3.1[21]

Giả sử P là chƣơng trình Datalog và q là câu truy vấn. Dùng phép biến đổi ma tập để biến đổi P và câu truy vấn q thành chƣơng trình Mag_Pad, chƣơng trình này sẽ tƣơng đƣơng với P theo nghĩa khi định giá Mag_Pad

sẽ cho ra cùng kết quả của câu truy vấn q.

3.1.4. Phƣơng pháp ma tập [21]

Phƣơng pháp ma tập đƣợc thực hiện qua hai bƣớc sau đây:

1. Dùng phép biến đổi ma tập để viết lại chƣơng trình P và câu truy vấn q thành chƣơng trình Mag_Pa d

.

2. Định giá chƣơng trình Mag_Pad

bằng các thuật toán kiểu dƣới lên nhƣ ngây thơ (naive), nửa ngây thơ (semi_naive)

Ví dụ 3.2 Sử dụng biến đổi ma tập với đối với chƣơng trình Pad

trong ví dụ 3.4, ta nhận đƣợc chƣơng trình Mag_Pad

sau đây:

mar2: pbf(X, Z) mag_pbf(X) e(X, Y) pbf(Y, Z) mar3: mag_pbf(Y) mag_pbf(X) e(X, Y)

mar5: mag_pbf(1)

Giả sử quan hệ của vị từ e đƣợc cho bởi tập E = {(1, 2), (2, 3), (3, 4)}. Bƣớc 1: mag_pbf(1) đƣợc tạo ra

Bƣớc 2: pbf

(1, 2), mag_pbf(2) đƣợc thêm vào Bƣớc 3: pbf

(2, 3), mag_pbf(3) đƣợc thêm vào Bƣớc 4: pbf

(3, 4), mag_pbf(4) đƣợc thêm vào

Bƣớc 5: Kết thúc, không còn sự kiện mới đƣợc phát sinh.

Một phần của tài liệu Datalog và cơ sở dữ liệu suy diễn (Trang 62)

Tải bản đầy đủ (PDF)

(98 trang)