Kiến trúc của XSAQCT

Một phần của tài liệu luận văn: tìm hiểu và so sánh một số kỹ thuật nén XML (Trang 45)

Kiến trúc của XSAQCT được minh họa bởi hình 3.5 trong đó các hình chữ nhật được đánh bóng mờ biểu diễn các giai đoạn trung gian của quá trình nén.

Cho một tài liệu D, XSAQCT sử dụng SAX duy nhất quét, phân tích và mã hóa tài liệu D để tạo ra một cây chú thích annotated tree TA,D . Cũng tại thời điểm đó, các giá trị dữ liệu được đưa vào những bộ chứa thích hợp. Bước tiếp theo, TA,D được nén bao gồm hai bước. Bước thứ nhất ghi các chú thích của nó vào trong một bộ chứa. Bước thứ hai cây khung (skeleton tree) (TD không c n có chú thích được đưa vào một bộ chứa khác.

Cuối cùng, tất cả các bộ chứa c n lại được nén bằng cách sử dụng các bộ nén nền (back-end được xác định bởi người sử dụng và được ghi lại tạo đầu ra CD.

Chú ý rằng TA,D biểu diễn chính xác cấu trúc nhưng cô đọng súc tích hơn cấu trúc của tài liệu đầu vào D. TA,D giữ lại tất cả thông tin về thứ tự của các phần tử, thuộc tính.

XSAQCT sử dụng một container duy nhất cho quá trình lưu trữ các giá trị text của tất cả đường dẫn tương đương nhau ví dụ, các đường dẫn /a/b/t1, a/b/t2 và a/c/t1 với t1, t2 là các chuỗi text thì ta sẽ có /a/b/t1 tương đương /a/b/t2, trong khi đó a/b/t1 không tương đương với a/c/t1 .

Mỗi bộ chứa có thể được nén bằng cách sử dụng các bộ nén nền back-end) khác nhau phụ thuộc vào loại giá trị trong bộ chứa container. Các bộ nén nền back-end được sử dụng trong XSAQCT bao gồm: gzip, bzip2…, người dùng có thể bổ sung thêm nhiều bộ nén khác.

Quá trình giải nén bao gồm các bước sau:

1. Sử dụng bộ giải nén nền back-end decompressor để khôi phục lại nội dung của tất cả bộ chứa.

2. Chú thích lại re-annotation : sử dụng các chú thích và cây khung TD để tạo lại TA,D. 3. Khôi phục lại restoring : sử dụng TA,D để khôi phục lại tập tin được nén.

Ví dụ 3.18: Xem xét tài liệu D được minh họa trong hình 3.6. Ta thấy rằng, cây tài liệu không có bất kỳ các giá trị dữ liệu nào. Có 3 đường dẫn tương đương /b/c và hai đường dẫn tương đương a/b/e. Cây chú thích TA,D biểu diễn tài liệu D được minh họa trong hình 3.7. Các đường dẫn tương đương nhau đã được merge lại nên trong ví dụ này chỉ có một đường dẫn a/b/c và một đường dẫn a/b/e. Để hỗ trợ quá trình giải nén, chú thích được thêm vào các node của cây TA,D. Chú thích được kết hợp với node n sẽ là tổng số lượng con của m được gán nhãn bởi n, trong đó m là cha của node n. Trong ví dụ 3.18, node b trong cây TA,D được chú thích [3] bởi vì có 3 con được gán nhãn bởi “b” là con của node “a‟ trong cây tài liệu D. Node “e” được gán nhãn [0,0,2] bởi vì trong tài liệu D, không có con nào được gán nhãn “e‟ cho hai lần xuất hiện đầu tiên của node “b”, và có 2 con được gán nhãn “e” cho lần xuất hiện thứ 3 của node “b”.

Hình 3.6: Minh họa một tài liệu D đơn giản [20]

Một phần của tài liệu luận văn: tìm hiểu và so sánh một số kỹ thuật nén XML (Trang 45)