Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 94 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
94
Dung lượng
1,99 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TRẦN NGUYỄN THANH NGÂN XÂY DỰNG NGÔN NGỮ TRUY VẤN CHO ONTOLOGY COKB Chuyên ngành: Đảm bảo Toán học cho Máy tính và Hệ thống tính toán Mã số: 60 46 35 LUẬN VĂN THẠC SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC PGS. ĐỖ VĂN NHƠN Thành phố Hồ Chí Minh - 2011 LỜI CÁM ƠN Xin chân thành cám ơn PGS. Đỗ Văn Nhơn, người đã tận tình hướng dẫn và có những ý kiến quý báu giúp tôi trong suốt quá trình học tập nghiên cứu để hoàn thành đề tài. Xin chân thành cám ơn quý Thầy Cô khoa Toán Tin và khoa Công nghệ Thông tin đã tận tình hướng dẫn và cung cấp những kiến thức bổ ích. Xin chân thành cám ơn các bạn học viên cùng khóa đã giúp đỡ và động viên tôi trong lúc khó khăn. Tác giả cũng xin chân thành cám ơn các đồng nghiệp tại Trung tâm Tin học Đại học Sư phạm, Ban Giám Đốc Trung tâm Tin học đã hỗ trợ và tạo điều kiện thuận lợi cho tôi trong suốt quá trình thực hiện đề tài. Xin dành lòng biết ơn sâu sắc cho gia đình và các bạn hữu xa gần. Trần Nguyễn Thanh Ngân 6 LỜI MỞ ĐẦU Trong khoa học về trí tuệ nhân tạo, vấn đề nghiên cứu về các mô hình và các phương pháp biểu diễn tri thức đóng vai trò rất quan trọng cho việc thiết kế các hệ cơ sở tri thức và các hệ chuyên gia. Hiện nay có nhiều mô hình và phương pháp biểu diễn tri thức cho các hệ thống cơ sở tri thức khác nhau đã được đưa ra và có nhiều ứng dụng trong nhiều lĩnh vực [6], [10], [16]. Trong đó, ontology là một phương pháp hiện đại đã và đang được nghiên cứu phát triển do khả năng ứng dụng của nó trong việc biểu diễn tri thức, đặc biệt là việc xây dựng các hệ trí tuệ nhân tạo phân tán [15]. Một số ontology được đề xuất để xử lý cho một miền tri thức cụ thể. Liệu có mô hình ontology nào có thể biểu diễn và xử lý được nhiều miền tri thức? Một trong những ontology đã được hình thành và được xây dựng từ quá trình nghiên cứu những phương pháp cho việc biểu diễn tri thức và thiết kế các hệ cơ sở tri thức ứng dụng thực tế cũng như các hệ giải toán dựa trên tri thức là ontology COKB - Computational Object Knowledge Base Ontology (gọi tắt là COKB-ONT) [1]. Nó bao gồm mô hình, ngôn ngữ đặc tả, ngôn ngữ truy vấn và kỹ thuật xử lý hay suy diễn. Đây là một phương pháp hiện đại, dễ dàng cho người sử dụng và dùng cho bộ suy diễn. Theo mô hình COKB, các bài toán được mô hình hóa được dễ dàng để thiết kế các thuật toán giải tự động và đề xuất ngôn ngữ đơn giản để đặc tả. Với ontology COKB, chúng ta có thể biểu diễn cho nhiều miền tri thức khác nhau như toán học, vật lý, …Vậy làm thế nào để người dùng tìm kiếm và truy vấn tri thức trong kho cơ sở tri thức đã được đặc tả bởi ngôn ngữ đặc tả COKB? Trong luận văn này, tập trung xây dựng và phát triển một ngôn ngữ đặc tả truy vấn trên mô hình biể u diễn tri thức COKB-ONT. Ngôn ngữ truy vấn này sẽ giúp ta truy vấn tri thức trong cơ sở tri thức các đối tượng tính toán biểu diễn thông qua ontology COKB một cách hiệu quả và tự nhiên hơn. 1 Mục lục Mục lục 1 Danh mục ký hiệu, chữ viết tắt 4 Danh mục các bảng biểu, đồ thị 5 LỜI MỞ ĐẦU 6 Chương 1. TỔNG QUAN 7 1.1. Ontology là gì? 7 1.1.1. Ontology trong triết học 7 1.1.2. Ontology trong tin học 7 1.2. Mô hình tri thức các đối tượng tính toán - ontology COKB 9 1.3. Mục tiêu đề tài 15 Chương 2. NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB 18 2.1. Các quy ước mô tả cú pháp COL 18 2.2. Các thành phần của COL (elements language) 18 2.2.1. Tập ký tự (characters set) 18 2.2.2. Từ vựng (tokens) 19 2.2.3. Kiểu dữ liệu 22 2.3. Cú pháp và ngữ nghĩa 24 2.3.1. Biểu thức (expression) 24 2.3.2. Câu lệnh (statement) 26 2.3.3. Định nghĩa C-Object 27 2.3.4. Các phân cấp 30 2.3.5. Sự kiện 30 2.3.6. Quan hệ 32 2.3.7. Luật 33 2 2.3.8. Hàm 34 2.3.9. Phép toán 36 2.3.10. Cú pháp khai báo 37 2.4. Tổ chức cơ sở tri thức theo COL 39 Chương 3. NGÔN NGỮ TRUY VẤN ONTOLOGY COKB 45 3.1. Định nghĩa 45 3.2. Quy ước về cú pháp câu truy vấn 46 3.3. Từ khóa truy vấn 46 3.4. Cú pháp 47 3.4.1. Truy vấn tính đúng sai của phát biểu 47 3.4.2. Truy vấn các khái niệm trong ontology 52 3.4.2.1 Loại không chứa đối số 52 3.4.2.2 Loại chứa đối số 53 3.4.3. Truy vấn tính chất của khái niệm 58 3.4.3.1 Liên quan đến một khái niệm 58 3.4.3.2 Liên quan đến một số thuộc tính của đối tượng, đối tượng khác hay liên quan đến các khái niệm khác như quan hệ, phép toán 60 3.4.3.3 Thỏa điều kiện cho trước 61 3.4.4. Truy vấn thông tin có điều kiện 62 3.4.4.1 Thông tin giả thiết thỏa điều kiện 62 3.4.4.2 Thông tin kết luận thỏa điều kiện giả thiết 63 3.5. Thuật giải 63 3.5.1. Thuật giải cho câu truy vấn loại 1. 63 3.5.2. Thuật giải cho câu truy vấn loại 2. 66 3.5.3. Thuật giải cho câu truy vấn loại 3. 69 3.5.4. Thuật giải cho câu truy vấn loại 4. 69 3 3.5.5. Chương trình chính. 70 Chương 4. ỨNG DỤNG 72 4.1. Mô tả ứng dụng 72 4.2. Tổ chức các biến lưu trữ cơ sở tri thức trong chương trình 74 4.3. Một số thủ tục chính 76 4.4. Đánh giá kết quả thực hiện chương trình 80 Chương 5. KẾT LUẬN 90 5.1. Kết quả đạt được 90 5.2. Hạn chế của luận văn 91 5.3. Hướng phát triển 92 Tài liệu tham khảo. 93 Phụ lục A: Danh sách câu truy vấn Đại số tuyến tính 95 Phụ lục B: Ký pháp EBNF 114 4 Danh mục ký hiệu, chữ viết tắt CSTT cơ sở tri thức. COKB Computational Object Knowledge Base. COKB-ONT Computational Object Knowledge Base Ontology. PTTT phương trình tuyến tính. C C-Objects. H Hierarchy. R Relations. Ops Operators. Funcs Functions. 5 Danh mục các bảng biểu, đồ thị Hình 1.1 Biểu đồ Hasse thể hiện phân cấp của các khái niệm tam giác Hình 3.1 Lưu đồ thuật toán loại 1 Hình 3.2 Lưu đồ thuật toán loại 2 Hình 4.1 Sơ đồ quá trình thực hiện truy vấn Hình 4.2: Bảng kết quả thực hiện câu truy vấn loại 1 7 Chương 1. TỔNG QUAN Chương này sẽ trình bày tổng quan về khái niệm ontology và giới thiệu một ontology dùng để biểu diễn tri thức - ontology COKB [1]. Tiếp theo sẽ trình bày mục tiêu của đề tài về xây dựng ngôn ngữ truy vấn cho tri thức biểu diễn theo mô hình COKB. 1.1. Ontology là gì? Ontology là một thuật ngữ được dùng trong trí tuệ nhân tạo có nguồn gốc từ triết học và mang nhiều ý nghĩa khác nhau. 1.1.1. Ontology trong triết học Thuật ngữ “Ontology” đã xuất hiện từ rất sớm. Theo Aristotle thì “ontology là một siêu hình học nghiên cứu về sự tồn tại và hiện thân của tự nhiên.” Đối tượng nghiên cứu của ontology xoay quanh sự tồn tại, sự phân loại và cấu trúc của các đối tượng, các thuộc tính, biến cố, quy trình và các quan hệ trong mọi lĩnh vực. Các nhà triết học dùng “ontology” như là một từ đồng nghĩa với “siêu hình học”. Ontology gốc Latin là “ontologia”. Thuật ngữ “ontologia” có từ năm 1613, do hai nhà triết học Rudolf Göcke (trong Lexicon philosophicum) và Jacob Lorhard (trong Theatrum philosophicum) đưa ra. Từ tiếng Anh “ontology” xuất hiện lần đầu trong An Universal Etymological English Dictionary (năm 1721), được Nathaniel Bailey định nghĩa là “an Account of being in the Abstract” 1 . 1.1.2. Ontology trong tin học Trong những năm gần đây, thuật ngữ “ontology” được sử dụng nhiều trong các lĩnh vực của khoa học máy tính và thông tin. Nó nảy sinh từ vấn đề “tháp Babel”. 1 http://www.formalontology.it/history.htm 8 Nhóm các nhà thiết kế hệ cơ sở dữ liệu và tri thức đều có thuật ngữ và khái niệm của riêng họ. Dựa trên các thuật ngữ, khái niệm đó, họ biểu diễn thông tin. Các cơ sở dữ liệu khác nhau có thể dùng cùng một tên gọi nhưng với ý nghĩa khác nhau. Ngược lại, cùng một ý nghĩa, nhưng có thể được diễn tả bằng các tên gọi khác nhau. Khi các nhóm cần chia sẻ thông tin thì nảy sinh vấn đề: làm thế nào gom tất cả các thông tin đa dạng này trong cùng một hệ thống. Cần phải tìm ra phương pháp để giải quyết tính xung khắc của các thuật ngữ và khái niệm. Ban đầu sự xung khắc được giải quyết từng trường hợp một. Dần dần người ta nhận thấy có thể đưa ra một cấu trúc tham khảo chung – phân loại khái niệm, các thuộc tính và mối liên hệ giữa các khái niệm. Lúc này, thuật ngữ “ontology” ra đời, và cho phép người dùng tổ chức thông tin theo các phân loại khái niệm cùng với các thuộc tính của nó và mô tả các mối liên hệ giữa các khái niệm. Theo ngữ nghĩa này thì ontology là một từ điển các thuật ngữ tạo nên cú pháp và từ vựng để biểu diễn tri thức là các khái niệm để có thể chia sẻ tri thức giữa các hệ thống thông tin khác nhau (như một tiếng nói chung). Có thể điểm qua một số định nghĩa về ontology như sau: • Ontology là sự đặc tả tường minh, hình thức của khái niệm - An ontology is an explicit specification of a conceptualization (Thomas R. Gruber-1993) [11]. Định nghĩa này cho thấy ontology là đặc tả các khái niệm trong một lĩnh vực và đặc tả các quan hệ giữa các khái niệm đó. • Ontology là một bảng liệt kê các loại sự vật tồn tại trong lĩnh vực D mà con người dùng ngôn ngữ L để mô tả lĩnh vực D (John F. Sowa-2000, [10]) • Ontology cung cấp mô hình khái niệm trong một lĩnh vực, có thể được chia sẻ (được con người và hệ thống sử dụng để trao đổi và tích hợp thông tin) và xử lý trên máy tính (L. Stojanovic-2004, [17]) Từ một số định nghĩa trên cho thấy ontology định nghĩa các khái niệm (concepts) dùng để mô tả và biểu diễn một lĩnh vực của tri thức. Các loại khái niệm được mô tả gồm: [...]... Funcs, Rules), ngôn ngữ đặc tả để biểu diễn các khái niệm [4], ngôn ngữ truy vấn và kỹ thuật xử lý Dựa trên mô hình COKB- ONT, luận văn hướng đến việc xây dựng ngôn ngữ truy vấn cho các tri thức biểu diễn theo mô hình này Cho đến nay vẫn chưa có nghiên cứu nào đề xuất ngôn ngữ truy vấn một cách đầy đủ để trả lời nhiều loại câu truy vấn. Trong [3], [4], [5] có đề cập đến ngôn ngữ truy vấn cho COKBONT nhưng... ontology COKB, chương 3 là chương chính của luận văn về xây dựng ngôn ngữ truy vấn cho ontology COKB, trong đó có đề xuất cú pháp ngôn ngữ vấn tin trên ontology COKB, chương 4 trình bày một ứng dụng trên lĩnh vực tri thức Đại số 17 tuyến tính và chương 5 là chương đúc kết vấn đề, đồng thời nêu những ưu điểm và hạn chế của luận văn 18 Chương 2 NGÔN NGỮ ĐẶC TẢ ONTOLOGY COKB Ngôn ngữ ontology COKB (COKB Ontology. .. mới cho CSTT Có thể phân loại thành các dạng truy vấn sau: - Truy vấn TRUE/FALSE - Truy vấn tìm kiếm tri thức - Truy vấn cập nhật tri thức Luận văn đề xuất các cú pháp cho hai dạng sau: + Dạng 1: dạng truy vấn yêu cầu xác nhận tính đúng sai của thông tin đưa ra + Dạng 2: truy vấn tri thức là các thành phần trong mô hình Các chương tiếp theo của luận văn gồm: chương 2 giới thiệu ngôn ngữ đặc tả cho ontology. .. hỏi có liên quan đến nhiều đối tượng và dạng câu hỏi có điều kiện liên quan đến nhiều đối tượng Bài toán đặt ra là xây dựng ngôn ngữ truy vấn tri thức theo mô hình ontology COKB theo các tiêu chí sau: (i) Truy vấn được tri thức thuộc lĩnh vực bất kỳ được biểu diễn theo COKB (ii) Trả lời cho các câu hỏi xoay quanh các khái niệm, các thuộc tính, quan hệ, phép toán của khái niệm cũng như các thành phần... vấn. Trong [3], [4], [5] có đề cập đến ngôn ngữ truy vấn cho COKBONT nhưng còn nhiều hạn chế, chỉ mới đáp ứng cho một số ít câu truy vấn đơn giản, chủ yếu là truy vấn các thành phần trong mô hình Chẳng hạn, trong [3] truy vấn chủ yếu là lấy thông tin trực tiếp trong các thành phần của mô hình như: cho biết định nghĩa khái niệm, thuộc tính của đối tượng, ràng buộc thuộc tính hay các quan hệ tính toán Nó... TẢ ONTOLOGY COKB Ngôn ngữ ontology COKB (COKB Ontology Language), viết tắt là COL là ký pháp đặc tả cho Ontology COKB được mô tả theo ký pháp EBNF COL bao gồm các thành phần chính của một ngôn ngữ như tập ký tự, từ vựng, các kiểu dữ liệu, cú pháp ngôn ngữ và cú pháp mô tả các thành phần trong mô hình COKB Chương này tham khảo ở [4], [12] và có một số bổ sung 2.1 Các quy ước mô tả cú pháp COL X::=Y cú... tượng 1.2 Mô hình tri thức các đối tượng tính toán - ontology COKB Các phương pháp biểu diễn tri thức truy n thống trong [6], [18] đã được ứng dụng nhiều Tuy nhiên, các phương pháp đó chưa đủ mạnh để xây dựng các chương trình tự động hay biểu diễn cơ sở tri thức thuộc các lĩnh vực tri thức khác nhau Mô hình tri thức các đối tượng tính toán được xây dựng theo cách tiếp cận hướng đối tượng kết hợp với... MA_TRAN MA_TRAN_VUONG 2.3 Cú pháp và ngữ nghĩa Phần này sẽ mô tả cú pháp định nghĩa các thành phần của COKB- ONT (C, H, Relations, Funs, Ops, Rules) theo ký pháp EBNF 2.3.1 Biểu thức (expression) Trong mô hình tri thức các đối tượng tính toán COKB, biểu thức là thành phần quan trọng nhất Biểu thức thường xuất hiện trong các luật, các ràng buộc, sự kiện và các câu truy vấn Có các dạng biểu thức sau: biểu... quan đến thuộc tính của đối tượng), dạng câu hỏi xác nhận đúng sai hay dạng câu hỏi có điều kiện Ví dụ: Cho biết các mệnh đề quan hệ giữa ma trận nghịch đảo với giải hệ PTTT? Nếu chuyển vị của A khả nghịch thì A có khả nghịch không ? Khi nào thì định thức của hai ma trận bằng nhau? Trong khi đó truy vấn trong [5] đáp ứng được dạng câu hỏi xác nhận đúng sai nhưng chưa đầy đủ Hơn nữa vẫn chưa đáp ứng dạng... ::= name (sequence) Ví dụ 2.9: HANG(A); KHA_NGHICH(A); Ví dụ 2.10: (A = B) AND KHA_NGHICH(A) e/ Biểu thức vị từ (predicate expression) Biểu thức vị từ được tạo bởi các lượng từ, cho phép ta lượng hóa đủ tổng quát để diễn tả ngôn ngữ tự nhiên ở mức đơn giản ::= FORALL(name *), logic-expr | pre-expr EXISTS(name), logic-expr Ví dụ 2.11: EXISTS k, A^k = A 2.3.2 Câu lệnh (statement) Gồm ba loại câu