Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng

87 698 1
Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng

Đ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

i LỜI CẢM ƠN Nhờ dẫn dắt thầy, cô giáo trường Đại học Lạc Hồng đến tơi hồn thành luận văn tốt nghiệp Tơi xin chân thành cảm ơn thầy, cô trường Đại học Lạc Hồng nói chung Khoa Cơng Nghệ Thơng Tin nói riêng tận tình bảo, hướng dẫn cho tơi suốt thời gian khóa học Tơi xin bày tỏ lòng biết ơn thầy Nguyễn Quang Tấn, người trực tiếp hướng dẫn thực luận văn Nếu khơng có truyền đạt kiến thức quý báo hướng dẫn tận tình thầy chắn luận văn khó hồn thành Cuối tơi xin gửi lời cám ơn đến gia đình, bạn bè, người ln bên chúng tơi, động viên khuyến khích tơi trình thực đề tài nghiên cứu Mặc dù cố gắng, song chắn luận văn khơng tránh khỏi thiếu sót Tơi mong nhận thơng cảm ý kiến đóng góp tận tình thầy, giáo bạn quan tâm tới lĩnh vực luận văn Xin chân thành cảm ơn! Đồng Nai, ngày tháng năm 2013 Học viên Bùi Văn Lem ii LỜI CAM ĐOAN Tôi xin cam đoan kết nghiên cứu luận văn, vấn đề mang tính phổ biến mà tác giả đề cập tới dƣới dạng định nghĩa khái niệm hoàn toàn mới, vấn đề tham khảo đƣợc trích dẫn cụ thể Các hình, minh họa, ví dụ kết tác giả thực Nội dung đề tài chƣa đƣợc công bố cơng trình nghiên cứu khác Tơi xin cam đoan gi p đ cho việc thực luận văn đƣợc cảm ơn thông tin trích dẫn luận văn đƣợc rõ nguồn gốc Chúng tơi xin hồn tồn chịu trách nhiệm nội dung luận văn Đồng Nai, ngày tháng Học viên Bùi Văn Lem năm 2013 iii MỤC LỤC Đề mục Trang LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii DANH MỤC CÁC TỪ VIẾT TẮT vi DANH MỤC BẢNG vii MỞ ĐẦU CHƢƠNG 1: TỔNG QUAN 1.1 Nguồn gốc phát triển lập luận logic 1.2 Nguồn gốc nhu cầu phát triển CSDL suy diễn 1.3 Nội dung luận văn CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tri thức hiểu biết 2.1.1 Một số khái niệm 2.1.2 Phân loại tri thức theo đại 11 2.2 Biểu diễn tri thức 12 2.3 Biểu diễn tri thức luật dẫn xuất (luật sinh) 14 2.3.1 Khái niệm 14 2.3.2 Cơ chế suy luận luật sinh 15 2.3.3 Ƣu điểm nhƣợc điểm biểu diễn tri thức luật 18 2.3.3.1 Ƣu điểm 18 2.3.3.2 Nhƣợc điểm 18 2.4 Công nghệ tri thức 19 2.4.1 Xử lý tri thức 19 2.4.2 Xử lý tri thức luật 19 2.4.3 Xử lý tri thức luật có dùng biến 21 2.4.4 Xử lý tri thức lập luận 22 iv 2.5 Khái quát lập trình logic 26 2.6 Ngôn ngữ Prolog 28 2.6.1 Prolog ngơn ngữ lập trình logic 28 2.6.2 Xây dựng kiện luật 30 2.6.2.1 Xây dựng kiện 30 2.6.2.2 Xây dựng luật 35 2.6.3 Một số ví dụ chƣơng trình prolog 37 2.7 Kết luận 40 CHƢƠNG 3: CƠ SỞ DỮ LIỆU SUY DIỄN 41 3.1 Giới thiệu chung 41 3.2 Một số khái niệm sở 42 3.2.1 Ngôn ngữ cấp 42 3.2.2 Chƣơng trình logic 43 3.3 Cơ sở liệu suy diễn 45 3.3.1 Định nghĩa tổng quát 45 3.3.2 Định nghĩa theo toán học 46 3.3.3 Cấu trúc sở liệu suy diễn 46 3.3.3.1 Tập kiện 46 3.3.3.2 Tập luật suy diễn 47 3.3.3.3 Ràng buộc toàn vẹn (RBTV) 48 3.4 Chƣơng trình Datalog 51 3.4.1 Mô hình liệu 51 3.4.2 Cú pháp 52 3.4.3 Ngữ nghĩa 52 3.4.4 Cấu tr c 53 3.5 Truy vấn Datalog (Datalog Query) 55 3.5.1 Định nghĩa 55 3.5.2 Cấu trúc 56 3.5.3 So sánh Datalog với đại số quan hệ 58 v 3.6 Chƣơng trình Datalog có chứa ký hiệu hàm 62 3.7 Kết luận 63 CHƢƠNG CÀI ĐẶT DEMO ỨNG DỤNG 64 4.1 Mục tiêu 64 4.2 Cấu tr c chƣơng trình 64 4.3 Mơ hình luồng xử lý toán 65 4.4 Môi trƣờng thực nghiệm 66 4.5 Quy trình thực 66 4.5.1 Đặt vấn đề 66 4.5.2 Quy trình thực 67 4.5.3 Thực chƣơng trình 75 CHƢƠNG 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 78 TÀI LIỆU THAM KHẢO vi DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt Diễn giải Ghi CSDL Cơ sở liệu DES Datalog Education System EDB Extended Database Cơ sở liệu ngoại diên IDB Intentional Database Cơ sở liệu nội hàm RBTV Ràng buộc toàn vẹn DANH MỤC HÌNH Tên hình Trang Hình 2.1: Cấu tr c đồ thị AND/OR 17 Hình 2.2: Các bƣớc xử lý tri thức dựa luật 20 Hình 2.3: Cây gia hệ 30 Hình 2.4: Quan hệ ơng bà đƣợc hợp thành từ hai quan hệ cha mẹ 33 Hình 3.1: Đồ thị khơng có chu trình 58 Hình 3.2: Đồ thị có chu trình 58 Hình 4.1: Mơ hình luồng xử lý toán 66 Hình 4.2: Giao diện chạy chƣơng trình 76 Hình 4.3: Thao tác nạp liệu cho chƣơng trình 76 Hình 4.4: Lựa chọn liệu cho chƣơng trình 77 Hình 4.5: Giao diện chƣơng trình sau nạp liệu 77 Hình 4.6: Giao diện lựa chọn tìm kiếm theo chủ đề 78 Hình 4.7: Giao diện kết chƣơng trình 78 vii DANH MỤC BẢNG Tên bảng Trang Bảng 2.1: Đối tƣợng trâu 24 Bảng 2.2: Bảng CSDL mô tả đặc điểm ngƣời 38 Bảng 3.1: Kiểu liệu DES 50 Bảng 3.2: Bảng quan hệ Quản lý công nhân 60 Bảng 4.1: Bảng liệu mẫu 75 MỞ ĐẦU Ch ng ta sống kỷ nguyên đại với phát triển bùng nỗ công nghệ thông tin Và sở liệu (CSDL) lĩnh vực quan trọng mà cần phải quan tâm Hầu hết ứng dụng có sử dụng đến CSDL: ứng dụng web, phần mềm quản lý,… Có nhiều mơ hình CSDL khác đƣợc đƣa vào ứng dụng thực tế: CSDL quan hệ, CSDL phân tán, CSDL hƣớng đối tƣợng,…Trong số đó, nói CSDL quan hệ đƣợc ứng dụng rộng rãi nhất, mang lại nhiều thành công CSDL quan hệ cho phép tiếp nhận, lƣu trữ xử lý lƣợng lớn liệu Việc nghiên cứu CSDL quan hệ đạt đƣợc nhiều thành cơng, có nhiều đóng góp lớn việc quản lý Tuy nhiên việc tiếp nhận, lƣu trữ xử lý liệu, ngƣời ta cần loại CSDL có khả suy luận thông tin từ liệu đƣợc lƣu trữ Để đáp ứng nhu cầu thực tế mơ hình CSDL đời, mơ hình CSDL suy diễn Ngồi việc lƣu trữ thông tin cách rõ ràng theo kiểu CSDL quan hệ, CSDL suy diễn lƣu giữ đƣợc luật có khả suy diễn kết dựa liệu có So với CSDL quan hệ CSDL suy diễn thừa nhận kiểu lý thuyết chứng minh, nghĩa đƣợc xem xét nhƣ lý thuyết bao gồm tập công thức cấp một, việc thực câu truy vấn làm thỏa mãn RBTV xem nhƣ chứng minh công thức cấp hệ logic lý thuyết cho CSDL suy diễn mở rộng CSDL quan hệ bên cạnh tính chất, ngun tắc vốn có CSDL quan hệ cịn có thêm nguyên tắc tổng quát, nhƣ quy tắc suy diễn RBTV CHƢƠNG 1: TỔNG QUAN Nội dung chƣơng 1: Trình bày tổng quan nguồn gốc phát triển lập luận logic; nhu cầu CSDL suy diễn thực tế tổng quan nội dung luận văn 1.1 Nguồn gốc phát triển lập luận logic Theo truyền thống, Logic đƣợc nghiên cứu nhƣ nhánh triết học, đƣợc nhắc đến nhƣ ngành nghiên cứu tiêu chí đánh giá luận Mặc dù định nghĩa xác logic vấn đề bàn cãi triết gia Tuy nhiên mơn học đƣợc xác định nhiệm vụ nhà logic học nhƣ cũ Đó là, làm đẩy mạnh tiến việc phân tích suy luận có hiệu lực suy luận ngụy biện để ngƣời ta phân biệt đƣợc luận hợp lý luận có chỗ khơng hợp lý Từ kỷ 19, logic đƣợc nghiên cứu toán học luật (theo http://www.wikipedia.org) Gần logic đƣợc áp dụng vào khoa học máy tính trí tuệ nhân tạo Là ngành khoa học hình thức, logic nghiên cứu phân loại cấu trúc khẳng định lý lẽ, hai thông qua việc nghiên cứu hệ thống hình thức việc suy luận qua nghiên cứu lý lẽ ngôn ngữ tự nhiên Tầm bao quát logic rộng, từ đề tài cốt lõi nhƣ nghiên cứu lý lẽ ngụy biện nghịch lý, đến phân tích chuyên gia lập luận Chẳng hạn lập luận có xác suất đ ng lý lẽ có liên quan đến quan hệ nhân Ngày logic đƣợc sử dụng lý thuyết lý luận Qua suốt trình lịch sử, có nhiều quan tâm việc phân biệt lập luận tốt lập luận không tốt, logic đƣợc nghiên cứu số dạng nhiều quen thuộc với Trong tốn học triết học phân tích, logic đƣợc nhấn mạnh nhƣ đối tƣợng nghiên cứu riêng logic đƣợc nghiên cứu mức độ trừu tƣợng Một tác phẩm logic sớm tồn đến ngày Aristotle Logic Aristotle đƣợc chấp nhận rộng rãi khoa học toán học Phƣơng Tây đến đầu kỷ 19 Hệ thống logic Aristotle phù hợp cho việc giới thiệu suy diễn giả định logic quy nạp Ở Châu Âu, cuối thời kỳ trung đại, có nhiều nỗ lực nhằm chứng tỏ tƣ tƣởng Aristotle tƣơng thích với niềm tin Cơ Đốc Trong suốt thời kỳ Trung Kỳ Trung Cổ, logic trở thành đề tài nhà triết học, ngƣời muốn tham gia vào tranh luận triết học phân tích logic học Lập luận hay Suy luận đƣợc định nghĩa khác tùy theo ngữ cảnh hiểu biết lý tính nhƣ hình thức tri thức Định nghĩa lơgic hành động sử dụng lý tính để rút kết luận từ tiền đề định cách sử dụng phƣơng pháp luận cho trƣớc Suy luận, với trực giác phƣơng pháp thuộc nhận thức tự phát Suy luận, phƣơng pháp quan trọng để nhận thức tìm kiếm chân lý Nhận thức suy luận kiểu nhận thức gián tiếp Nhận thức định lý toán học, định luật khoa học nhờ suy luận Vì rằng, suy luận thiết địi hỏi phải có trung gian, phán đốn, khái niệm Ví dụ để nhận biết tƣơng đƣơng A C A=B, B=C,thì phải sử dụng khái niệm phƣơng trình, số hạng, tƣơng đƣơng Suy luận có tính trừu tƣợng tổng quát Suy luận dựa vào phán đoán, khái niệm mà phải thừa nhận khái niệm trừu tƣợng tổng quát Ví dụ khái niệm " ngƣời" định tất ngƣời nói lên đặc tính chung lồi ngƣời, khơng nói đến tính riêng biệt nhƣ tính chất thông thái vƣợt trội Socrates, dũng mãnh nhƣ Hercules hay tính ích kỹ, tham lam, nhỏ nhen cá nhân Suy luận gắn liền với ngơn ngữ điểm khác biệt với trực giác Vì điều nhận biết đƣợc nhờ suy luận, làm cho ngƣời khác hiểu 66 Mơi trƣờng thực nghiệm 4.4  Chƣơng trình đƣợc cài đặt ngôn ngữ Visual C# đƣợc thử nghiệm hệ điều hành Windows 32bit, máy tính PC tốc độ 1,6 GHz, nhớ 1Gb RAM  Toàn CSDL mẫu đƣợc thiết kế lƣu trữ Microsoft Office 2010  Bộ thƣ viện SWI-Prolog cho windows 32bit  Bộ Visual studio 2010 4.5 Quy trình thực 4.5.1 Đặt vấn đề Cho câu sau: Tác giả X viết sách Y Sách Y đƣợc viết tác giả X Tác giả X viết sách Y vào năm Z NXP P phát hành sách Y tác giả X vào năm Z Với câu ta suy đƣợc dạng câu hỏi tƣơng ứng nhƣ sau: 1.1 Tác giả viết sách X ? 1.2 Tác giả X viết sách nào? 2.1 Sách đƣợc viết tác giả X ? 2.2 Sách X đƣợc viết tác giả ? 3.1 Tác giả viết sách X vào năm Y ? 3.2 Tác giả X viết sách vào năm Y ? 3.3 Tác giả X viết sách Y vào năm ? 4.1 NXB phát hành sách X tác giả Y vào năm Z ? 4.2 NXB X phát hành sách tác giả Y vào năm Z ? 4.3 NXB X phát hành sách Y tác giả vào năm Z ? 4.4 NXB X phát hành sách Y tác giả Z vào năm ?  Yêu cầu là: Tạo ứng dụng để xử lý truy vấn 67 4.5.2 Quy trình thực Bƣớc 1: Xây dựng văn phạm cho dạng câu hỏi  Dạng câu hỏi 1.1: Tác giả viết sách X? sentence(s(NP,VP)) > np(NP), vp(VP) vp(vp(V,NP)) > verb(V), np2(NP) verb(verb(viet)) >[viet] np(np(N,PN)) > n(N),wh(PN) n(n('tac gia')) >[tac,gia] wh(wh(nao)) >[nao] np2(np2(N,PN)) > n2(N),pron(PN) n2(n2(sach)) >[sach] pron(pron([H|T])) > [H|T]  Dạng câu hỏi 1.2: Tác giả X viết sách nào? sentence(s(NP,VP)) > np(NP), vp(VP) vp(vp(V,NP)) > verb(V), np2(NP) verb(verb(viet)) >[viet] np(np(N,PN)) > n(N),pron(PN) n(n('tac gia')) >[tac,gia] pron(pron([H|T])) > [H|T] np2(np2(N,PN)) > n2(N),wh(PN) n2(n2(sach)) >[sach] wh(wh(nao)) >[nao]  Dạng câu hỏi 2.1: Sách đƣợc viết tác giả X? sentence(s(NP,VP)) > np(NP), vp(VP) vp(vp(V,NP)) > pass_verb(V), np2(NP) pass_verb(pass_verb('duoc viet boi')) >[duoc,viet,boi] np(np(N,PN)) > n(N),wh(PN) 68 n(n(sach)) >[sach] wh(wh(nao)) >[nao] np2(np2(N,PN)) > n2(N),pron(PN) n2(n2('tac gia')) >[tac,gia] pron(pron([H|T])) > [H|T]  Dạng câu hỏi 2.2: Sách X đƣợc viết tác giả nào? sentence(s(NP,VP)) > np(NP), vp(VP) vp(vp(V,NP)) > pass_verb(V), np2(NP) pass_verb(pass_verb('duoc viet boi')) >[duoc,viet,boi] np(np(N,PN)) > n(N),pron(PN) n(n(sach)) >[sach] pron(pron([H|T])) > [H|T] np2(np2(N,PN)) > n2(N),wh(PN) n2(n2('tac gia')) >[tac,gia] wh(wh(nao)) >[nao]  Dạng câu hỏi 3.1: Tác giả viết sách X vào năm Y? sentence(s(NP,VP,ADV)) > np(NP), vp(VP),adv(ADV) vp(vp(V,NP)) > verb(V), np2(NP) verb(verb(viet)) >[viet] np(np(N,PN)) > n_tacgia(N),wh(PN) n_tacgia(n_tacgia('tac gia')) >[tac,gia] wh(wh(nao)) >[nao] np2(np2(N,PN)) > n_sach(N),pron(PN) n_sach(n_sach(sach)) >[sach] pron(pron([H1|T1])) > [H1|T1] adv(adv(Prep,Time)) > prep(Prep),time(Time) prep(prep(vao)) > [vao] time(time(N,Number)) > n_year(N),number(Number) 69 n_year(n_year(nam)) > [nam] number(number([H2|T2])) > [H2|T2]  Dạng câu hỏi 3.2: Tác giả X viết sách vào năm Y? sentence(s(NP,VP,ADV)) > np(NP), vp(VP),adv(ADV) vp(vp(V,NP)) > verb(V), np2(NP) verb(verb(viet)) >[viet] np(np(N,PN)) > n_tacgia(N),pron(PN) n_tacgia(n_tacgia('tac gia')) >[tac,gia] pron(pron([H1|T1])) > [H1|T1] np2(np2(N,PN)) > n_sach(N),wh(PN) n_sach(n_sach(sach)) >[sach] wh(wh(nao)) >[nao] adv(adv(Prep,Time)) > prep(Prep),time(Time) prep(prep(vao)) > [vao] time(time(N,Number)) > n_year(N),number(Number) n_year(n_year(nam)) > [nam] number(number([H2|T2])) > [H2|T2]  Dạng câu hỏi 3.3: Tác giả X viết sách Y vào năm nào? sentence(s(NP,VP,ADV)) > np(NP), vp(VP),adv(ADV) vp(vp(V,NP)) > verb(V), np2(NP) verb(verb(viet)) >[viet] np(np(N,PN)) > n_tacgia(N),pron(PN) n_tacgia(n_tacgia('tac gia')) >[tac,gia] pron(pron([H1|T1])) > [H1|T1] np2(np2(N,PN)) > n_sach(N),pron(PN) n_sach(n_sach(sach)) >[sach] pron(pron([H2|T2])) > [H2|T2] adv(adv(Prep,Time)) > prep(Prep),time(Time) 70 prep(prep(vao)) > [vao] time(time(N,Num)) > n_year(N),wh(Num) n_year(n_year(nam)) > [nam] wh(wh(nao)) >[nao]  Dạng câu hỏi 4.1: NXB phát hành sách X tác giả Y vào năm Z? sentence(s(NP,VP,ADV)) > np1(NP),vp(VP),adv(ADV) vp(vp(V,NP,PP)) > verb(V),np2(NP),pp(PP) verb(verb('phat hanh')) > [phat,hanh] np1(np1(N,PN)) > n_nxb(N),wh(PN) n_nxb(n_nxb(nxb)) > [nxb] wh(wh(nao)) > [nao] np2(np2(N,PN)) > n_sach(N),pron_sach(PN) n_sach(n_sach(sach)) >[sach] pron_sach(pron_sach([H|T])) > [H|T] pp(pp(Prep,NP)) > prep_tg(Prep),np3(NP) prep_tg(prep_tg(cua)) > [cua] np3(np3(N,PN)) > n_tacgia(N),pron_tacgia(PN) n_tacgia(n_tacgia('tac gia')) > [tac,gia] pron_tacgia(pron_tacgia([H|T])) > [H|T] adv(adv(Prep,Time)) > prep(Prep),time(Time) prep(prep(vao)) > [vao] time(time(N,Number)) > n_year(N),number(Number) n_year(n_year(nam)) > [nam] number(number([H2|T2])) > [H2|T2]  Dạng câu hỏi 4.2:NXB X phát hành sách tác giả Y vào năm Z? sentence(s(NP,VP,ADV)) > np1(NP),vp(VP),adv(ADV) vp(vp(V,NP,PP)) > verb(V),np2(NP),pp(PP) verb(verb('phat hanh')) > [phat,hanh] 71 np1(np1(N,PN)) > n_nxb(N),pron_nxb(PN) n_nxb(n_nxb(nxb)) > [nxb] pron_nxb(pron_nxb([H|T])) > [H|T] np2(np2(N,PN)) > n_sach(N),wh(PN) n_sach(n_sach(sach)) >[sach] wh(wh(nao)) > [nao] pp(pp(Prep,NP)) > prep_tg(Prep),np3(NP) prep_tg(prep_tg(cua)) > [cua] np3(np3(N,PN)) > n_tacgia(N),pron_tacgia(PN) n_tacgia(n_tacgia('tac gia')) > [tac,gia] pron_tacgia(pron_tacgia([H|T])) > [H|T] adv(adv(Prep,Time)) > prep(Prep),time(Time) prep(prep(vao)) > [vao] time(time(N,Number)) > n_year(N),number(Number) n_year(n_year(nam)) > [nam] number(number([H2|T2])) > [H2|T2]  Dạng câu hỏi 4.3: NXB X phát hành sách Y tác giả vào năm Z? sentence(s(NP,VP,ADV)) > np1(NP),vp(VP),adv(ADV) vp(vp(V,NP,PP)) > verb(V),np2(NP),pp(PP) verb(verb('phat hanh')) > [phat,hanh] np1(np1(N,PN)) > n_nxb(N),pron_nxb(PN) n_nxb(n_nxb(nxb)) > [nxb] pron_nxb(pron_nxb([H|T])) > [H|T] np2(np2(N,PN)) > n_sach(N),pron_sach(PN) n_sach(n_sach(sach)) >[sach] pron_sach(pron_sach([H|T])) > [H|T] pp(pp(Prep,NP)) > prep_tg(Prep),np3(NP) prep_tg(prep_tg(cua)) > [cua] 72 np3(np3(N,PN)) > n_tacgia(N),wh(PN) n_tacgia(n_tacgia('tac gia')) > [tac,gia] wh(wh(nao)) > [nao] adv(adv(Prep,Time)) > prep(Prep),time(Time) prep(prep(vao)) > [vao] time(time(N,Number)) > n_year(N),number(Number) n_year(n_year(nam)) > [nam] number(number([H2|T2])) > [H2|T2]  Dạng câu hỏi 4.4: NXB X phát hành sách Y tác giả Z vào năm nào? sentence(s(NP,VP,ADV)) > np1(NP),vp(VP),adv(ADV) vp(vp(V,NP,PP)) > verb(V),np2(NP),pp(PP) verb(verb('phat hanh')) > [phat,hanh] np1(np1(N,PN)) > n_nxb(N),pron_nxb(PN) n_nxb(n_nxb(nxb)) > [nxb] pron_nxb(pron_nxb([H|T])) > [H|T] np2(np2(N,PN)) > n_sach(N),pron_sach(PN) n_sach(n_sach(sach)) >[sach] pron_sach(pron_sach([H|T])) > [H|T] pp(pp(Prep,NP)) > prep_tg(Prep),np3(NP) prep_tg(prep_tg(cua)) > [cua] np3(np3(N,PN)) > n_tacgia(N),pron_tacgia(PN) n_tacgia(n_tacgia('tac gia')) > [tac,gia] pron_tacgia(pron_tacgia([H|T])) > [H|T] adv(adv(Prep,Time)) > prep(Prep),time(Time) prep(prep(vao)) > [vao] time(time(N,Num)) > n_year(N),wh(Num) n_year(n_year(nam)) > [nam] wh(wh(nao)) > [nao] 73 Bƣớc 2: Kết hợp với Prolog để tạo cấu trúc cho câu hỏi dƣới dạng suy diễn để xử lý (dựa vào văn phạm đƣợc xây dựng trên) Ví dụ: Tác giả viết sách Tin học đại cƣơng vào năm 2000? Parse thành c pháp nhƣ sau: s(np(n_tacgia(tacgia),wh(nao)),vp(verb(viet),np2(n_sach(sach),pron([tin,hoc,dai, cuong]))),adv(prep(vao),time(n_year(nam),number([2000])))) Bƣớc 3:Xác định đối tƣợng để hỏi câu giả thiết biết liên qua tới đối tƣợng đƣợc hỏi Tiếp tục ví dụ trên:  Đầu tiên ta xác định từ truy vấn “nào” nằm vị trí Dựa vào câu: s(np(n_tacgia(tacgia),wh(nao)),vp(verb(viet),np2(n_sach(sach),pron([tin,h oc,dai,cuong]))),adv(prep(vao),time(n_year(nam),number([2000]))))  Ta thấy từ “nào” nằm “wh(nao)” đồng thời “wh(nao)” nằm np(n_tacgia(tacgia),wh(nao)), ta xác định đƣợc np chứa  Tiếp đến, muốn biết đối tƣợng để hỏi ta dựa vào đối tƣợng n(noun) nằm np vừa xác định  Ở đây, n n_tacgia (tacgia) nên đối tƣợng cần hỏi tác giả  Sau đó, dựa vào đối tƣợng cịn lại (trừ VP) để xác định giả thiết  Ở giả thiết (đối tƣợng biết)là : Sách: Tin học đại cương(np2(n_sach(sach), pron([tin,hoc,dai,cuong]))) Năm: 2000 (adv(prep(vao),time(n_year(nam),number([2000])))) Bƣớc 4: Xây dựng CSDL  CSDL gồm thông tin sách nhƣ: Tên sách, tác giả, nhà xuất bản, năm phát hành 74  Vì ứng dụng nhỏ CSDL đƣợc tổ chức lƣu bảng dạng nhƣ sau: Bảng 4.1: Bảng liệu mẫu Sách Tác giả NXB Năm KINH TE HOC VI MO DAVID BEGG THONG KE 2012 NGAN HANG DAU TU MAC QUANG HUY TRE 2012 KE TOAN TAI CHINH TRAN XUAN NAM TRE 2003 GIAO TRINH C# NGUYEN HAI LINH THOI DAI 2005 LAP TRINH VISUAL BASIC 6.0 NGUYEN CHI HIEU THOI DAI 2001 KINH TE HOC PHAT TRIEN NGUYEN THANH HAI TRE 2003 CACH LAM GIAU NHANH NHAT TRAN XUAN NAM THONG KE 2003 THI TRUONG CHUNG KHOAN NGUYEN CONG NGHI THONG KE 2002 1001 CHIEU THUC TIEP THI NGUYEN HANH THOI DAI 2008 KINH TE NGAY NAY TRAN BINH TRE 2010 GIAO TRINH C# NGUYEN HAI LINH TRE 2004 KY THUAT WORD 2010 NGUYEN HAI LINH THONG KE 2011 NHAP MON TIN HOC NGUYEN HANH THONG KE 2014 PHIM TAT TRONG WORD HAI NAM THOI DAI 2001 THU THUAT EXCEL TRAN NAM HAI TRE 2003 Bƣớc 5: Thực truy vấn cho kết cần tìm Sau có đƣợc giả thiết (đối tƣợng biết) kết luận (đối tƣợng chƣa biết) ta tiến hành truy vấn dựa CSDL đƣợc xây dựng 75 4.5.3 Thực chƣơng trình Bƣớc 1:Khởi động chƣơng trình:Giao diện chƣơng trình nhƣ sau: Hình 4.2: Giao diện chạy chương trình Bƣớc 2: Nạp liệu: Hệ thống Nạp liệu Hình 4.3: Thao tác nạp liệu cho chương trình 76 Hình 4.4:Lựa chọn liệu cho chương trình Hình 4.5:Giao diện chương trình sau nạp liệu 77 Bƣớc 3: Lựa chọn tìm kiếm theo chủ đề: - Tìm kiếm thơng tin sách - Tìm kiếm thơng tin tác giả - Tìm kiếm thơng tin Nhà Xuất Bản Hình 4.6:Giao diện lựa chọn tìm kiếm theo chủ đề Bƣớc 4: - Chọn câu hỏi từ menu sổ xuống - Nhập biến tìm kiếm - Nhấp chọn nút Tìm kiếm để xem kết Hình 4.7: Giao diện kết chương trình 78 CHƢƠNG 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Trong đề tài giới thiệu cách tƣơng đối đầy đủ C S D L suy diễn, khả biểu diễn CSDL thông qua ngôn ngữ logic; đồng thời giới thiệu ngơn ngữ lập trình tƣơng thích để biểu diễn sở tri thức logic mơ tả, ngơn ngữ Prolog (tiền thân ngơn ngữ Datalog) Đề tài trình bày khả ứng dụng logic biểu diễn mơ hình CSDL suy diễn Đề tài thảo luận khả thực truy vấn thông qua cách thức biểu diễn ngôn ngữ Datalog, biến đổi luật Datalog thành mô tả khái niệm logic mô tả Với khả biểu diễn, truy vấn logic mô tả ta suy rộng rằng, CSDL đƣợc biến đổi thành sở tri thức, với ngữ nghĩa truy vấn phong phú Tuy nhiên, công việc làm đƣợc, đề tài mang tính lý thuyết Chúng tơi xây dựng đƣợc chƣơng trình DEMO đơn giản, nên chắn chƣa hồn tồn thuyết phục Vì vậy, kế hoạch cơng việc tƣơng lai để hoàn thành sâu, ứng dụng ngôn ngữ suy diễn (chẳng hạn Prolog, Datalog, Racer ) để xây dựng đƣợc chƣơng trình ứng dụng thực tế với quy mơ lớn hơn, hoàn thiện Ở nƣớc ta nhƣ giới việc nghiên cứu CSDL suy diễn ít, nguồn tài liệu nghiên cứu đề tài hạn chế Do đề tài chắn cịn nhiều hạn chế, chúng tơi mong thầy, cô bạn đồng nghiệp đóng góp ý kiến để đề tài đƣợc hồn thiện 79 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Ths Đinh Nguyễn Anh Dũng, “Biểu diễn tri thức”(2001) NXB Thống Kê [2] TS Phan Huy Khánh, “Lập trình logic Prolog”(2004), NXB Đại học quốc gia Hà Nội [3] Vũ Đức Thi, ”Cơ sở liệu”, NXB Thống kê, 2004 [4] Đỗ Trung Tuấn, “Hệ chuyên gia”, Nxb Giáo dục, 1998 [5] Đỗ Trung Tuấn, “Trí tuệ nhân tạo”, Nxb Đại học Quốc gia Hà Nội, 2010 [6] Lê Mạnh Thạnh, Trƣơng Công Tuấn (2002), “Tối ưu câu truy vấn chương trình Datalog”, Báo cáo Hội nghị Tốn học toàn quốc lần VI Huế [7] Biên dịch: Trần Đức Quang (1999), Nguyên lý hệ Cơ sở liệu Cơ Lê Mạnh Thạnh, Trƣơng Công Tuấn (2003), “Tối ưu hóa câu truy vấn sở liệu suy diễn phép biến đổi ma tập”, Tạp chí Tin học Điều khiển học Tiếng Anh [8] Apt K R., “Logic Programming” (1990), Elsevier Science Publishers, pp 135144 [9] Arni, F., Ong, K., Tsur, S., Wang, H., and Zaniolo, “The deductive database system LDL++” TPLP 3, (2003), 61–94 [10] Ceri S , Gottlob G., Tanca L, ”Logic Programming and Databases” (1990), Springer-Verlag Berlin Heidelberg Publishers, pp.54-63 [11] Clark K L, “Negation as failure in Logic and Databases”(1978), H Gallaire and J Minker, editors, Plenum Press, New York, pp 293-322 [12] H Ait-Kaci and R Nasr, "LOGIN: A Logic Programming Language with Built-in Inheritance"(1986) Journal of Logic Programming, pp 187-215 [13] LTF Ganut, "Introduction to Logic"(1991) The University of Chicago Press, pp 178-193 80 [14] In J Minker, editor, “Foundation of Deductive Databases and Logic Programming” (1972), Morgan Kaufmann, Publishers, pp 126-144 [15] J Ullman, "Database and Knowledge Base Systems"(1988), Computer Press, pp 171-178 [16] S Tsur and C Zaniolo, "LDL: A Logic Based Data Language"(1986) Proc of the 12th Int Conf on Very Large Database, Tokyo, pp 203-214 WEBSITE THAM KHẢO [17] http:// en.wikipedia.org/wiki/Deductive_database(22/02/2013) [18] http://wiki.visualprolog.com/index.php?title=New_Features_in_Visual_Prol og_7.4#IDE.(27/02/2013) [19] http://www.cs.sunysb.edu/~warren/xsbbook/node12.html.(01/03/2013) [20] http://docs.racket-lang.org/datalog.(11/03/2013) [21] www.cs.ucla.edu/~zaniolo/papers.(15/03/2013) [22] http://tainguyenso.vnu.edu.vn/xmlui/handle/123456789/10492(17/03/2013) [23] http://123doc.vn/collection/1043-csdl.htm (20/03/2013) [24] http://tailieutonghop.com/free/logic-mo-ta-va-ung-dung-trong-co-so-du- lieu_f254-7649.html(22/03/2013) [25] http://cse.unl.edu/~riedesel/pub/cse413/des/doc/manualDES.pdf ... nghiên cứu ứng dụng vấn đề có ý nghĩa lý thuyết thực tiễn 1.3 Nội dung luận văn Tên đề tài: ? ?Nghiên cứu sở liệu suy diễn ứng dụng? ?? Luận văn gồm chƣơng: Chƣơng 1: Tổng quan Nội dụng chính: Trình... luận nhƣ sau: Lập luận theo cách suy diễn: Con ngƣời dùng lập luận suy diễn để rút thông tin từ thông tin biết Các thông tin có quan hệ logic với Lập luận suy diễn dùng kiện toán gọi tiên đề kiến... quan hệ, CSDL suy diễn có khả lƣu trữ lƣợng lớn thông tin nhƣ việc suy diễn thơng tin Các hệ hỗ trợ định, hệ chuyên gia lĩnh vực có ứng dụng kỹ thuật CSDL suy diễn Ngồi cịn đƣợc ứng dụng rộng rãi

Ngày đăng: 27/11/2014, 14:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan