Luận án Phương pháp đánh chỉ số cho tài liệu xml tin sinh học dựa trên R - Tree

MỤC LỤC. i

Danh mục các thuật ngữ.iii

Bảng các ký hiệu, từ viết tắt .iv

Danh sách bảng. v

Danh sách các thuật toán.vi

Danh sách hình vẽ.vii

MỞ ĐẦU . 1

Chương 1. TỔNG QUAN. 5

1.1. Tin sinh học và các nguồn dữ liệu.5

1.1.1. Tin sinh học .5

1.1.2. Các nguồn dữ liệu .6

1.1.3. Vấn đề tin sinh học và cơ sở dữ liệu sinh học.10

1.2. Các phương pháp đánh chỉ số dữ liệu sinh học và tin sinh học.13

1.2.1. Chỉ số và mô hình bộ nhớ ngoài.13

1.2.2. Các phương pháp đánh chỉ số cho dữ liệu sinh học .14

1.2.2.1. Các thuật toán so sánh tương đồng thông qua chuỗi đại diện14

1.2.2.2. Các thuật toán sử dụng sự thay đổi cấu trúc chỉ số.15

1.2.3. Các phương pháp đánh chỉ số cho dữ liệu tin sinh học .17

1.3. Phương pháp đánh chỉ số tài liệu XML.18

1.3.1. Tài liệu XML và Xpath.18

1.3.2. Các phương pháp theo hướng nghiên cứu chuyển đổi dữ liệu

XML sang không gian số trước khi thực hiện đánh chỉ số.24

1.3.2.1. Đánh số trên lược đồ.24

1.3.2.2. Phép nối có cấu trúc .25

1.3.2.3. Chuyển đổi lên không gian đa chiều .28

1.3.2.4. Ánh xạ sang cơ sở dữ liệu quan hệ.29

1.4. Phương pháp R-tree.31

1.4.1. Khái niệm R-tree.31

1.4.2. Cấu trúc R-tree.31

1.4.3. Một số thuật toán cơ bản trong phương pháp R-tree.33

1.4.4. Một số phương pháp cải tiến R-tree đánh chỉ số tài liệu XML.41

pdf130 trang | Chia sẻ: honganh20 | Ngày: 04/03/2022 | Lượt xem: 351 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận án Phương pháp đánh chỉ số cho tài liệu xml tin sinh học dựa trên R - Tree, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
các entry từ các node có mức cao hơn phải được đặt cao hơn trong cây, vì vậy các lá của các cây con phụ thuộc vào chúng sẽ nằm trên cùng mức như các lá của cây mẹ. h) Cập nhật (Update) Nếu một bộ dữ liệu được cập nhật để cho hình chữ nhật bao phủ nó bị thay đổi, bản ghi chỉ số của nó phải bị xóa, cập nhật và chèn lại, vì vậy nó sẽ phải tìm cách để đặt đúng vị trí trong cây. 38 Một cách tìm kiếm khác so với cách được mô tả ở trên có thể hữu ích hơn, ví dụ để tìm tất cả các đối tượng dữ liệu được chứa hoàn toàn trong một vùng tìm kiếm, hoặc tất cả các đối tượng chứa vùng tìm kiếm. Các bước thực hiện có thể được thực hiện bằng các biến đổi dễ hiểu trên thuật toán đã cho. Tìm một phần tử cụ thể mà nhận dạng của nó đã được biết trước cần đến thuật toán xóa và được thực hiện bằng thuật toán FindLeaf. Các biến đổi của phạm vi xóa, trong phạm vi này, tất cả các đối tượng dữ liệu trên diện tích liên quan được xóa đi, cũng được R-tree cung cấp khá tốt. i) Thuật toán tách node (Node Splitting) Để thêm một phần tử mới, một node chứa đầy M các chỉ số, cần phải phân chia tập hợp của M+1 các phần tử thành 2 node. Sự phân chia nên được thực hiện theo cách làm cho nó không chắc có thể thực hiện được việc phân chia cả hai node mới sẽ cần được kiểm tra trên việc tìm kiếm thứ tự. Khi đó sự quyết định thăm một node phụ thuộc vào hình chữ nhật bao phủ nó có chồng lên diện tích tìm kiếm. Tổng số diện tích của hai hình chữ nhật bao phủ sau khi tách có thể được giảm đến mức tối thiểu. Hình dưới đây minh họa điều này. Diện tích của các hình chữ nhật trong trường hợp “bad split”lớn hơn nhiều so với trường hợp “good split”. Hình 1.13: Trƣờng hợp phân chia node (a) bad split, (b) good split. Cùng tiêu chuẩn đã được dùng trong thủ tục ChooseLeaf để quyết định xem nơi nào có thể chèn một chỉ số mới vào tại mỗi mức trong cây, cây con được chọn 39 là một cây mà hình chữ nhật bao phủ của nó phải được mở rộng ít Bad nhất khi chèn chỉ số mới vào. Chúng ta quay lại thuật toán phân chia tập M+1 phần tử thành hai nhóm cho mỗi node mới. Hình 1.14: Phân chia phần tử thành các nhóm node mới j) Thuật toán A Quadractic Cost Thuật toán này cố gắng tìm một vùng được tách ra có diện tích nhỏ, nhưng không bảo đảm là có thể tìm được một vùng có thể có diện tích nhỏ nhất. Chi phí là bậc 2 theo M và tuyến tính theo số lượng của các chiều. Thuật toán chọn 2 phần tử trong số M+1 phần tử làm phần tử đầu tiên của hai nhóm mới, bằng cách chọn này, hai phần tử mới này có thể làm lãng phí diện tích lớn nhất nếu cả hai được đặt trong cùng một nhóm. Như vậy diện tích hình chữ nhật bao phủ cả hai phần tử, trừ đi diện tích của chính các phần tử, sẽ là lớn nhất. Các phần tử còn lại được gán vào các nhóm cùng lúc. Tại mỗi bước, việc mở rộng diện tích đòi hỏi phải thêm mỗi phần tử còn lại cho mỗi nhóm được tính toán, và phần tử được gán thì sẽ xuất hiện một sự khác biệt lớn nhất giữa hai nhóm. k) Thuật toán Quadratic Split Phân chia một tập M+1 các chỉ số thành hai nhóm. 40 - B1: [chọn phần tử đầu tiên cho mỗi nhóm] Áp dụng thuật toán PickSeeds để chọn hai phần tử làm các phần tử đầu tiên của các nhóm. Gán mỗi phần tử cho một nhóm. - B2: [Kiểm tra nếu đã thực hiện] Nếu tất cả các phần tử đã được gán, ngừng. Nếu một nhóm có một vài phần tử mà tất cả những phần tử còn lại phải được gán vào nó theo thứ tự để cho nhóm này có m nhỏ nhất, gán các phần tử và ngừng. - B3: [Chọn phần tử để gán] Thực hiện thuật toán PickNext để chọn phần tử kế tiếp để gán. Thêm phần tử này vào nhóm mà hình chử nhật bao phủ của nó sẽ phải mở rộng ít nhất để chứa phần tử này. Giải quyết các hạn chế bằng cách thêm phần tử vào nhóm có diện tích nhỏ nhất, khi đó nhóm này có các phần tử ít hơn nhóm khác. Lặp lại B2. l) Thuật toán PickSeeds Chọn hai phần tử làm phần tử đầu tiên của các nhóm. - B1: [Tính toán sự thiếu hiệu quả của việc nhóm các phần tử với nhau] Cho mỗi cặp các phần tử E1 và E2, tạo một hình chữ nhật J bao gồm E1I và E2I Tính d = area(J) – area (E1I) - area(E2I). - B2: [Chọn cặp gây lãng phí nhất] Chọn cặp có d lớn nhất. m) Thuật toán PickNext Chọn một mục còn lại để phân loại vào một nhóm. - B1: [Xác định giá trị của việc đặt mỗi phần tử trong mỗi nhóm] Cho mỗi phần tử E chưa được phân nhóm, tính d1 = diện tích được yêu cầu tăng trong hình chữ nhật bao phủ của nhóm 1 để bao gồm EI, tính toán d2 tương tự như trên cho nhóm 2. - B2: [Tìm phần tử thích hợp nhất cho một nhóm] Chọn bất kỳ phần tử nào có sự khác biệt lớn nhất giữa d1 và d2. 41 n) Thuật toán LinearPickSeeds Chọn hai phần tử làm các phần tử đầu tiên của các nhóm. - B1: [Tìm các hình chữ nhật xa nhất theo tất cả các chiều] Theo mỗi chiều, tìm các phần tử mà hình chữ nhật của nó có cạnh dưới cao nhất và có cạnh trên thấp nhất. Ghi lại việc phân chia. - B2: [Điều chỉnh hình dạng của cụm hình chữ nhật] Chuẩn hóa việc phân chia bằng cách chia chiều rộng của toàn bộ các tập theo chiều tương ứng. - B3: [Chọn cặp cách xa nhất] Chọn cặp có sự phân chia được chuẩn hóa lớn nhất theo bất kỳ chiều nào. 1.4.4. Một số phƣơng pháp cải tiến R-tree đánh chỉ số tài liệu XML  XR-tree [32] XR-tree được thiết kế để xử lý các tài liệu XML có dữ liệu lồng nhau chặt chẽ, hỗ trợ truy vấn tìm tất cả các tổ tiên hoặc hậu duệ của một entry E với chi phí thấp. XR-tree đưa ra 4 định nghĩa trên cây cải tiến với các công thức đi kèm, cấu trúc mới dựa trên các node và các stab list được tạo ra với tham số được tính toán dựa trên các công thức trong các định nghĩa. Hình 1.15: Cấu trúc cây XR-tree Cây XR-tree được thiết kế để đánh chỉ số trên tài liệu XML sau đó kết hợp cùng phép nối có cấu trúc được đề xuất là XR-stack để đưa ra kết quả cuối cùng. Các kết quả tập trung chủ yếu vào trục tổ tiên và hậu duệ. Đây là hạn chể của XR- 42 tree, vì trên thực nghiệm, các truy vấn các trục này thường ít dữ liệu nên cải tiến sẽ không mang nhiều ý nghĩa cho tốc độ truy vấn.  AR*-tree [91] Ý tưởng chính của phương pháp AR*- tree là chia 1 node n-chiều trong R-tree thành n node 1-chiều, n node một chiều này tạo thành một node-group, trong đó mỗi node mới chứa thông tin chỉ số theo 1 chiều (khác với mỗi node trong R-tree chưa thông tin chỉ số cho tất cả các chiều). Tại mỗi node-group tập các entry sẽ có cùng một chỉ số vị trí và phân phối trong các node khác nhau tạo thành một entry of node-group tương ứng với 1 MBR. Mỗi entry của mỗi node trong một node-group tạo thành một cạnh của MBR, trong khi mỗi entry trong các node của R-tree tạo thành 1 MBR. Ví dụ, trong không gian 2 chiều các entry và MBR của phương pháp AR*-tree được biểu diễn như sau: Hình 1.16: Xây dựng MBR trên không gian 2 chiều của phƣơng pháp AR*-tree Kết quả là cải thiện số node cần truy cập trong truy vấn trục Xpath xuống thấp hơn ở tất cả các trục, nhưng không quá nhiều, các thử nghiệm tiến hành trên những file dữ liệu khá nhỏ, từ 5.5 MB đến 113.8 MB. Vấn đề của phương pháp này là làm thay đổi bản chất của các node R-tree, tạo ra nhiều node hơn đáng kể, dẫn đến có thể ảnh hưởng tới nhiều dạng truy vấn khác của R-tree. Hơn nữa, việc tạo ra thành nhiều node hơn sẽ làm tăng kích thước của cây chỉ số, điều này trái với định hướng nghiên cứu là phải giảm kích thước càng nhiều càng tốt. 43 1.5. Các vấn đề còn tồn tại Tác giả thấy rằng, trên thực tế các tài liệu XML tin sinh học thường rất lớn, lớn tới mức không thể xử lý toàn bộ trên bộ nhớ và có thể phải lưu trữ phân tán trên đĩa cứng. Do vậy cần có các phương pháp đánh chỉ số trên đĩa cứng hiệu quả và đồng thời có phương pháp làm giảm kích thước dữ liệu để tăng hiệu quả truy vấn. Các nghiên cứu đánh chỉ số XML kích thước lớn có xu hướng chuyển đổi tài liệu XML về không gian số trước khi áp dụng các phương pháp đánh chỉ số. Đa phần sử dụng B+-tree, lý do chính là B+-tree khá phổ biến trong các CSDL quan hệ ngày nay. Trong khi đó R-tree là phương pháp đánh chỉ số hiệu quả cho không gian đa chiều và cũng rất phổ biến trong các CSDL quan hệ, chưa được tận dụng. R-tree có thể đánh chỉ số với dữ liệu có 2 chiều trở lên, và đặc biệt tốt với dữ liệu phân bố không đều trong không gian. Các truy vấn theo trục Xpath có 46% (6/13 trục) là truy vấn anh em hoặc truy vấn suy dẫn được từ các các truy anh em. Ngoài ra, phân bố dữ liệu sau khi chuyển đổi về không gian Đề các, xu hướng tập trung không đều và lệch hoàn toàn về 1 số vùng không gian chứa các tag anh em (sẽ phân tích ở các chương sau). Chưa có nghiên cứu nào về tối ưu các truy vấn anh em và từ đó tăng hiệu quả các truy vấn khác của Xpath. Từ các vấn đề tồn tại trên, luân án đã chọn nghiên cứu mô hình đánh chỉ số phù hợp với tài liệu XML tin sinh học, với mục tiêu tăng hiệu quả đánh chỉ số dữ liệu XML và đồng thời giảm kích thước dữ liệu để đánh chỉ số và truy vấn. Mô hình trong Hình 1.17, giúp dữ liệu XML được chuyển đổi về không gian đa chiều, từ đó áp dụng các phương pháp đánh chỉ số và truy vấn trong không gian giúp tăng tốc độ xử lý và giảm kích thước dữ liệu khi đánh chỉ số. Có 2 phương pháp chính để đánh chỉ số trong không gian đa chiều là Gridbase và R-tree: - Gridbase phù hợp với dữ liệu phân bố đều 44 - R-tree ứng dụng được trong các dữ liệu phân bố ngẫu nhiên Vì XML tin sinh học trên thực tế rất đa dạng nên R-tree sẽ phù hợp hơn và được lựa chọn làm cơ sở trong luận án này. Hình 1.17: Mô hình quy trình tổng quát Hình 1.18: Mô hình thể hiện quá trình chuyển đổi dữ liệu và đánh chỉ số trên đĩa cứng Phương pháp R-tree hiện còn một số vấn đề khi áp dụng vào xử lý dữ liệu XML tin sinh học như sau: 45 1) Vấn đề chồng chéo trong truy vấn. Đối với kỹ thuật chỉ số dựa trên không gian, không gian tìm kiếm càng lớn thì càng mất nhiều thời gian hơn để nhận được node được trả về. Nhưng điểm yếu của phương pháp dựa trên R-tree là các truy vấn đòi hỏi cửa sổ quét dữ liệu khá lớn, do đó ảnh hưởng đáng kể tới hiệu năng truy vấn. 2) Vấn đề mối liên kết anh em của các tag sau khi chuyển đổi sang không gian, mà được thể hiện như các điểm trong không gian như parent, preceding, sibling, descendant, child, following, v.v theo các trục Xpath. Trong Hình 2.2 biểu diễn việc phân bố dữ liệu trên hệ trục tọa độ, tác giả nhận ra rằng tất cả các dữ liệu phân bố lệch như một hình thang/được chéo thẳng hàng (giống như cánh máy bay). Trong khi đó, tất cả các phương pháp trước đây không quan tâm đến điều đó, nên các truy vấn chưa có cải thiện đáng kể nào khi truy vấn ở vùng dữ liệu cánh máy bay này. 1.6. Kết luận Chương 1 trình bày một số khái niệm nền tảng về tin sinh học và dữ liệu tin sinh học. Dữ liệu tin sinh học ngày càng trở nên khổng lồ do được đóng góp và chia sẻ thường xuyên của cộng đồng nghiên cứu. Do các bài toán phân tích dữ liệu tin sinh học rất đa dạng, các tài liệu lưu trữ thông tin cần cấu trúc dễ thay đổi, linh hoạt, đa dạng và đặc biệt dễ chia sẻ/đóng góp. Hiện nay, tài liệu XML là một chuẩn quan trọng để mô tả và lưu trữ dữ liệu sinh tin học khổng lồ. Tuy nhiên, tài liệu XML có dữ liệu dạng text và bán cấu trúc nên việc khai thác không giống như dữ liệu thông thường. Chương 1 cũng trình bày các nghiên cứu liên quan của bài toán khai thác dữ liệu XML, các phương pháp đánh chỉ số, các thuật toán được đề xuất trong các nghiên cứu trước đây đã được nêu ra, trong đó R-tree đang là thuật toán tỏ ra hiệu quả nhất với các tài liệu XML và truy vấn Xpath. Trên cơ sở đó, chương 1 phân tích và đưa ra các vấn đề nghiên cứu của luận án. 46 Chƣơng 2. PHƢƠNG PHÁP ĐÁNH CHỈ SỐ BIOX-TREE 2.1. Mở đầu Khi thiết kế một phương thức truy cập mới, chúng ta không chỉ phải biết được bản chất của dữ liệu mà còn phải biết các kiểu truy vấn và phương thức sẽ được sử dụng [16][42]. Việc truy vấn Xpath quét toàn bộ dữ liệu XML sẽ làm giảm hiệu suất đáng kể. Các phương pháp lập chỉ số đã được phát triển trong những năm gần đây để khắc phục vấn đề này. Các phương pháp xử lý truy vấn và lập chỉ số dữ liệu XML khác nhau đã được đề xuất để hỗ trợ các truy vấn Xpath. Bài viết [2] phân loại các chỉ số dữ liệu XML thành ba loại. - Đầu tiên là các chỉ số dựa trên đường dẫn, chúng nhóm các node trong cây dữ liệu theo độ tương tự cục bộ và có cấu trúc chỉ số có thể điều chỉnh theo khối lượng công việc truy vấn. Hạn chế của các chỉ số này là kích thước chỉ số rất lớn vì chúng lưu trữ các đường dẫn tiến và lùi để thiết lập một lớp hỗ trợ [17][35]. - Thứ hai là các chỉ số dựa trên dãy, chúng đánh giá các truy vấn bằng cách ghép dãy sau khi chuyển đổi cả dữ liệu XML và truy vấn thành dãy. Tuy nhiên, nhược điểm của chúng là xuất hiện dương tính giả gây ra bởi việc ghép dãy thay vì ghép cây [64][79]. - Thứ ba là các chỉ số dựa trên node, chúng sử dụng các giá trị duyệt cây theo thứ tự trước cùng với các giá trị duyệt cây theo thứ tự sau của một tag name trên cây XML làm tọa độ của node trên không gian. Kết quả sau đó được sử dụng để xác định mối quan hệ giữa các node cây. Trong luận án này, tác giả tập trung vào loại thứ ba vì các chỉ số dựa trên node có thể được phân loại thành chỉ số dựa trên đánh số và chỉ số dựa trên đa chiều. Đây 47 là tiền đề để tác giả đề xuất cây BioX-tree và mở rộng BioX+-tree với mục tiêu cải thiện hiệu suất tốt hơn so với phương pháp trước đây. Cũng như mô hình dữ liệu có cấu trúc, mô hình dữ liệu bán cấu trúc XML cũng có các ngôn ngữ truy vấn riêng, phổ biến nhất là Xpath và Xquery. Trong đó, Xpath là dạng đơn giản và cơ bản của Xquery. Cơ chế hoạt động của truy vấn XPath thường phân ra 2 dạng: Tuần tự và đánh chỉ số. Với dạng tuần tự, dữ liệu XML sẽ không được tiền xử lý trước khi truy vấn. Mỗi truy vấn sẽ thực hiện đọc toàn bộ dữ liệu. Dạng đánh chỉ số sẽ tiền xử lý dữ liệu XML để xây dựng cấu trúc dữ liệu khác mà mỗi lần truy vấn không đòi hỏi quét toàn bộ dữ liệu. Chỉ số dựa trên đánh chỉ số sử dụng các tag name XML ghi nhãn để thể hiện vị trí của các tag trong tài liệu. Trong [37] trình bày chỉ số cây con dựa trên phạm vi, và ghi nhãn dựa trên tiền tố. Chỉ số cây con dựa trên phạm vi được sử dụng để xác định mối quan hệ tổ tiên - con cháu giữa bất kỳ cặp tag XML nào. Hạn chế của nó là việc tính toán lại toàn bộ thứ tự của các node được yêu cầu bất cứ khi nào có node mới được chèn, xem [21][47] và hiệu quả truy vấn kém. Chỉ số cây con dựa trên phạm vi sử dụng các cặp (giá trị duyệt cây theo thứ tự trước, giá trị duyệt cây theo thứ tự sau) của các chuỗi con của dữ liệu XML được tính từ khi bắt đầu tài liệu XML duyệt theo chiều sâu. Hạn chế của nó là không thể xử lý các cập nhật thường xuyên của dữ liệu XML vì người ta cho rằng các vị trí node không bao giờ thay đổi một khi chúng được gán, xem [95] . Chỉ số dựa trên tiền tố là để chỉ chính xác tổ tiên của một node trên đường dẫn của nó. Hạn chế của nó là khi chiều cao của cây tăng lên, kích thước của nhãn tăng nhanh, xem [55][78]. Trong chỉ số dựa trên đa chiều trong ánh xạ [27][28] mọi node sẽ được đưa lên mặt phẳng hai chiều, sử dụng xếp hạng duyệt cây theo thứ tự trước trên trục x và xếp hạng duyệt cây theo thứ tự sau trên trục y. Node bối cảnh và bốn trục chính của các đường dẫn XPath (accestor, preceding, following, descendant), chia không gian hai chiều thành bốn vùng, mỗi vùng tương ứng với một trục chính. 48 Với một node bối cảnh, quá trình truy vấn tìm kiếm một trong các trục của nó có thể được đơn giản hóa như các node phân vùng trên mặt phẳng hai chiều và truy xuất các node rơi vào vùng tương ứng với trục cụ thể trong truy vấn. Một cấu trúc chỉ số, XPath Accelerator, đã được đề xuất để hỗ trợ phương pháp tiếp cận đa chiều. Bằng cách sử dụng một hệ thống cơ sở dữ liệu quan hệ, sẽ có lợi rất nhiều nếu cơ sở dữ liệu hỗ trợ các kỹ thuật lập chỉ số không gian như R-tree [30]. Tập hợp các node của bốn trục chính sẽ được kết hợp để hỗ trợ tất cả các trục biểu thức đường dẫn. Tối ưu hóa có thể được thực hiện để giảm thêm kích thước của vùng tài liệu trong truy vấn, mặc dù pre order và post order trong một số trường hợp chèn node phải được tính lại. Các phương pháp đưa ra ở trên trong việc đánh chỉ số trong không gian dựa trên R-tree đang gặp các vấn đề: Thứ nhất, đó là vấn đề chồng chéo. Đối với kỹ thuật chỉ số dựa trên không gian, không gian tìm kiếm càng lớn thì càng mất nhiều thời gian hơn để nhận được node được trả về. Nhưng yếu điểm của phương pháp dựa trên R-tree là các truy vấn đòi hỏi cửa sổ quét dữ liệu khá lớn, do đó ảnh hưởng đáng kể tới hiệu năng truy vấn. 49 Hình 2.1: Phạm vi quét thứ tự duyệt cây theo thứ tự trƣớc và sau ban đầu (vùng xám) và thu nhỏ (vùng trắng) cho truy vấn con cháu đƣợc thực hiện theo truy vấn mẫu Hình 2.1 minh họa một thể hiện của tài liệu XML với một số điểm nhỏ biểu thị dữ liệu XML theo mặt phẳng. Giả sử rằng, từ node bối cảnh E, chúng ta muốn lấy tất cả các node con cháu của nó bằng cách sử dụng cửa sổ truy vấn {pre(E), ; 0, post(E)} [36]. Cửa sổ thực sự cần thiết để tìm kiếm là màu trắng được xác định bởi giá trị duyệt cây theo thứ tự trước của node con cháu bên trái và giá trị duyệt cây theo thứ tự sau của node con cháu bên phải của node E. Kết quả là, phạm vi thừa được đánh dấu màu xám trong cửa sổ truy vấn tương ứng với trục con cháu sẽ gây ra ảnh hưởng đáng kể đến hiệu suất thực hiện các truy vấn, mà phạm vi này lại có thể rất lớn trong nhiều trường hợp. Thứ hai, đó là vấn đề mối liên kết anh em của các tag sau khi chuyển đổi sang không gian, mà được thể hiện như các điểm trong không gian như parent, preceding, sibling, descendant, child, following, v.v theo các trục Xpath. Trong Hình 2.2 biểu diễn việc phân bố dữ liệu trên hệ trục tọa độ, với dữ liệu DNA gạo kiểm thử trên 1000 node (Hình 2.2a), với dữ liệu Swissprot kiểm thử trên khoảng 20.000 node (Hình 2.2b), tác giả nhận ra rằng tất cả các dữ liệu dữ liệu phân bố lệch như một hình thang/được chéo thẳng hàng (giống như cánh máy bay). Tác giả đã thử 50 nghiệm trên nhiều tài liệu XML khác nhau với từ vài trăm node đến vài trăm nghìn node cũng ra kết quả tương tự. (a) (b) Hình 2.2: Ví dụ về phân phối các điểm quy đổi cho một tài liệu XML Đây là đặc thù theo cách chuyển đổi lên không gian theo phương pháp giá trị duyệt cây theo thứ tự trước – sau. Trong khi đó, tất cả các phương pháp trước đây không quan tâm đến điều đó, chúng chỉ tập trung vào xử lý mối quan hệ giữa cha mẹ/con cái hoặc tổ tiên/con cháu và bỏ qua các trục khác mà chúng cũng là phần 51 quan trọng trong xử lý truy vấn, đặc biệt là xử lý luồng truy vấn XPath với các vị từ. Các truy vấn chưa có cải thiện đáng kể nào khi truy vấn ở vùng dữ liệu cánh máy bay này. Một số ví dụ về truy vấn với các tham số vị từ: q1= descendant[2]/preceding-sibling[3] q2= parent[3]/following-sibling[7] q3= parent/preceding-sibling[3]/child[2] Tác giả nghiên cứu truy vấn q1, được hiểu là node cần tìm ở vị trí thứ ba của anh em trước của con cháu thứ hai của node bối cảnh. Phương pháp lập chỉ số dựa trên R-tree mất nhiều thời gian hoặc thậm chí khó giải quyết loại truy vấn đó. Để xử lý truy vấn trên, đầu tiên chúng ta phải lấy tất cả các anh em trước của node bối cảnh, sau đó chọn node thứ ba cho các bước tiếp theo. Trong khi đó, với Bộ tăng tốc XPath, tập các node trả về sẽ là tất cả các node nằm ở góc dưới bên trái của mặt phẳng từ node bối cảnh. Các node có mối quan hệ với những node khác (cha mẹ- con cái, tổ tiên-con cháu) và nằm ngẫu nhiên trong node lá do hạn chế về không gian; dẫn đến thật khó để xác định đâu là node thứ ba từ node bối cảnh. Và bước tiếp theo không thể được thực hiện như là kết quả của các bước trước đó. Khi thực thi thuật toán cũng sẽ đòi hỏi nhiều tài nguyên và thời gian để có được kết quả trả về. Đó là nhược điểm của phương pháp Bộ tăng tốc Xpath. Thông thường, phương pháp lập chỉ số dựa trên R-tree đã giải quyết hầu hết các trường hợp câu truy vấn đơn giản nhưng với những câu truy vấn có vị từ phức tạp đặc biệt là tham số vị từ chỉ vị trí thì R-tree không đưa ra được một cấu trúc chỉ số tối ưu có khả năng truy vấn nhanh tất cả các trục. Cấu trúc của R-tree cũng không quan tâm đến cấu trúc phân bố dữ liệu cánh may bay nên đã để các node anh em bị nằm rải rác trên cây là nguyên nhân chính. Từ đó, tác giả đi sâu nghiên cứu phương pháp đánh chỉ số mới, được cải tiến từ R-tree giúp các truy vấn Xpath chạy hiệu quả hơn trong một số trục. Trong bài 52 toán này, mục tiêu của tác giả là tập trung vào một cấu trúc lập chỉ số có đủ khả năng thực hiện tất cả các loại truy vấn dựa trên cấu trúc, đặc biệt tập trung vào giải quyết các truy vấn vị từ vị trí. Ngoài ra, nó có thể đưa ra một khả năng để mở rộng các trục tồn tại trên tài liệu XML nhưng không được sử dụng trong phương pháp cũ thành các trục linh hoạt và hiệu quả hơn. Tuy nhiên, tác giả không đi sâu vào vấn đề đó mà vẫn cố gắng sử dụng các trục tương tự như các tài liệu nghiên cứu liên quan. Dựa theo mô hình đã lựa chọn trong chương 1, tác giả sẽ có những đề xuất cải tiến trong các thành phần: chuyển đổi, đánh chỉ số, module xử lý truy vấn. Hình 2.3: Các thành phần đƣợc đề xuất cải tiến trong phƣơng pháp BioX-tree Với các thử nghiệm trong chương 2 và 3, tác giả sẽ chứng minh bằng kết quả cụ thể phương pháp đề xuất được cải thiện so với các phương pháp gốc. Các kết quả trong chương này được công bố trong các công trình 1, 2, 3, 4 phần “Danh mục các công trình của tác giả”. 2.2. Phƣơng pháp đánh chỉ số cải tiến BioX-tree 2.2.1. Chuyển đổi tài liệu XML Dựa theo cách đánh chỉ số trên lược đồ của của Dietz đã nêu ở chương 1, khi chuyển đổi tài liệu XML, các tag name sẽ biến đổi sao cho biểu diễn được trong không gian với hệ trục tọa độ Đề các. Bước đầu tiên là tài liệu XML sẽ được xây dựng lên dạng cây với quan hệ phân cấp cha con (như Hình 2.6), sau đó các node tương ứng sẽ được đánh 2 chỉ số theo quy tắc duyệt cây theo thứ tự trước, duyệt cây 53 theo thứ tự sau (cặp giá trị này sẽ tạo thành NodeID) và đánh số thứ tự cho từng tag name của tài liệu XML [22][63]. Tương ứng như vậy khi gắn lên hệ trục tọa độ ta được thể hiện như Hình 2.4; thứ tự pre của các tag name sẽ là Bioseq-set_descr < Seqdesc_source < BioSource_genome < BioSource_org < < Date-pub_month < Date-pub_day, và do đó pre(Bioseq-set_descr) = 1, pre(Seqdesc_source) = 2 ,. . . , pre(Date-pub_day) = 31; còn post(BioSource_genome) = 1, post(BioSource_org) = 2 ,. . . , post(Bioseq-set_descr) = 31. Hình 2.4: Ví dụ về biểu diễn điểm dựa trên cặp giá trị (duyệt cây theo thứ tự trƣớc, duyệt cây theo thứ tự sau) Vẫn tuân thủ theo nguyên tắc chung đó trong phân tích và chuyển đổi tài liệu XML, tác giả đã xây dựng một chương trình riêng để thực hiện để đảm bảo độ chính xác khi so sánh với phương pháp dựa R-tree của các nghiên cứu trước. Trong tài liệu [20], trình chuyển đổi được triển khai bằng hai thủ tục startEuity (t, a, att) và endEuity (t). Ở đây, tác giả đã thêm một tham số mới theo cách riêng của tác giả để tăng hiệu quả tìm kiếm lên, bên cạnh việc vẫn sử dụng tham số duyệt cây theo thứ tự trước và duyệt cây theo thứ tự sau. Đó là tham số được sử dụng để chỉ cấp độ l (level) của từng node, tác giả sẽ sử dụng tham số này cho các truy vấn con cháu. 54 Bất cứ khi nào thủ tục phân tích cú pháp startEuity (t, a, atts) gặp thẻ mở XML (dấu <) tham số l (đây là biến toàn cục, giá trị mặc định ban đầu là -1) sẽ được cộng thêm 1 đơn vị. Khi thủ tục endEuity (t) được gọi, l trừ đi 1 đơn vị. Hai thủ tục trên được sửa đổi với tên mới startElement và endElement, trình bày trong Thuật toán 2.1. Thuật toán ConvertXMLDocument(XMLdoc) Đầu vào: tài liệu XML cần chuyển đổi. Đầu ra: file txt chứa các giá trị trên không gian của một node(E) = {pre (E), post (E), par (E), att (E), tag (E)}. Begin l = -1; startElement(t, a, atts) l ← l +1; v ← (pre = gpre, post = _, par = (S.top()).pre, level= l, att = a, tag = t) S.push(v); Gpre ← gpre + 1; for v’ IN atts do startElement(v’, true, nil ); endElement(v’); endElement(t) v ← S.pop(); v.post ← gpost; gpost ← gpost +1; chèn v vào bảng kết quả; l ← l-1; End Thuật toán 2.1: Hai thuật toán sửa đổi trong chuyển đổi tài liệu XML 2.2.2. Cấu trúc chỉ số trên cây BioX-tree BioX-tree áp dụng chiến lược chèn/tách khác nhau để đạt được các mối quan hệ anh em của dữ liệu XML một cách dễ dàng hơn, trong khi không gây ảnh hưởng đến khả năng phân biệt không gian của chỉ số quá nhiều. 55 Tác giả thiết kế cấu trúc cây BioX-tree duy trì nghiêm ngặt quỹ đạo liên kết anh em, các tag anh em với nhau sẽ có cùng cấp độ và có cùng cha mẹ. Như vậy, cấu trúc BioX-tree thực chất là cây có mỗi node lá sẽ chứa nhiều tag con của cùng một tag cha mẹ, được tổ chức theo cấu trúc phân cấp cây cân bằng về chiều cao. Bên trong các node chứa các phần tử (được gọi là ent

Các file đính kèm theo tài liệu này:

  • pdfluan_an_phuong_phap_danh_chi_so_cho_tai_lieu_xml_tin_sinh_ho.pdf
Tài liệu liên quan