Lưu trữ, quản lý và truy xuất dữ liệu một cách hiệu quả là một trong các vấn đề rất quan trọng của ngành khoa học máy tính. Hiển nhiên rằng, việc lưu trữ và quản lý dữ liệu có thể xem là một nhu cầu thiết yếu không thể thiếu của tất cả mọi lĩnh vực, như: kinh tếtài chính, quản lý xã hội, y tế, giáo dục, v.v. Trong xu thế phát triển của Internet cùng với sự bùng nổ của dữ liệu trong kỷ nguyên BigData như hiện nay, thì bài toán lưu trữ và quản lý dữ liệu càng được đặt nặng và có mức độ phức tạp cao hơn, vì ngoài yêu cầu có thể lưu trữ, quản lý được một khối lượng dữ liệu vô cùng lớn, thì các hệ quản trị CSDL còn phải có khả năng tự suy luận cũng như hỗ trợ rút trích hiệu quả các tri thức từ khối dữ liệu vô cùng lớn mà nó lưu trữ.
ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN _ BÁO CÁO TIỂU LUẬN MÔN HỌC CƠ SỞ DỮ LIỆU NÂNG CAO NGHIÊN CỨU MƠ HÌNH CSDL SUY DIỄN VÀ ỨNG DỤNG TRONG KHAI THÁC MẠNG THÔNG TIN KHÔNG ĐỒNG NHẤT (RESEARCHING ON DEDUCTIVE DATABASE SYSTEM AND APPLICATIONS IN HETEROGENEOUS INFORMATION NETWORK MINING) HVTH: ThS PHẠM THẾ ANH PHÚ GVHD: TS NGUYỄN GIA TUẤN ANH GIỚI THIỆU CHUNG VỀ CSDL SUY DIỄN & CÁC VẤN ĐỀ LIÊN QUAN ĐẾN KHAI THÁC TRI THỨC TỪ CSDL 1.1 Nhu cầu khả suy diễn sinh tri thức từ liệu Lưu trữ, quản lý truy xuất liệu cách hiệu vấn đề quan trọng ngành khoa học máy tính Hiển nhiên rằng, việc lưu trữ quản lý liệu xem nhu cầu thiết yếu thiếu tất lĩnh vực, như: kinh tế/tài chính, quản lý xã hội, y tế, giáo dục, v.v Trong xu phát triển Internet với bùng nổ liệu kỷ nguyên BigData nay, tốn lưu trữ quản lý liệu đặt nặng có mức độ phức tạp cao hơn, ngồi u cầu lưu trữ, quản lý khối lượng liệu vô lớn, hệ quản trị CSDL phải có khả tự suy luận hỗ trợ rút trích hiệu tri thức từ khối liệu vơ lớn mà lưu trữ Tập luật (rules) kiện (facts) Phân tích cấu trúc đặc tính liệu Dữ liệu thơ có sẵn Phát triển mơ hình giải thuật, thuật tốn phù hợp A Hướng tiếp cận khai thác tri thức từ liệu thơ có sẵn Cơ chế lưu trữ suy diễn Dữ liệu thô đầu vào Thông tin tri thức có giá trị B Hướng tiếp cận khai thác tri thức trực tiếp từ hệ quản trị CSDL suy diễn Hình 1.1 Sự khác biệt hai hình thức khai phá tri thức từ liệu Khai phá tri thức tự sinh tri thức từ CSDL Hiển nhiên khái niệm rút trích thơng tin (information extraction) khai phá tri thức (data mining / knowledge discovering) từ liệu khơng lĩnh vực xa lạ năm gần Tuy nhiên, việc khai thác liệu phụ thuộc q nhiều vào việc phát triển mơ hình giải thuật, thuật tốn, phương pháp,v.v thơng qua việc nghiên cứu cấu trúc khối liệu có Và hướng tiếp cận áp dụng cho cụ thể trường hợp khối liệu nghiên cứu Do tính linh hoạt khó khăn việc kiểm chứng tính đắn tri thức đầu Bảng 1.1 đưa số so sánh khác biết mô hình khai thác tri thức từ mơ hình khai thác liệu áp dụng hệ CSDL suy diễn Do đó, câu hỏi đặt là, thay nghiên cứu cách để khai thác tri Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT thức từ khối liệu có sẵn, trực tiếp để CSDL tự sinh tri thức từ liệu nạp vào hay không ? (minh họa Hình 1.1) Bảng 1.1 Khác biệt mơ hình khai thác tri thức từ mơ hình khai thác liệu áp dụng hệ CSDL suy diễn Phương pháp tiếp cận Linh hoạt mở rộng liệu theo thời gian Chuẩn hóa hình thức tổ chức lưu trữ liệu Linh hoạt áp dụng cho nhiều mơ hình liệu khác Chi phí cho việc xây dựng thời gian Đáp ứng yêu cầu độ xác tính đắn tri thức Trường hợp áp dụng Tiếp cận theo hướng xây mô hình/giải thuật khai thác liệu (data mining technique) Tiếp cận theo hướng CSDL suy diễn (deductive and reasoning database) Thơng qua việc phân tích khối liệu có sẵn biết trước tri thức cần biết từ liệu xây dựng giải thuật phù hợp để rút trích tri thức Từ khối liệu biết trước, thiết kế mơ hình lưu trữ dựa tri thức chuyên gia (con người) để định nghĩa quy luật (rules) hỗ trợ cho trình sinh tri thức từ liệu Tri thức khai thác cho khối liệu khai thác thời điểm Khi liệu thay đổi (mở rộng) cần phải chạy lại mơ hình để sinh lại tri thức tương ứng với khối liệu Khơng cần, áp dụng trực tiếp lên tập liệu thơ có mà khơng cần phải qua bước tiền xử lý phức tạp Kém linh hoạt áp dụng cụ thể cho loại liệu mà thuật tốn thiết kế (giao dịch, đồ thị, chuỗi thời gian, v.v.) Thấp, đòi hỏi mơ hình thuật tốn tốt thời gian cho việc xử lý Tùy thuộc vào độ tin cậy thuật toán áp dụng, đáp ứng mức độ chấp nhận được, không yêu cầu xác tuyệt đối Áp dụng trường hợp mà khối lượng liệu cần xử lý vô lớn, khơng có đầy đủ hiểu biết như, kinh nghiệm chuyên gia,v.v để rút tập quy luật tổng quát Phù hợp cho việc xây dựng hệ thống tư vấn, khuyến nghị hỗ trợ định với đặc thù độ xác khơng u cầu phải 100% Có khả linh hoạt tự sinh tri thức có liệu thêm vào (mở rộng), dựa luật định nghĩa tri thức có khối liệu cũ Cần định nghĩa quy định trước, tốn nhiều thời gian cho giai đoạn Dữ liệu khơng chuẩn hóa ảnh hưởng nhiều đến tri thức sinh Có thể áp dụng cho nhiều loại liệu khác nhau, tùy thuộc vào hình thức tổ chức lưu trữ Rất cao, đòi hỏi nhiều thời gian việc xây dựng tập luật chuẩn hóa liệu lưu trữ Gần đạt độ xác tuyệt đối liệu chuẩn hóa tốt đầy đủ xác luật định nghĩa Yêu cầu phải có đầy đủ kiến thức tảng tri thức cấp độ chuyên gia để xây dựng tập luật chuẩn cho khối liệu lưu trữ Được áp dụng việc xây dựng hệ chuyên gia ngôn ngữ, y tế, giáo dục, địa lý,v.v yêu cầu độ xác gần tuyệt đối (100%), đóng vai trò làm nguồn sở tri thức cho hệ thống trí tuệ nhân tạo Hay nói cách khác hệ CSDL lúc cần đóng vai trò hệ sở tri thức tự suy luận (knowledgebased system), hay gọi hệ chuyên gia (expert system) Từ khái niệm việc xây dựng hệ CSDL có khả suy luận hỗ trợ đưa kết luận/quyết định (deduction) đời, hay gọi vắn tắt CSDL suy diễn (deduction database) 1.2 Sơ nét lịch sử phát triển hệ CSDL suy diễn 1.2.1 Lịch sử phát triển CSDL suy diễn Cơ sở liệu suy diễn [1] [2] [3] ban đầu đề xuất nhu cầu cần gom nhóm mối quan hệ thành phần liệu tổ chức tảng CSDL bảng quan hệ (RDBMS) để hình thành quy luật tổng quát nhất, hỗ trợ cho việc rút trích liệu thuận tiện Ví dụ: CSDL bảng quan hệ truyền thống, để thể mối quan hệ trực tiếp hai thực thể ta phải dùng tối thiểu bảng để biển diễn lưu "#$ "#$ ()* trữ mối quan hệ này, ta biểu diễn sau: 𝐴 𝐵, 𝐵 𝐶, 𝐵 𝐷 v.v Ta thấy CSDL bảng quan hệ hiệu thể mối quan hệ hai trực tiếp, lại mối quan hệ gián tiếp, Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT ??? ??? khó để biểu diễn mơ hình hóa, ví dụ: quan hệ gián tiếp như: 𝐴 𝐶, 𝐴 𝐷 Do đó, đòi hỏi CSDL quan hệ cần mở rộng để suy diễn khái quát hóa mối quan hệ dựa tập luật mệnh đề logic Ví dụ: dựa logic mệnh đề luật: “cha” “cha” tức “ơng”, ta suy ra: 𝐴 ô./ ô./ 𝐶, 𝐴 𝐷 Đây hạn chế lớn CSDL quan hệ truyền thống, khả tổng quát hóa suy diễn mối quan hệ liệu Về ý tưởng xây dựng nguyên lý, CSDL suy diễn phát triển từ đóng góp Green, C Cordell Raphael, Bertram (1968) [4], việc phát triển ứng dụng hệ thống hỏi-đáp (question-answer) (trong hai mơ hình QA1 QA2) Xuất phát từ ý tưởng ban đầu Green cộng việc dùng tốn học logic để mơ tả hệ thống mối quan hệ liệu Trong đó, việc áp dụng tư logic tốn học lập trình, hay gọi sử dụng tốn học với ký hiệu, hàm, v.v ngôn ngữ lập trình, đóng vai trò quan trọng việc phát triển ứng dụng CSDL suy diễn Điển hình lập trình logic (logic programming) đời ngôn ngữ Prolog (là cách viết tắt cụm từ tiếng Pháp “Programmation en logique”), giới thiệu Alain Colmerauer Robert Kowalski (1972) với mục tiêu hỗ trợ mơ tả lại tốn ngơn ngữ logic tốn học Việc áp dụng áp lập trình logic CSDL nhằm hỗ trợ hiệu cho việc khai báo luật suy luận logic dựa mối quan hệ luật với liệu lưu trữ Bảng chứa quan hệ [cha]-[con] cha A B B C A em D ??? B Bảng chứa quan hệ [anh]-[em] anh C Cha ??? Cha C Anh D Hình 1.2 Minh họa hạn chế CSDL bảng truyền thống việc thể suy diễn mối quan hệ liệu Do đó, nhu cầu cần có ngơn ngữ lập trình logic riêng dành cho CSDL, để hỗ trợ thiết lập, biểu diễn luật truy vấn liệu cách hiệu quả, vô cần thiết Năm, 1977, Hervé Gallaire and Jack Minker đề xuất nhu cầu tiềm cho việc ứng dụng lập trình logic CSDL, ngôn ngữ Datalog, David Maier đề xuất, đời Có thể nói Datalog phân hệ ngơn ngữ lập trình logic Prolog thiết kế để dành riêng cho phát triển hệ CSDL suy diễn Khác với Prolog, Datalog có số đặc điểm riêng, điển hình như: • Mô tả mối quan hệ suy diễn dựa mệnh đề Horn (Horn clause) • Các vị từ (predicate) khơng đóng vai trò làm tham số (arguments) • Thứ tự mệnh đề khai báo luật không quan trọng • Có số lần lặp đệ quy hưu hạn phải kết thúc • … Từ nguyên lý Datalog, hàng loạt tảng CSDL suy diễn xây dựng, điển hình như: LDL++, Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT DLV, CORAL, XSB, SDS, DUDUCE-2, Declare, ConceptBase, NAIL, v.v 1.2.2 Khái quát luật, kiện kiện, tri thức sinh suy diễn đệ quy Ý tưởng xây dựng máy tính thành hệ sở tri thức có khả tự suy luận hỗ trợ định, thông qua việc nạp liệu kèm theo tri thức lưa chọn, dạng tập luật (rules) kiện (facts) kiểm chứng tính đắn Bản chất tri thức nạp cho máy tính đơn giản, chúng tồn ba yếu tố sau, bao gồm: • Luật (rule - r): dạng mẫu/quy luật dạng tri thức khẳng định đúng, kiểm chứng người (các chuyên gia) • Sự kiện (fact - f): xem nguồn liệu thông tin hay kiện diễn thực tế, kiện sau áp dụng luật (rule) để suy diễn giúp sinh kiện tri thức • Sự kiện (new fact – nf): dạng thông tin, kiện sinh sau áp dụng luật cụ thể để suy luận Sự kiện, thông tin suy từ tập luật có mang giá trị gọi tri thức (knowledge) Dựa ba yếu tố đề cập bên trên, có số ví dụ điển sau (xem Bảng 1.2): Bảng 1.2 Một số ví dụ luật (rule), kiện (fact) kiện (new fact) tri thức (knowledge) sinh Luật (rule) (r1) Mọi “chó sói phương bắc” có “4 chân” “màu trắng” (r2) Mọi động vật “màu trắng” “dễ dàng ẩn tuyết” (r3) Mọi “cóc” có “màu xanh” (r4) Mọi động vật “màu xanh” “dễ dàng ẩn rừng” Sự kiện (fact) (f1) [Bấc] “chó sói phương bắc” tác phẩm “Tiếng gọi nơi hoang dã” Jack London (f2) Tí có ni “cóc” tên [Tía] Sự kiện (new fact) (nf1) Bấc có “4 chân” “màu trắng” (nf2) Bấc “dễ dàng ẩn tuyết” (nf3) Tía có “màu xanh” (nf4) Tía “dễ dàng ẩn rừng” Như thấy, luật (r1) luật (r3), với kiện tương ứng (f1) (f2), suy trực tiếp kiện tương ứng (nf1) (nf3) Tiếp theo đó, với bổ sung thêm luật: (r2) (r4), từ kiện sinh từ luật (nf1) (nf3), tiếp tục suy diễn thêm kiện/tri thức (nf2) (nf4) Tiến trình suy diễn diễn giãi lại chi tiết sau: • Từ luật (r1), có kiện (nf1), cho biết Bấc có chân có màu trắng kiện đầu vào (f1) cho biết Bấc chó sói phương bắc Tiếp theo đó, dựa vào luật (r2), biết Bấc có khả ẩn tuyết (nf2), kiện suy (nf1) cho biết Bấc có màu trắng • Tương tự bên trên, với kết hợp luật (r2) kiện (f2), kết luận Tía có màu xanh Tía cóc Và kết hợp luật (r3) với kiện sinh (nf3) tiếp tục suy rằng, Tía dễn dàng ẩn rừng, Tía có màu xanh (nf4) Với việc áp dụng luật khác lên kiện/tri thức - sinh luật trước – điển hình như: r2(nf1) nf2, r3(nf3) ànf4, v.v gọi suy diễn hay truy vấn dạng đệ quy (recursion) Ở loại CSDL bảng truyền thống sử dụng ngơn ngữ truy vấn SQL, truy vấn đệ quy (recursive querying) không hỗ trỡ, tốn nhiều tài ngun tính tốn khơng gian lưu trữ để cài đặt Truy vấn đệ quy khái niệm quan trọng mạnh CSDL suy diễn ngơn ngữ lập trình Datalog Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT 1.3 Sự kết hợp trí tuệ nhận tạo (AI), CSDL suy diễn & ứng dụng xây dựng Xuyên suốt trình phát triển, nhà khoa học máy tính ln nổ lực khơng ngừng việc tìm kiếm phát triển giải pháp tốt, mạnh mẽ để giúp máy tính đạt khả suy nghĩ người Hay nói cách khác hướng đến việc xây dựng cỗ máy tính có khả tự suy luận liên cập nhật thông tin để làm giàu thêm cho kho tri thức riêng nó, để ngày mạnh mẽ thông minh Thế mạnh máy tính học làm việc vô nhanh không cần nghĩ ngơi, khả lưu trữ, thu nạp liệu gần vô hạn CSDL suy diễn coi hạt nhân cho hệ thống trí thơng minh nhân tạo mà người xây dựng Bản chất tri thức máy tính cung cấp tập liệu kiểm chứng người định nghĩa lại theo dạng tập luật Có thể nói, tập luật (rules) đóng vai trò tảng hệ CSDL suy diễn nói chung hay hệ sở tri thức, chun gia nói riêng Điển số hệ CSDL tri thức tiếng, phát triển dựa hình thức khai thác tập luật, như: • Hệ chun gia phát cố SHINE (Spacecraft Health Inference Engine), NASA: phát triển bới NASA JPL vào năm 1970, SHINE hỗ trợ phát cố, lỗi tiềm ẩn xảy q trình phóng tàu khơng gian hay vệ tinh vào vũ trụ Sau tiếp tục đánh giá phát triển với đại học Berkeley, Mỹ SHINE có ưu điểm thiết kế vượt trội so với hệ chuyên gia phát cố loại, với số lượng luật nạp xử lý lên đến 500 triệu luật • Hệ chuẩn đốn điều trị bệnh MYCIN: phát triển năm 1970, đại học Stanford, Mỹ, MYCIN giúp hỗ trợ chuẩn đoán trường hợp nhiễm bệnh loại vi khuẩn gây hỗ trợ đưa định việc sử dụng loại thuốc kháng sinh điều trị cho hiệu Ở giai đoạn công bố ban đầu, MYCIN nạp khoảng 600 luật, rút kết thu thập trực tiếp từ liệu bệnh án, điều trị với hỗ trợ chuyên gia lĩnh vực y tế • Hệ chuyên gia hỗ trợ thăm dò địa chất, khoan dầu Dipmeter Advisor: hệ chuyên gia xây dựng công ty khai thác dầu mỏ Schlumberger vào thập niêm 1980, hỗ trợ MIT Với 90 tập luật nạp vào, Dipmeter Advisor thành công việc hỗ trợ đưa định q trình khoan thăm dò mỏ dầu, thơng qua việc đánh giá thuộc tính địa chất lớp đất 1.4 Các đóng góp, tính cấu trúc tiểu luận Trong tiểu luận này, nội dung nghiên cứu trọng vào việc hồn thành bốn mục đích sau, bao gồm: • Nghiên cứu tổng quan kiến trúc chế hoạt động CSDL suy diễn, khái niệm liên quan đến CSDL mở rộng (EDB) CSDL theo mục đích (IDB) • Nghiên cứu ngun lý tảng ngơn ngữ lập trình luật dành cho CSDL, Datalog • Tìm hiểu, cài đặt thực hành số ví dụ với ngơn ngữ Datalog thơng qua phần mềm DES (deductive educational system) – phát triển P Julián-Iranzo F Sáenz-Pérez, đại học UCM, Tây Ban Nha dành cho mục đích giảng dạy lập trình logic Datalog ngôn ngữ truy vấn khác CSDL • Ứng dụng mơ hình CSDL suy diễn Datalog việc suy diễn quan hệ mạng thông tin không đồng (heterogeneous information network), hỗ trợ giải toán liên quan đến tìm đường thực thể mạng thơng tin dựa meta-path Cài đặt thực nghiệm mơ hình mạng thông tin học thuật DBLP Cấu trúc luận tổ chức thành năm phần chính, bao gồm: giới thiệu tổng quan, sở lý thuyết, hướng dẫn cài đặt thực hành Datalog với phần mềm DES, áp dụng mơ hình CSDL suy diễn khai thác mạng Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT thông tin không đồng cuối kết luận & hướng phát triển tương lai CƠ SỞ LÝ THUYẾT VỀ CSDL SUY DIỄN VÀ NGÔN NGỮ LUẬT DATALOG 2.1 Cơ sở liệu suy diễn tảng logic Có thể nói, CSDL suy diễn tảng kết hợp mơ hình CSDL quan hệ truyền thống lập trình logic, lập trình logic áp dụng để mơ hình hóa liệu, mối quan hệ tập luật định nghĩa CSDL suy diễn áp dụng rộng rãi việc xậy dựng tảng cho ứng dụng liên quan đến trí tuệ nhân tạo, hệ sở tri thức hệ chuyên gia Về bản, hệ CSDL suy diễn có ba tính là: lưu trữ, truy vấn suy diễn, bao gồm hai thành phần (minh họa Hình 1.1): • Nền tảng lưu trữ liệu: thường hệ quản trị CSDL quan hệ, với kiến trúc sở để đầy đủ để tổ chức lưu trữ, truy vấn liệu Chúng ta coi tảng đóng vai trò lưu trữ tập kiện (facts), điển mơ hình lưu trữ dạng bảng quan hệ mà hay gặp hệ quản trị CSDL phổ biến như: Oracle, Microsoft SQL Server, MySQL, v.v hay gọi CSDL mở rộng (Extensional Database - EDB) • Nền tảng logic/suy diễn: từ liệu quan hệ lưu sở lưu trữ, thành phần giúp suy diễn thành phần liệu quan hệ mới Bản chất tảng tập luật (rules) định nghĩa Thông thường tảng xây dựng hỗ trợ ngơn ngữ lập trình logic phi thủ tục, điển hình phổ biến dùng Datalog Ha gọi CSDL theo mục đích (Intentional Database - IDB) Trước hết để có nhìn tổng quan ngơn ngữ lập trình logic dành cho CSDL, Datalog, cần nhìn lại sơ nét ngơn ngữ tiên khởi/cha đẻ ngơn ngữ lập trình logic phi thủ tục, Prolog Nền tảng lưu trữ truy vấn liệu Lưu trữ kiện (fact) Extensional Database - EDB Nền tảng suy diễn sinh tri thức Lưu trữ luật (rule) Intentional Database - IDB Thơng tin tri thức có giá trị Hình 2.1 Minh họa kiến trúc hệ CSDL suy diễn 2.2 Các quy tắc logic, lập trình logic Prolog Từ giới thiệu lần đầu vào năm 1978 Hervé Gallaire and Jack Minker, đơn giản cú pháp lập trình vơ mạnh mẽ nó, Prolog chấp nhận áp dụng rộng rãi việc phát triển xây dựng ứng dụng nhiều khác Prolog đặc biệt áp dụng việc xây dựng hệ sở tri thức có khả tự suy diễn hay ứng dụng liên quan đến trí tuệ nhân tạo xử lý ngôn ngữ Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT tự nhiên Trong dự án xây dựng máy tính hệ thứ phủ Nhật, khởi động từ năm 1982, ngơn ngữ Prolog chọn làm tảng lập trình Cú pháp ngơn ngữ lập trình Prolog dựa nguyên lý logic toán học, để giúp lập trình viên mơ tả lại tốn cho máy tính Nói cách khác đơn giản hơn, thơng qua Prolog, giúp cho máy tính hiểu tốn thơng qua việc mơ tả nó, sau để máy tính tự tìm lời giải, đáp án cho Thông thường, sử dụng ký hiệu quy tắc ngơn ngữ lập trình Prolog để làm quy tắc logic chuẩn Một chương trình Prolog cấu tạo hay nhiều mệnh đề (clause), thông thường mà mệnh đề Horn (Horn clause) Mỗi mệnh đề xây dựng từ hay nhiều vị từ (predicate), vị từ dùng để phát biểu, kết luận tập đối tượng kết trả dạng (true) hay sai (false) (hay gọi dạng liệu Boolean) Một mệnh Horn có dạng cú pháp sau (xem cơng thức 1): 𝑄 ∶ − 𝑃 = 𝑃5 ∧ 𝑃7 ∧ … ∧ 𝑃 (1) Với, • • • 𝑄, đầu mệnh đề, đại diện cho vị từ logic phần đầu mệnh đề, thường đại luật hay kết luận, dùng để thể phát biểu logic toán trường hợp tập vị từ P không rỗng (P ≠ ∅) 𝑃, thân mệnh đề, đại diện cho tập vị từ logic phần thân mệnh đề, P5 , P7 , … , P= , thông thường mệnh đề dạng Horn, chứa phép toán tử “và” (AND ∧) vị từ Trong số trường hợp tập P rỗng, mệnh đề hiểu dạng mô tả kiện (fact) toán : −, quy định điều kiện để luật/kết luận trả kết đúng, đọc “nếu” (if) Trong trường hợp biểu diễn logic toán học đại diện dấu “←”, đọc “kéo theo” Trong lập trình Prolog, vị từ dùng dạng thủ tục/hàm, với đối/tham số (arguments) gọi logic nguyên tử (logic atom), logic nguyên tử biểu diễn mối quan hệ hạng (term), hay nói cách khác hạng logic nguyên tử thể mối quan giữa chúng cấu thành mệnh đề Chúng ta có loại hạng phân biệt, bao gồm: • Hạng sơ cấp (elementary term): đối dạng số (constant) hay biến số (variable), tương tự ngôn ngữ lập trình thủ tục, ví dụ, dạng hàm như: f(1,2,3), f(1, a, b),v.v • Hạng phức hợp (compound term): thủ tục hay hàm (function) chứa hay nhiều đối Ví dụ: f5 (f7 ), f5 (f7 (a, b, c, d), v.v., giá trị trả hàm thuộc loại liệu Trong ngơn ngữ lập trình Prolog, ký hiệu vị từ (predicate), hàm (function) hạng (term) bắt đầu chữ thường, ký hiệu biến phải bắt đầu chữ viết hoa Các câu lệnh logic khai báo luật viết dạng mệnh đề Horn (mô tả công thức 1), quy ước kết thúc mệnh đề có dấu “.” Một mệnh đề logic Prolog dạng sau: • Một kiện (fact): ký hiệu: … tương đương tập vị từ phần thân mệnh đề, (P) rỗng, (P = ∅), hay hiểu theo cách khác có nghĩa kiện luật mà kết ln trả … ∶ −𝑡𝑟𝑢𝑒 Ví dụ: có mệnh đề dạng kiển sau: 𝑐ℎó_𝑠ó𝑖(𝐵ấ𝑐) – mơ tả chó sói tên Bấc, 𝑐𝑜𝑛_𝑐ó𝑐(𝑇í𝑎) – mơ tả cóc tên Tía, v.v • Một luật / kết luận (rule): ký hiệu: … :- … tương đương tập vị từ (P) không rỗng, (P ≠ ∅), gọi luật biểu diễn cho khẳng định hay phát biểu mệnh đề logic tốn, ví dụ ta dung mệnh đề logic để phát biểu luật như: 𝑐ℎó_𝑠ó𝑖_𝑝ℎươ𝑛𝑔_𝑏ắ𝑐 ∶ − 4_𝑐ℎâ𝑛 ∧ 𝑚à𝑢_𝑡𝑟ắ𝑛𝑔 – cho luật “chó sói phương bắc” có “4 chân” “màu trắng”, hay 𝑐ó𝑐 ∶ − 𝑚à𝑢_𝑥𝑎𝑛ℎ – cho luật “cóc” có “màu xanh” Một mệnh đề có số lượng vị từ thân lớn 1, hay P > 1, gọi luật đệ quy • Một truy vấn / câu hỏi (query/question): ký hiệu: ? − … , mệnh đề logic dạng câu hỏi cho Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT kiện chương trình, kết trả dạng Boolean, tức hay sai, ví dụ: cho câu hỏi ? − 𝑐ℎó_𝑠ó𝑖(𝐵ấ𝑐)., câu trả lời “true”, ngược lại ? − 𝑐ℎó_𝑠ó𝑖(𝑇í𝑎)., trả kết sai hay “false” – Tía cóc 2.3 CSDL dựa logic với ngơn ngữ Datalog Đươc phát triển ý tưởng ngôn ngữ lập trình logic Prolog, Datalog ngơn ngữ lập trình dựa logic vị từ nhằm hỗ trợ cho việc truy vấn suy diễn liệu Tương tự Prolog, nhiên Datalog thiết kế để dành riêng cho hệ quản trị CSDL suy diễn, đặc cho việc truy vấn suy diễn liệu Trong tảng CSDL suy diễn, Datalog không hỗ trợ để mô tả liệu quan hệ chúng mà truy vấn suy diễn mối quan hệ đó, nhằm mục đích sinh quan hệ hay liệu dạng tri thức Và hiển nhiên đánh giá tốt mạnh mẽ ngôn ngữ truy vấn truyền thống, điển SQL Ưu điểm vượt trội Datalog CSDL khả suy luận theo dạng luật đệ quy mà ngôn ngữ truy vấn truyền thống làm Tương tự Prolog, cú pháp Datalog viết dạng mệnh đề logic Horn để đặc tả suy diễn liệu Một cú pháp mệnh đề Horn, Datalog có dạng: 𝑄 ∶ − 𝑃 = P5 ∧ P7 ∧ … ∧ P= , tương tự Prolog, với: • (P) tập vị từ thân mệnh đề, P = P5 ∧ P7 ∧ … ∧ P= , mệnh đề logic Datalog theo chuẩn Horn, nên phép liên kết vị từ thân phải phép hội, hay “∧” “AND” • (Q) vị từ đầu mệnh đề, tập vị từ thân khơng rỗng Q đại diện cho kết luận hay luật, ngược lại đại diện cho kiện Trong trường hợp tập vị từ thân có số lượng nhiều luật định nghĩa dạng đệ quy Các ký hiệu/cú pháp thường dùng lập trình Datalog (xem Bảng 2.1): Bảng 2.1 Ký hiệu/cú pháp sử dụng Datalog Ký hiệu lập trình Datalog Các phép so sánh: , =, =, \= Phép kéo theo: “:-”, đọc “nếu” Tương đương logic toán học Các phép so sánh: , ≤, ≥, =, ≠ Phép hội: “,” Phép hội: ∧ “AND” Phép tuyển: “;” Phép tuyển: ∨ “OR” Phép kéo theo: “←” Ý nghĩa Đại diện cho phép so sánh vị từ mệnh đề logic Ví dụ: A > B, A == B, A B, v.v Phép kéo theo dùng để liên kết hai mệnh đề, ví dụ: A ← B, đọc B kéo theo A, mệnh đề vế B làm A đúng, điển hình như: 𝑐ó_4_𝑐ℎâ𝑛 ← 𝑐ℎó_𝑠ó𝑖 𝐵ấ𝑐 , 𝑐ó_𝑚à𝑢_𝑥𝑎𝑛ℎ ← 𝑐𝑜𝑛_𝑐ó𝑐 𝑇í𝑎 , v.v Dùng để liên kết hai hay nhiều mệnh đề, tất mệnh đề Ví dụ: A ← B ∧ C, A B C Dùng để liên kết hai hay nhiều mệnh đề, trả kết cần mệnh đề Ví dụ: A ← B ∨ C, A B C 2.3.1 Các hình thức mệnh đề logic Datalog Tương tự lập trình Prolog, tùy thuộc vào tập vị từ (P) thân, mà mệnh đề hiểu theo ba cách khác nhau, bao gồm kiện (fact), luật (rule) câu hỏi (question), chi tiết sau: 2.3.1.1 Một kiện (fact) mô tả cho liệu quan hệ Ký hiệu: … , tập vị từ thân (P) rỗng, mệnh đề có tác dụng mơ tả kiện (fact) liệu mối quan hệ liệu, ví dụ sau: Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT • (f1): 𝑐ℎ𝑎(𝑇𝑢ấ𝑛, 𝑁𝑎𝑚), (f2): 𝑚ẹ(𝑁𝑔𝑎, 𝑁𝑎𝑚), (f3): 𝑐ℎ𝑎(𝑁𝑎𝑚, 𝐻ư𝑛𝑔) – mô tả cho mối quan hệ cha, mẹ Nam lượt Tuấn Nga Trong trường hợp ta thấy kiện Datalog ()* • sẹ ()* đặc tả cho mối quan hệ trực tiếp liệu ví dụ: 𝑇𝑢ấ𝑛 Nam, 𝑁𝑔𝑎 Nam, 𝑁𝑎𝑚 Hưng (f4): 𝑛ℎâ𝑛_𝑣𝑖ê𝑛(𝑇𝑢ấ𝑛, "𝑈𝐼𝑇", "𝐾𝐻&𝐾𝑇𝑇𝑇"), mô tả cho liệu, Tuấn nhân viên làm việc trường ĐH UIT thuộc mơn KH&KTTT Ở ta thấy, tương tự CSDL quan hệ, kiện Datalog biểu diễn dạng liệu (tuple), với thuộc tính khác nhau, điển hình trường hợp dạng là: 𝑛ℎâ𝑛_𝑣𝑖ê𝑛 𝑡ê𝑛, đơ𝑛_𝑣ị_𝑐ơ𝑛𝑔_𝑡á𝑐, 𝑝ℎò𝑛𝑔_𝑏𝑎𝑛 2.3.1.2 Một kết luận/luật (rule) suy diễn từ kiện Ký hiệu: … :- … , mệnh đề xem kết luận hay luật để suy kiện (new facts) tập kiện có sẵn, ta có hai dạng luật sau, bao gồm: Luật khơng đệ quy: • • (r1): 𝑐ℎ𝑎_𝑚ẹ(𝑋, 𝑌) ← 𝑐ℎ𝑎(𝑋, 𝑌) ∨ 𝑚ẹ(𝑋, 𝑌) – từ kiện (f1): 𝑐ℎ𝑎(𝑇𝑢ấ𝑛, 𝑁𝑎𝑚) , (f2): 𝑚ẹ(𝑁𝑔𝑎, 𝑁𝑎𝑚), (f3): 𝑐ℎ𝑎(𝑁𝑎𝑚, 𝐻ư𝑛𝑔), ta có hai kiện (nf1): 𝑐ℎ𝑎_𝑚ẹ(𝑇𝑢ấ𝑛, 𝑁𝑎𝑚), (nf2): 𝑐ℎ𝑎_𝑚ẹ(𝑁𝑔𝑎, 𝑁𝑎𝑚), (nf3): 𝑐ℎ𝑎_𝑚ẹ(𝑁𝑎𝑚, 𝐻ư𝑛𝑔) Luật hiểu theo cách đơn giản là: “cha_mẹ” thực thể (X) cấu thành hai mệnh đề: “cha” (X) “mẹ” (X), dấu “∨” “OR”, trường hợp để chỉ, cần quan hệ “cha” “mẹ” có quan hệ “cha_mẹ” Trong Datalog ta ghi đơn giản luật sau: 𝑐ℎ𝑎_𝑚ẹ(𝑋, 𝑌) ∶ − 𝑐ℎ𝑎(𝑋, 𝑌) ; 𝑚ẹ(𝑋, 𝑌)., ký hiệu “;” tương đương cho phép tuyển “OR” (r2): ô𝑛𝑔_𝑏à(𝑋, 𝑌) ← 𝑐ℎ𝑎_𝑚ẹ(𝑋, 𝑍) ∧ 𝐜𝐡𝐚_𝐦ẹ(𝑍, 𝑌), tương tự luật trên, ta phát biểu cách vắn tắt sau: cha mẹ (X) thực thể (Z) đó, mà (Z) lại cha mẹ thực thể (Y), mối quan hệ (X) (Y) ông bà Điều kiện liên kết hai mệnh đề phép hội, đại diện cho dấu “∧” “AND” Tức có nghĩa hai mệnh đề: (X) “cha_mẹ” (Z( (Z) phải “cha_mẹ” (Y), phải – (X) gọi “ơng_bà” (Y) Như vậy, với ví dụ ta suy hai kiện là: (nf4) ô𝑛𝑔_𝑏à(𝑇𝑢ấ𝑛, 𝐻ư𝑛𝑔), (nf5) ô𝑛𝑔_𝑏à(𝑁𝑔𝑎, 𝐻ư𝑛𝑔) Trong Datalog ta ghi đơn giản lại luật sau: 𝑐ℎ𝑎_𝑚ẹ(𝑋, 𝑌) ∶ − 𝑐ℎ𝑎(𝑋, 𝑌) , 𝑚ẹ(𝑋, 𝑌)., ký hiệu “,” tương đương cho phép hội “AND” Luật đệ quy (recursion rule): Tuấn Nga cha Thanh Hà Nam cha b quản_lý mẹ mẹ Ngọc c quản_lý Hưng (A) d a quản_lý Tuấn (B) (C) Hình 2.2 Minh họa tốn điển hình giải đệ quy Là luật mà định nghĩa có gọi lại nó, khả định nghĩa luật đệ quy điểm mạnh Datalog, cho phép thực truy vấn phức tạp vét cạn theo chiều sâu liệu, điển tốn tìm nút gốc, tổ tiên gia phả gia đình, tìm tất cấp quản lý mà nhân 10 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT viên trực thuộc công ty, tốn tìm đường hai điểm đồ thị, v.v Để hiểu rõ vấn đề, qua ví dụ với số tốn điển hình sau: Bài tốn tìm tổ tiên người Đây tốn điển hình toán cần phải giải đệ quy, cho gia phả (như Hình 2.2-A), có luật kiện sau: • Các kiện biết: § (f1): 𝑐ℎ𝑎(𝑇𝑢ấ𝑛, 𝑁𝑎𝑚) § (f2): 𝑚ẹ(𝑁𝑔𝑎, 𝑁𝑎𝑚) § (f3): (, ) Cỏc lut ó nh ngha: Đ (r1): 𝑐ℎ𝑎_𝑚ẹ(𝑋, 𝑌) ← 𝑐ℎ𝑎(𝑋, 𝑌) ∨ 𝑚ẹ(𝑋, 𝑌) Với luật (r1) biết “cha_mẹ” người (X) kết hợp kiện “cha” “mẹ” Tuy nhiên, toán đặt làm để lấy danh sách tổ tiên (X) thơng qua tìm kiếm cấp cao là: “cha_mẹ” “cha_mẹ” (X), lên cấp “cha_mẹ” “cha_mẹ” “cha_mẹ”,v.v số lương cấp khơng biết trước Do đó, để trả lời câu hỏi phải định nghĩa luật dạng đệ quy sau: • (r3): 𝑡ổ_𝑡𝑖ê𝑛(𝑋, 𝑌) ← 𝑐ℎ𝑎_𝑚ẹ(𝑋, 𝑍) , 𝑡ổ_𝑡𝑖ê𝑛(𝑍, 𝑌) Luật diễn giải lại cách đơn gian sau, tìm kiếm cha mẹ (X) thực thể (Z) đó, với (Z) tổ tiên (Y) Bản chất luật có tính đệ quy thấy vị từ đại diện cho luật đề xuất đầu thân mệnh đề Bài tốn tìm cấp quản lý trực thuộc Tương tự tốn tìm tổ tiên người dựa gia phả, cho chế cấp quản lý đơn vị sau (Hình 2.2-B), ta có loạt kiện (facts) nh sau: Cỏc s kin (facts) ó bit: Đ (f5): 𝑞𝑢ả𝑛_𝑙ý(𝑁𝑔ọ𝑐, 𝑇𝑢ấ𝑛) (“Ngọc” quản lý “Tuấn”) § (f6): 𝑞𝑢ả𝑛_𝑙ý(𝐻à, 𝑁𝑔ọ𝑐) § (f7): 𝑞𝑢ả𝑛_𝑙ý(𝑇ℎ𝑎𝑛ℎ, 𝐻à) Câu hỏi đạt để tìm cấp quản lý cao nhân viên (X) đó, cấp trực thuộc họ, số lượng cấp trước Để làm việc thiết lập luật theo dạng đệ quy sau: • (r4): 𝑡ì𝑚_𝑞𝑢ả𝑛_𝑙ý(𝑋, 𝑌) ← 𝑞𝑢ả𝑛_𝑙ý(𝑋, 𝑍) , 𝑡ì𝑚_𝑞𝑢ả𝑛_𝑙ý(𝑍, 𝑌) Luật thực thi, giúp tìm tất cấp quản lý thực thể đó, ví dụ: 𝑡ì𝑚_𝑞𝑢ả𝑛_𝑙ý(𝑋, 𝑇𝑢ấ𝑛), là: “Ngọc”, “Hà”, “Thanh”, v.v dựa tập kiện định nghĩa Bài toán tìm đường hai đỉnh đồ thị Đây tốn điển hình việc áp dụng đệ quy để suy diễn Cho đồ thị có hướng, ký hiệu: G = (V, E), với (V) đại diện cho tập đỉnh/nút (vertex) đồ thị, (E) đại diện cho tập cạnh/cung (edge) đồ thị Tương tự vậy, dựa đồ thị hình minh họa (Hình 2.2-C), ta có tập kiện (facts) biết trước, sau: • Các kiện (facts) biết: § (f8): 𝑐ạ𝑛ℎ(𝑎, 𝑏) § (f9): 𝑐ạ𝑛ℎ(𝑎, 𝑐) § (f10): 𝑐ạ𝑛ℎ(𝑐, 𝑏) § (f11): 𝑐ạ𝑛ℎ(𝑏, 𝑑) Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT • • 15 Database: quản lý cấu trúc CSDL, bảng (table), view, v.v PDG: hỗ trợ trực quan hóa đồ thị luật phụ thuộc (dependency graph) Datalog 3.2 Tương tác với DES thông qua Console Hầu hết tương tác với DES để chạy đoạn code Datalog thông qua tập lệnh console Do đó, cần làm quen với số lệnh sau, bao gồm (xem Bảng 3.1): Bảng 3.1 Một số câu lệnh console phổ biến cần sử dụng làm việc với DES Lệnh /pwd /ls /cd /rm /cp /datalog /prolog /ra /sql /consult /reconsult /listing /assert /abolish /save_ddb /restore_ddb Mơ tả tính Các lệnh làm việc với file folder (giống với lệnh Linux) Xem vị trí thư mục đứng Liệt kê danh sách file va folder thu mục đứng Di chuyển đến thư mục khác Xóa file thư mục Sao chép file hay thư mục Các lệnh chuyển thư viện Chuyển sang chế độ thực thi lệnh thư viện Datalog Chuyển sang chế độ thực thi lệnh thư viện Prolog Chuyển sang chế độ thực thi lệnh thư viện đại số quan hệ (relational algebra) Chuyển sang chế độ thực thi lệnh thư viện SQL, SQL3 có hỗ trợ đệ quy Các lệnh làm việc với thư viện Datalog Tiến xóa CSDL nạp CSDL dạng cú pháp Datalog vào hệ thống Sau thay đổi lại file chứa code Datalog, cần nạp lại file mà khơng muốn xóa tồn CSDL cũ dùng lệnh Liệt kệ tất luật kiện CSDL có Chèn thêm luật hay kiện vào CSDL nạp Xóa tồn bộ, làm CSDL Datalog làm việc Lưu CSDL Datalog làm việc vào file Phục hồi/restore lại CSDL Datalog làm việc từ file 3.3 Thực hành Datalog với số ví dụ có sẵn DES Ngồi cung cấp môi trường tương tác làm việc thuận tiện, DES cung cấp cho người dùng số ví dụ viết sẵn ba dạng, bao gồm: • CSDL dạng Datalog (các file *.dl) • CSDL dạng SQL (các file dạng *.sql) • CSDL dạng đại số quan hệ (relational algebra) (các file dạng *.ra) Chúng ta sơ lược qua số ví dụ điển hình để làm quen với ngơn ngữ lập trình Datalog môi trường DES Thực hành với tập với gia phả gia đình (family): chuyển folder đứng sang folder “examples” – nơi chưa file CSDL mẫu dành cho thử nghiệm Để xem vị trí đứng, gõ lệnh “/pwd” console, mặc định folder đứng folder cài đặt phần mềm DES, để di chuyển sang folder “examples” dùng lệnh: “/cd examples”, minh họa Hình 3.2 Để liệt kê danh sách folders/files có thư mục đứng, dùng lệnh “/ls”, minh họa Hình 3.3 16 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT Hình 3.2 Minh họa bước di chuyển đến folder “examples” DES Hình 3.3 Minh họa dùng lệnh “/ls” liệt kê danh sách folders/files thư mục đứng DES Trong tập này, thực nghiệm với CSDL chứa liệu giai phả gia đình có sẵn DES, bao gồm files: “family.dl”, “family.sql” va “family.ra” Để nạp CSDL Datalog với file “family.dl” – ta dùng lệnh “/consult family.dl” minh họa Hình 3.5, thấy tổng cộng có 11 kiện/luật nạp để liệt kê danh sách liện luật ta dùng lệnh “/listing” minh họa Hình 3.6 tom grace cha carol I tony cha jack mẹ cha carol II mẹ amy mẹ fred mẹ cha carol III Hình 3.4 Minh họa gia phả CSDL family DES Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT 17 Hình 3.5 Minh họa nạp CSDL Datalog family với lệnh “/consult” Hình 3.6 Minh họa liệt kê danh sách kiện luật CSDL Datalog nạp Dữ liệu gia phả CSDL family DES minh họa tronh Hình 3.4, CSDL tác giả cung cấp cho hai luật định nghĩa sẵn, bao gồm: • (r1): parent(X,Y) :- father(X,Y) ; mother(X,Y)., nhằm phục vụ cho việc tìm kiếm cha mẹ người • (r2): ancestor(X,Y) :- parent(X,Z), ancestor(Z,Y)., nhằm phục vụ cho việc tìm kiếm tổ tiên người Chúng ta thấy phụ thuộc luật/sự kiện thông qua đồ thị phụ thuộc luật trực quan hóa cửa sổ PDG, đồ thị phụ thuộc cho CSDL family minh họa thông qua DES Hình 3.7 Hình 3.7 Minh họa đồ thị phụ thuộc luật xây dựng ứng với CSDL nạp DES 18 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT Chúng ta thử đựa số truy vấn vấn dạng câu hỏi Datalog để lấy liệu thơng qua console DES sau: • Tìm kiếm cha mẹ “amy” với lệnh parent(X, amy), kết trả từ console DES minh họa Hình 3.8 • Tìm kiếm tất tổ tiên “carolIII”, với lệnh ancestor(X, carolIII), kết trả từ console DES minh họa Hình 3.9 Hình 3.8 Minh họa cho kết trả câu hỏi: tìm cha mẹ “amy” DES Hình 3.9 Minh họa cho kết trả câu hỏi: tìm tất tổ tiên “carolIII” DES Chúng ta thử viết thêm hai luật dùng để tìm kiếm ông bà người vợ/chồng người, vào CSDL family có sẵn DES Để tìm kiếm ơng bà q đơn giản, cần tìm cha mẹ cha mẹ người kết quả, vợ/chồng theo logic, hai người có chung đồng nghĩa quan hệ vợ/chồng Hai luật có cấu trúc sau: • (r3): grand_parent(X,Y) :- parent(X,Z) , parent(Z,Y) • (r4): spouse(X,Y): parent(X,Z) , parent(Y,Z), X \= Y Để hoàn tất, lưu luật định nghĩa lại tiến hành nạp lại CSDL với lệnh “/reconsult family.dl”, minh họa Hình 3.10, chèn thêm luật vào CSDL nạp với lệnh: “/assert [nội dung luật]”, nhiên lưu ý tắt phần mềm luật khơng lưu ngược lại vào file, cách tốt ta nên viết trực tiếp vào file sau nạp ngược lại vào CSDL Sau nạp lại CSDL hoàn tất, ta thấy cấu trúc đồ thị luật phụ thuộc thay đổi lại minh họa Hình 3.11 Hình 3.10 Nạp lại CSDL Datalog với luật lệnh “/reconsult” Hình 3.11 Cấu trúc đồ thị luật phụ thuộc cập nhật với luật Và cuối kiểm thử lại hai luật thêm vào, với câu hỏi đơn giản như: tìm ơng bà “fred”, liệt kê danh sách tất cặp vợ chồng có CSDL (minh họa Hình 3.12 Hình 3.13) Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT Hình 3.12 Truy vấn tìm ơng bà người thơng qua luật (r3) 19 Hình 3.13 Truy vấn liệt kê tất cặp vợ chồng CSDL qua luật (r4) Ngồi ra, phần mềm DES hỗ trợ chạy file script SQL, bao gồm tác vụ như: tạo bảng, view, lập trình thủ tục, v.v Ở thực hành gia phả gia đình (family) này, DES cung cấp CSDL dạng SQL tương đương với Datalog file “family.sql”, để nạp file vào DES dùng lệnh “/process family.sql” Lưu ý trước thực nạp CSDL SQL vào DES, cần xóa tốn CSDL Datalog nạp từ trước lệnh “/abolish” (minh họa Hình 3.14) Sau hồn tất q trình nạp CSQL SQL vào DES, hình “Database” xem bảng view tạo CSDL vừa nạp (minh họa Hình 3.15) Hình 3.14 Minh họa nạp CSDL dạng SQL vào phần mềm DES Hình 3.15 DES hỗ trợ hiển thị trực quan bảng views CSDL SQL nạp Trong CSDL SQL cung cấp sẵn DES, viết sẵn hai thủ tục tạo views “parent” “ancestor” dùng để liệt kê danh sách cha mẹ tổ tiên người Ví dụ để liệt kê danh sách tổ tiên “fred” ta gọi view “ancestor” với truy vấn sau: SELECT * FROM ancestor WHERE descendant='fred'; Lưu ý trước nhập truy vấn SQL vào console DES cần chuyển chế độ tương tác thư viện sang dạng SQL lệnh “/sql”, kết truy vấn trả minh họa Hình 3.16 20 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT Hình 3.16 Minh họa câu truy vấn SQL liệt kê danh sách tổ tiên người DES ÁP DỤNG MƠ HÌNH CSDL SUY DIỄN TRONG KHAI THÁC MẠNG THÔNG TIN KHÔNG ĐỒNG NHẤT HỌC THUẬT DBLP Trong phần này, áp dụng tảng khả truy vấn đệ quy CSDL suy diễn để giải số tốn yếu việc khai thác mạng thơng tin không đồng nhất, lĩnh vực học thuật, cụ thể mạng thông tin DBLP[†] 4.1 Sơ lược mạng thông tin không đồng Mạng thông tin không đồng (heterogeneous information network) lý thuyết Sun Y J Han (2011) đưa nhằm để phân biệt với mạng thông tin đồng (homogeneous information network), mức độ phức tạp cấu trúc hình thức tiếp cận để khai thác tri thức từ chúng hồn tồn khác Định nghĩa mạng thơng tin (information network): hình thức tổ chức liệu dạng mạng đồ thị có hướng: G = (V, E), đó: (V) tập đại diện cho tập thực thể (𝑣) mạng thông tin (E) tập quan hệ/cung (𝑒), liên kết thực thể lại với Một mạng thông tin có hai tập (A) (R), với (A) đại diện cho tập loại thực thể tập (R) đại diện cho tập loại quan hệ, từ có hai hàm ánh xạ, sau: • 𝜙 𝑉 = 𝐴 và, 𝜙 𝑣 ∈ 𝐴 = {𝐴5 , 𝐴7 … 𝐴 } • 𝜓 𝐸 = 𝑅 và, 𝜓 𝑒 ∈ 𝑅 = {𝑅5 , 𝑅7 … 𝑅 } Như vậy, tùy thuộc vào hai tập (A) (R) mà phân biệt hai loại mạng thơng tin sau, bao gồm: • Mạng thông tin đồng (homogeneous): bao gồm loại thực thể loạt liên kết, hay ( 𝐴 = 𝑅 = 1) (minh họa Hình 4.1) • Mạng thơng tin đa tạp/khơng đồng (heterogeneous): có số lượng thực thể loại quan hệ thực thể lớn 1, hay ( 𝐴 > 𝑅 > 1) (minh họa Hình 4.2) † Mạng học thuật DBLP: http://dblp.uni-trier.de/ Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT KDD tham_khảo (reference_to) tham_khảo (reference_to) Bài báo B tham_khảo (reference_to) đăng_tại (published_at) ACM Bào bái n Bào bái Hình 4.1 Minh họa mạng thông tin đồng (homogeneous) Bài báo B Bài báo A tham_khảo (reference_to) tác_giả (author_of) đăng_tại tham_khảo (published_at) (reference_to) đăng_tại (published_at) tham_khảo (reference_to) đăng_tại (published_at) 21 tác_giả (author_of) J Han tác_giả (author_of) tác_giả (author_of) đăng_tại Bài báo A (published_at) R Agrawal tác_giả (author_of) tác_giả (author_of) SUN, Yizhou Hình 4.2 Minh họa mạng thông tin không đồng (heterogeneous) Đa số hình thức khai thác tri thức từ mạng thơng tin phát triển hầu hết áp dụng cho mạng thơng tin đồng nhất, điển hình như: PageRank, SimRank, SCAN, v.v phương pháp áp dụng cho mạng thơng tin có loại thực thể loại liên kết Nhưng hiển nhiên đa số mạng thông tin phổ biến tồn hình thức không đồng nhất, với cấu tạo đa loại thực thể liên đa loại liên kết, ví dụ mạng học thuật (DBLP, DBIS) với nhiều loại thực thể: “tác giả”, “hội nghị”, “bài báo”,v.v liên kết với nhiều hình thức khác nhau, như: “tác giả” bỏo ./ ƠƯă bi bỏo, bi hi ngh,v.v Hay cỏc mạng xã hội (Facebook, Twitter) với nhiều loại thực thể “người dùng”, “nhóm”, “bình luận”, “bài viết”,v.v liên kết với bng vụ loi kt ni: ngi dựng ă#ớ"# ƠƯă bỡnh lun, ngi dựng bỡnh lun,v.v Do ú, cn hình thức để khai thác tri thức hiệu từ mạng thông tin không đồng Trong thời gian gần đây, có số cơng trình cơng bố liên quan đến khai thác tri thức từ mạng thông tin không đồng nhất, tiếng thuật toán: RankClus, NetClus, PathSim, HeteSim, HeteRecom, v.v nhằm hỗ trợ cho tốn tính toán độ tương đồng, gom cụm, tư vấn khuyến nghị, v.v cho thực thể mạng thông tin đa tạp Đối với mơ hình khai thác mạng đa tạp, có hai vấn đề quan trọng nhất, là: 4.1.1 Vấn đề 1: suy luận ngữ nghĩa loại liên kết Có thể nói hình thức liên kết thực thể mạng thông tin khơng đồng vơ phức tạp, ngồi ý nghĩa trực tiếp loại liên kết, tập hợp loại liên kết hàm chứa ý nghĩa mới, ví dụ: biết quan h: ƠƯă tỏc gi bi bỏo (ch mi quan hệ tác giả báo đó) Nnhng vi mt chui quan h dng nh sau: ƠƯă ƠƯă tỏc gi bi bỏo tỏc gi (ch mi quan hệ hai tác giả viết chung báo) Thì suy diễn đơn giản dạng quan hệ “đồng tác giả” – có nghĩa tác giả viết chung báo Tuy nhiên, mặt lưu trữ, quan hệ hoàn toàn ẩn cần phải suy diễn người nhận biết Các chuỗi liên kết gọi siêu liên kết (meta-path) Do đó, tốn đặt làm thiết lập tập luật lưu trữ hiệu loại quan hệ cần phả suy diễn áp dụng CSDL suy diễn hướng giải pháp tiềm 22 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT 4.1.2 Vấn đề 2: tìm đường theo siêu liên kết (meta-path) định nghĩa Bản chất mơ hình khai thác mạng thơng tin khơng đồng hướng tiếp cận dựa dựa siêu liên kết định nghĩa (meta-path-based mining approach) Về meta-path dạng chuỗi liên kết dùng để mối quan hệ ngữ nghĩa suy diễn người, lấy lại ví dụ mạng thông tin không đồng học thuật DBLP, có hàng loạt meta-path định nghĩa với ngữ nghĩa tương ứng sau (xem Bảng 4.1): Bảng 4.1 Một số meta-path phổ biến mạng học thuật DBLP Meta-path A-P-A (author-paper-author) A-Aff.-A (author-affiliation-author) A-P-V-P-A (author-paper-venue-paper-author) … Ngữ nghĩa Quan hệ đồng tác giả, hai tác giả viết chung báo Quan hệ đồng nghiệp, hai tác giả làm việc quan, trường đại học Quan hệ hai tác giả nộp chung viết họ hội nghị khoa học … Tùy theo mục đích tìm kiếm mà meta-path lựa chọn khác nhau, khác meta-path sử dụng cho mơ hình khai thác tri thức mạng thơng tin, có kết trả khác Ví dụ, ta muốn tìm kiếm tác giả tương đồng với “Jiawei Han” mà họ hay nộp chung báo số hội nghị đó, ta chọn meta-path: A-P-V-P-A Trong ý tưởng mơ hình khai thác mạng thơng tin theo meta-path, tốn tìm tổng số đường hai thực thể theo meta-path định quan trọng nhất, coi dạng tốn tìm tất đường hai đỉnh cho trước đồ thị Và hiển nhiên rằng, tốn áp dụng đệ quy để giải áp dụng CSDL suy diễn hướng giải pháp tiềm cho toán 4.2 Áp dụng CSDL suy diễn khai thác mạng thông tin không đồng 4.2.1 Mơ hình lưu trữ mạng thơng tin Có hai hình thức lưu trữ mạng thông tin áp dụng CSDL dạng bảng quan hệ truyền thống CSDL đồ thị để lưu trữ, hình thức ta có cách thức lưu trữ khác nhau, bao gồm: • CSDL bảng quan hệ (RDBMS): loại thực thể loại quan hệ lưu trữ bảng riêng biệt, mạng thông tin có (A) loại thực thể (R) loại quan hệ ta có số lượng bảng A + |R| Ngơn ngữ truy vấn SQL (minh họa database table schema Hình 4.3) • CSDL đồ thị (Graph database): hình thức lưu trữ phổ biến loại mạng thông tin, đặc biệt mạng xã hội Mỗi thực thể lưu trữ nút đồ thị quan hệ nút biểu diễn cung Số lượng nút với số lượng thực thể |V|, số lượng cung với số lượng quan hệ |E| Ngôn ngữ truy vấn Cypher (minh họa Hình 4.4) Trong giới hạn tốn, hai hình thức lưu trữ có mặt hạn chế khơng thể suy diễn quan hệ tìm ẩn thực thể thiệt lập thủ tục đệ quy để giải tốn liên quan đến tìm tất đường nút mạng thông tin Trong hướng tiếp cận luận này, ta xử dụng hệ quản trị CSDL đóng vai trò làm tảng lưu trữ kiện (fact), dạng hình thức CSDL mở rộng (extensional database ED) Còn chế suy diễn truy vấn liệu mối quan hệ chúng giao lại cho Datalog, đóng vai trò CSDL theo mục đích (intentional database) Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT 23 Hình 4.3 Mạng thơng tin DBLP lưu trữ tảng CSDL bảng quan hệ Hình 4.4 Mạng thơng tin DBLP lưu trữ tảng CSDL đồ thị Neo4J 4.2.2 Mô tả, chuyển đổi liệu mạng thông tin thành kiện Để suy diễn mối quan hệ lưu trữ tảng CSDL mở rộng, bước đầu ta phải định nghĩa chuyển đổi toàn liệu quan hệ sang dạng tập kiện Datalog Điển hình mạng thơng tin DBLP ta có tất loại thực thể, là: “author”, “paper”, “venue”, “topic”, “affiliation”, loại quan hệ, bao gồm: “author”-“paper”, “author”-“affiliation”, “paper”-“paper”, “paper”-“topic”, “paper”-“venue” Chúng ta mô tác thực thể quan hệ này dạng loại kiện, dạng khối liệu (tuple), sau: Các tuple mô tả thực thể (entity), bao gồm: • paper(paper_id, paper_title,…).: mơ tả thực thể paper – báo khoa học, với thuộc tính 24 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT • • • • kèm như: tiêu đề, abstract, năm xuất bản,v.v author(author_id, author_name,…).: mô tả thực thể author – tác giả, với thuộc tính kèm như: tên, quan công tác,v.v venue(venue_id, venue_name,…).: mô tả thực thể venue – hội nghị khoa học, với thuộc tính kèm như: tên hội nghị, v.v affiliation(aff_id, aff_name,…).: mô tả thực thể quan công tác/trường đai học nơi làm việc tác giả, với thuộc tính kèm tên quan, quốc gia,v.v topic(topic_id, topic_name,…).: mô tả thực thể topic – chủ đề báo, với thuộc tính kèm như: tên chủ đề, chủ đề con, v.v Các tuple mơ tả mối quan hệ (relation), bao gồm: • author_of(author_id, paper_id).: mô tả mối quan hệ tác giả (author) - báo (paper) • work_at(author_id, affiliation_id).: mơ tả mối quan hệ làm việc tác giả (author) - quan cơng tác, trường ĐH (affiliation) • cite(paper_id, paper_id).: mơ tả mối quan hệ trích dẫn (citations/references) báo với • submit_at(paper_id, venue_id).: mô tả mối quan hệ báo (paper) – hội nghị (venue), báo nộp đăng hội nghị • belong_to(paper_id, topic_id).: mơ tả mối quan hệ báo (paper) – chủ đề (topic), báo thuộc chủ đề 4.2.3 Bài tốn 1: Áp dụng CSDL suy diễn suy luận ngữ nghĩa liên kết mạng thông tin DBLP 4.2.3.1 Suy diễn mối quan hệ đồng tác giả (co-author relationship) Đây mối quan hệ phổ biến mạng học thuật, có nghĩa hai tác giả chia viết chung báo, mạng thơng tin quan hệ ẩn hợp thành chui liờn kt theo dng: tỏc ƠƯă ƠƯă gi bi báo” thêm vào luật sau: “tác giả” (minh họa Hình 4.5), để suy diễn mối quan hệ Datalog, ta Hình 4.5 Minh họa quan hệ đồng tác giả - hai tác giả viết chung báo DBLP • (r1): co_author(X,Y) :- author_of(X,Z) , author_of(Y,Z), X\=Y Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT 25 4.2.3.2 Suy diễn mối quan hệ đồng nghiệp (co-worker relationship) Tương tự quan hệ đồng tác giả - thực thể “tác giả” s cú thờm cỏc quan h l ng nghip, -đ_ƠƯ"_ăƯ -đ_ƠƯ"_ăƯ liờn kt cú dng: tỏc gi c quan tỏc giả” – suy diễn từ mối quan hệ trực tiếp hai tác giả công tác quan hay trường đại học Luật diễn giải sau: • (r2): co_worker(X,Y) :- work_at(X,Z) , work_at(Y,Z), X\=Y Hình 4.6 Minh họa quan hệ đồng nghiệp tác giả - làm chung quan hay trường đại hịa DBLP 4.2.3.3 Suy diễn mối quan hệ đồng trích dẫn báo (co-citation relationship) Luật dùng để suy diễn mối quan hệ báo có chung danh sỏch cỏc ti liu tham kho, liờn kt ăớ"#_ ¨°í"#_±ẫ có dạng: : “bài báo” “bài báo” “bài báo” – có nghĩa hai báo tham khảo báo (minh họa Hình 4.7) Việc tìm kiếm quan hệ đồng trích dẫn báo phục vụ cho việc đánh giá liên quan thực thể mạng thông tin, cụ thể báo Luật diễn giải sau: • (r3): paper_same_citation_set(X,Y) :- cite(X,Z) , cite(Y,Z), X\=Y Hình 4.7 Mơ tả qua hệ trích dẫn báo mạng DBLP 4.2.3.4 Suy diễn mối quan hệ đồng chủ đề báo (same-topic relationship) Tương tự quan hệ suy diễn đồng trích dẫn, báo DBLP phân loại để thuộc hay nhiều chủ đề khác nhau, để xác định tập báo có chung chủ đề ta cần phải áp dụng luật suy 26 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Hc C S D Liu Nõng Cao - UIT ă#" ¨#³ộ" diễn chuỗi quan hệ sau: “bài báo” “chủ đề” “bài báo” Việc xác định báo có chung tập chủ đề đóng vai trò quan trọng việc tính tốn tương đồng Luật diễn giải sau: • (r4): paper_same_topic(X,Y) :- belong_to(X,Z) , belong_to(Y,Z), X\=Y 4.2.3.5 Tìm báo trích dẫn gốc luật đệ quy (root cited paper) Hình 4.8 Minh họa quan hệ trích dẫn đa cấp DBLP Cũng vấn đề liên quan đến khám phá quan hệ trích dẫn báo khoa học mạng thông tin Thông thường thực tham khảo báo khoa học công bố, hàng loạt tài liệu trích dẫn liệt kê báo, báo trích dẫn lại tiếp tục trớch dn cỏc bi bỏo trc ú na , ăớ"#_ ¨°í"#_±ẫ ¨°í"#_±ẫ liên kết có dạng: “bài báo” “bài báo” … “bài báo” toán đặt để tìm báo trích dẫn gốc từ hàng loạt quan hệ trích dẫn (minh họa Hình 4.8) Việc xác định báo trích dẫn gốc đóng vai trò quan trọng việc giải tốn liên quan đến tìm kiếm khám phá ảnh hưởng mạng thông tin không đồng Để giải tốn trên, ta áp dụng luật đệ quy tìm kiếm đường quan hệ trích dẫn báo Luật đệ quy để giải toán diễn giãi hai luật, sau: • • (r5-a): root_cited_paper(X,Y) :- cite(X,Y) (r5-b): root_cited_paper(X,Y) :- cite(X,Z) , root_cited_paper(Z,Y) 4.2.3.6 Tìm chủ đề gốc báo theo luật đệ quy (root paper’s topic) Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT 27 Hình 4.9 Minh họa phân cấp chủ đề DBLP Như biết, báo thuộc hay nhiều chủ đề khác nhau, chủ đề phân bố thuộc chủ đề cha đó, hay gọi phân cấp chủ đề (topic tree) (minh họa Hình 4.9), ví dụ chủ đề: “programming language” thuộc chủ đề cha “software engineering”, “association rule” có chủ đề cha “data mining”,v.v tốn đặt làm để xác định chủ đề gốc báo đó, để giải vấn đề tương tự tốn tìm báo trích dẫn gốc, áp dụng luật đệ quy để giải Luật đệ quy để giải toán diễn giãi hai luật, sau: • • (r6-a): root_belong_topic(X,Y) :- belong_to(X,Y) (r6-b): root_belong_topic(X,Y) :- belong_to(X,Z) , root_belong_topic(Z,Y) 4.2.4 Bài toán 2: Áp dụng CSDL suy diễn việc giải tốn tìm đường theo siêu liên kết (metapath) định nghĩa Như đề cập hai vấn đề trọng yếu khai thác mạng thơng tin khơng đồng nhất, tốn tìn đường hai thực thể thơng qua meta-path định nghĩa, quan trọng Vì phục vụ trực tiếp cho mơ hình khai thác tri thức mạng thơng tin Ví dụ điển mơ hình tính tốn tương đồng thực thể PathSim (Sun Yizhou cộng - 2011), mô hình hệ thống khuyến nghị: HeteRecom (Chuan Shi cộng - 2016), v.v Meta-path định nghĩa mới, coi dạng chuỗi liên kết, áp dụng toán liên quan đến tính tốn đánh giá tương đồng thực thể mạng thơng tin đa tạp Ví dụ, có số lập luận liên qua đến tương đồng meta-path theo diễn giải cụ thể, sau (xem Bảng 4.2): Bảng 4.2 Đánh giá tương đồng thông qua ngữ nghĩa Meta-path khai thác mạng thông tin không đồng Mạng thông tin học thuật (DBLP/DBIS) Mạng xã hội ( Facebook, Twitter) Các meta-path ngắn – suy diễn luật quan hệ trực tiếp: • Meta-path A-P-A (tác_giả - bài_báo – tác_giả): hai tác giả có mối quan hệ đồng tác giả - viết chung báo, hiển nhiên tương đồng với • Meta-path A-Aff-A (tác_giả - cơ_quan – tác_giả): luật q hiển nhiên, ta biết, hai tác giả làm việc quan hay trường đại học chắn họ giống có tương đồng với Các meta-path dài – cần phải đánh giá chế tìm đường thực thể theo meta-path: • Meta-path A-P-V-P-A (tác_giả - bài_báo – hội_nghị - bài_báo – tác_giả): meta-path quan hệ liên kết hai tác giả có mức độ phức tạp hơn, ta diễn giải lại luật sau: hai tác giả cho tương đồng họ thường xuyên nộp chung báo với số hội nghị định Như vậy, ta lý luận số lượng đường có dạng: A-P-V-P-A hai tác giả nhiều đồng nghĩa họ tương đồng với Các meta-path ngắn – suy diễn luật quan hệ trực tiếp: • Meta-path U-C-U (người_dùng – bình_luận – người_dùng): ví dụ hai người dùng thích bình luật hay phản hồi bình luận hiển nhiên hai người dùng có tương đồng với • Meta-path U-G-U (người_dùng – nhóm – người_dùng): meta-path hiển nhiên hai người dùng tham gia vào nhóm hiển nhiên họ có tương đồng với Các meta-path dài – cần phải đánh giá chế tìm đường thực thể theo meta-path: • Meta-path U-C-P-C-U (người_dùng – bình luận – viết – bình luận người_dùng): meta-path có nghĩa người dùng bình luận viết đó, theo ngữ nghĩa rõ ràng họ có tương đồng quan tâm đến 28 Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT vấn đề đó, thơng qua viết đăng mạng xã hội p1 p4 SIGMOD Tí p2 p5 Tèo KDD p3 p6 Hình 4.10 Minh họa tốn tìm đường thơng qua meta-path hai tác giả DBLP Hiển nhiên rằng, meta-path có kích thước ngắn, ta giải dễ dàng, việc định nghĩa luật suy diễn thông qua quan hệ trực tiếp hai thực thể đề cập mục 4.2.3 Tuy nhiên meta-path dài ví dụ như: A-P-V-P-A, phải áp dụng chế tìm đường hai thực thể dựa đệ quy cho meta-path cụ thể Ví dụ, cụ thể tốn tìm đường hai tác giả thông qua meta-path, ví dụ: minh họa Hình 4.10, ta thấy hai tác giả “Tí” “Tèo” ta có số lượng đường theo meta-path: A-P-V-P-A, 6, bao gồm đường: • Tí p1 SIGMOD p4 Tèo • Tí p2 SIGMOD p4 Tèo • Tí p3 SIGMOD p4 Tèo • Tí p1 SIGMOD p5 Tèo • Tí p2 SIGMOD p5 Tèo • Tí p3 SIGMOD p5 Tèo Để xác định đường tác giả thông qua meta-path A-P-V-P-A, với hai tác giả (X) (Y), ta định nghĩa luật để tìm đường sau: • (r7): meta_path_APVPA(X,Y) :- author_of(X,P1) , submit_at(P1,V) , submit_at(P2,V) , author_of(Y,P2) Luật cấu thành thành phần, bao gồm: • author_of(X,P1): tác giả (X) công bố tập báo (P1) • author_of(Y,P2): tác giả (Y) cơng bố tập báo (P2) • submit_at(P1,V): tập báo tác giả (X) (P1) đăng/công bố hội nghị cụ thể (V) • submit_at(P2,V): tập báo tác giả (Y) (P2) đăng/công bố hội nghị cụ thể (V) – (V) tập chung cho hội nghị mà (X) (Y) đăng báo họ, (P1) (P2) KẾT LUẬN & HƯỚNG PHÁT TRIỂN Mục đích tiệu luận tập trung vào nghiên cứu tìm hiểu tảng CSDL suy diễn ngơn ngữ lập trình Datalog Từ nghiên cứu CSDL suy diễn Datalog, tiến hành áp dụng Phạm Thế Anh Phú / Báo Cáo Tiểu Luận Môn Học Cơ Sở Dữ Liệu Nâng Cao - UIT 29 nghiên cứu lên việc hỗ trợ khám phá tri thức từ mạng thông tin , thông qua việc áp dụng ngôn ngữ luật Datalog việc suy diễn mối quan hệ thực thể trong mạng thông tin không đồng Ngoài ra, với mạnh Datalog việc giải tốn đệ quy, chúng tơi áp dụng để giải tốn tìm đường theo meta-path phục vụ cho tốn xác định tính toán tương đồng thực thể mạng thông tin không đồng Chúng cài đặt thực nghiệm mơ hình với hỗ trợ phần mềm DES (Deductive Educational System) liệu thật mạng thơng tin học thuật DBLP, Vì DES phần mềm phục vụ cho mục đích giáo dục, nên hạn chế nhiều mặt liên quan đến hiệu suất hoạt động tương tác với ngơn ngữ lập trình khác Do vậy, cải tiến tới, trọng vào việc khảo sát, lựa chọn phát triển hệ thống tảng ngơn ngữ lập trình trung gian để tương tác tốt với Datalog có khả mở rộng, điển thư viện: PyDatalog (nền tảng Python)[‡], Jena (nền tảng Java) [§], Jatalog (nền tảng Java)[**], v.v TÀI LIỆU THAM KHẢO [1] RAMAKRISHNAN, Raghu; GEHRKE, Johannes, Database management systems, 2000: McGraw Hill [2] RAMAKRISHNAN, Raghu; ULLMAN, Jeffrey D., "A survey of deductive database systems," The journal of logic programming, vol 23, no 2, pp 125-149, 1995 [3] Deductive databases and their applications, COLOMB, Robert, CRC Press, 2014 [4] GREEN, C Cordell; RAPHAEL, Bertram., "The use of theorem-proving techniques in questionanswering systems," Proceedings of the 1968 23rd ACM national conference ACM, pp 169181, 1968 ‡ PyDataLog: https://sites.google.com/site/pydatalog/ Apache Jena: https://jena.apache.org/ ** Jatalog: https://www.codeproject.com/Articles/1114911/Jatalog-A-Datalog-deductive-database-in-Java § ... HÌNH CSDL SUY DIỄN TRONG KHAI THÁC MẠNG THÔNG TIN KHÔNG ĐỒNG NHẤT HỌC THUẬT DBLP Trong phần này, áp dụng tảng khả truy vấn đệ quy CSDL suy diễn để giải số tốn yếu việc khai thác mạng thông tin. .. áp dụng CSDL suy diễn hướng giải pháp tiềm cho toán 4.2 Áp dụng CSDL suy diễn khai thác mạng thông tin không đồng 4.2.1 Mơ hình lưu trữ mạng thơng tin Có hai hình thức lưu trữ mạng thơng tin áp... (deduction) đời, hay gọi vắn tắt CSDL suy diễn (deduction database) 1.2 Sơ nét lịch sử phát triển hệ CSDL suy diễn 1.2.1 Lịch sử phát triển CSDL suy diễn Cơ sở liệu suy diễn [1] [2] [3] ban đầu đề