Tích hợp các ontology trong OWL và ứng dụng

  • Số trang: 69 |
  • Loại file: PDF |
  • Lượt xem: 73 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ BÙI THỊ THU DUNG TÍCH HỢP CÁC ONTOLOGY TRONG OWL VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội - 2013 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Hà Nội 2011 BÙI THỊ THU DUNG TÍCH HỢP CÁC ONTOLOGY TRONG OWL VÀ ỨNG DỤNG Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã ngành: 60 48 10 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Phạm Thị Anh Lê 2011 Hà Nội - 2013 3 MỤC LỤC LỜI CẢM ƠN ....................................................................................................... 1 LỜI CAM ĐOAN.................................................................................................. 2 MỤC LỤC ............................................................................................................. 3 DANH MỤC HÌNH VẼ ........................................................................................ 5 DANH MỤC BẢNG ............................................................................................. 7 DANH MỤC TỪ VIẾT TẮT ................................................................................ 8 MỞ ĐẦU ............................................................................................................... 9 CHƢƠNG 1. TỔNG QUAN VỀ ONTOLOGY ................................................. 10 1.1. Định nghĩa ontology ................................................................................. 10 1.2. Các thành phần của ontology ................................................................... 10 1.2.1. Các cá thể (Individuals) .................................................................... 10 1.2.2. Các lớp (Classes) ............................................................................... 10 1.2.3. Các thuộc tính (Properties)................................................................ 11 1.2.4. Các mối quan hệ (Relation)............................................................... 12 1.3. Vai trò của ontology ................................................................................. 14 1.4. Phân biệt ontology và cơ sở dữ liệu cổ điển ............................................ 15 1.5. Phƣơng pháp xây dựng ontology ............................................................. 16 1.5.1. Xác định miền quan tâm và phạm vi của ontology........................... 17 1.5.2 Xem xét việc kế thừa các ontology có sẵn ......................................... 17 1.5.3. Liệt kê các thuật ngữ quan trọng trong ontology .............................. 18 1.5.4. Xác định các lớp và phân cấp của các lớp ........................................ 19 1.5.5. Định nghĩa các thuộc tính và quan hệ cho lớp .................................. 20 1.5.6. Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp. ........... 20 1.5.7. Tạo các thực thể cho lớp. .................................................................. 21 1.6. Các ngôn ngữ biểu diễn ontology ............................................................ 21 1.7. Công cụ xây dựng ontology Protégé ........................................................ 21 CHƢƠNG 2. NGÔN NGỮ OWL ....................................................................... 23 2.1. Định nghĩa OWL ...................................................................................... 23 4 2.2. Các đặc điểm của OWL ........................................................................... 24 2.3. Các phiên bản của OWL .......................................................................... 24 2.3.1. OWL Lite .......................................................................................... 25 2.3.2. OWL DL ........................................................................................... 25 2.3.3. OWL Full .......................................................................................... 25 2.4. Cú pháp và ngữ nghĩa của OWL DL ....................................................... 26 CHƢƠNG 3. TÍCH HỢP ONTOLOGY ............................................................. 29 3.1. Đặt vấn đề................................................................................................. 29 3.2. Các bƣớc tích hợp ontology ..................................................................... 30 3.3. Ánh xạ ontology ....................................................................................... 31 3.3.1. Khái niệm ánh xạ .............................................................................. 31 3.3.2. Khái niệm độ tƣơng tự ...................................................................... 32 3.3.3. Các bƣớc ánh xạ ontology ................................................................. 33 3.3.4. Một số kỹ thuật ánh xạ ...................................................................... 34 3.3.5. Thuật toán ánh xạ Align .................................................................... 36 3.4 Tích hợp ontology ..................................................................................... 40 3.4.1. Khái niệm tích hợp ............................................................................ 40 3.4.2. Tích hợp sử dụng ContentMap.......................................................... 41 CHƢƠNG 4. XÂY DỰNG ỨNG DỤNG........................................................... 46 4.1. Bài toán ứng dụng .................................................................................... 46 4.1.1. Yêu cầu thực tế .................................................................................. 46 4.1.2. Bài toán ứng dụng ............................................................................. 47 4.2. Thực hiện tích hợp ................................................................................... 48 4.2.1. Xây dựng ontology ............................................................................ 48 4.2.2. So khớp ontology .............................................................................. 58 4.2.3. Tích hợp ontology ............................................................................. 60 4.3. Đánh giá kết quả....................................................................................... 65 KẾT LUẬN ......................................................................................................... 68 TÀI LIỆU THAM KHẢO ................................................................................... 69 5 DANH MỤC HÌNH VẼ Hình 1.1 - Ontology biểu diễn quan hệ của xe cộ ............................................... 12 Hình 1.2 - Cấu trúc lớp phân cấp ........................................................................ 19 Hình 1.3 - Ràng buộc trong ontology.................................................................. 20 Hình 1.4 - Công cụ xây dựng ontology Protégé ................................................. 22 Hình 2.1 - Các tầng cấu thành Web ngữ nghĩa ................................................... 24 Hình 2.2 - Mối quan hệ giữa các phiên bản của OWL ....................................... 24 Hình 3.1 - Ví dụ một về tích hợp ontology ......................................................... 29 Hình 3.2 - Ví dụ hai về tích hợp ontology .......................................................... 30 Hình 3.3 - Các bƣớc tích hợp ontology ............................................................... 30 Hình 3.4 - Ánh xạ ontology................................................................................. 31 Hình 3.5 - Ví dụ về Ánh xạ ontology .................................................................. 31 Hình 3.6 - Quy trình ánh xạ ontology ................................................................. 33 Hình 3.7 - Kỹ thuật ánh xạ dựa vào mối quan hệ giữa các từ............................. 35 Hình 3.8 - Kỹ thuật ánh xạ dựa vào cấu trúc ...................................................... 35 Hình 3.9 - Kỹ thuật ánh xạ dựa trên cấu trúc quan hệ ........................................ 36 Hình 3.10 - Quan hệ giữa các lớp chính của Align ............................................. 37 Hình 3.11 - Các bƣớc chính của Align và các lớp xử lý liên quan ..................... 38 Hình 3.12 - Tích hợp ontology ............................................................................ 40 Hình 3.13 - Quy trình tích hợp ontology với ContentMap ................................. 42 Hình 4.1 - Các lớp của OntologyBADINH ......................................................... 49 Hình 4.2 - Các thuộc tính của OntologyBADINH .............................................. 50 Hình 4.3 - Các cá thể của OntologyBADINH .................................................... 51 Hình 4.4 - Các rằng buộc trong OntologyBADINH ......................................... 52 Hình 4.5 - Một phần của OntologyBADINH biểu diễn trên OWL .................... 53 Hình 4.6 - Các lớp của OntologyTAYHO .......................................................... 54 Hình 4.7 - Các thuộc tính của OntologyTAYHO .............................................. 55 Hình 4.8 - Các cá thể của OntologyTAYHO ...................................................... 56 Hình 4.9 - Các rằng buộc trong OntologyTAYHO ............................................. 57 Hình 4.10 - Một phần của OntologyTAYHO biểu diễn trên OWL .................... 57 Hình 4.11 - Một phần code của kết quả so khớp ................................................ 59 Hình 4.12 - Một phần giao diện của kết quả so khớp ......................................... 60 Hình 4.13 - Chọn ontology đầu vào .................................................................... 60 Hình 4.14 - Ánh xạ tƣờng minh nhận đƣợc ........................................................ 61 Hình 4.15 - Thừa kế phát sinh qua ánh xạ cần đánh giá ..................................... 62 Hình 4.16 - Một kế thừa phát sinh ...................................................................... 62 6 Hình 4.17 - Thừa kế phát sinh trong mỗi ontology cần đánh giá ....................... 63 Hình 4.18 - Quan hệ tổng quát giữa hai ontology ............................................... 64 Hình 4.19 - Giải pháp tích hợp khả thi................................................................ 64 Hình 4.20 - Kết quả thu đƣợc khi tích hợp ......................................................... 65 7 DANH MỤC BẢNG Bảng 2.1 - Bảng mô tả thuộc tính đối tƣợng OWL ............................................. 26 Bảng 2.2 - Bảng mô tả thuộc tính lớp OWL ....................................................... 27 Bảng 2.3 - Bảng tiên đề và các sự kiện của OWL .............................................. 27 8 DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt Tên tiếng việt 1 OWL Ontology Web Language 2 OWL DL 3 4 5 6 RDF RDF(S) URI XML OWL Description Logic Resource Description Framework Resource Desscription Framework (Schema) Uniform Resource Identifier Extensible Markup Language 9 MỞ ĐẦU Đặt vấn đề: Để con ngƣời và máy tính có thể giao tiếp đƣợc với nhau thì cần một sự thống nhất chung về một tập các khái niệm, đƣợc định nghĩa trong các ontology. Cùng với sự phát triển của Web ngữ nghĩa, kể từ khi ra đời cho đến nay đã có nhiều ontology đƣợc xây dựng cho các ứng dụng trong các lĩnh vực khác nhƣ giáo dục, y học, giao dịch thƣơng mại điện tử... Số lƣợng ontology ngày càng nhiều tạo nên sự phong phú về ngữ nghĩa nhƣng cũng mang lại những khó khăn nhất định, đó là sự trùng lặp về thông tin và không dễ dàng để có thể kết hợp các ontology này vào một ứng dụng mới. Mặt khác, những ngƣời sử dụng ontology hay bản thân các nhà xây dựng ontology lại không chỉ sử dụng ontology của chính họ mà còn muốn mở rộng hay tích hợp các ontology từ nhiều nguồn khác nhau cho ứng dụng của mình. Do đó, việc tích hợp các ontology là một điều cần thiết bởi nó là quá trình tìm kiếm các mối quan hệ hay sự tƣơng đồng giữa các tập thực thể của các ontology khác nhau; sự tích hợp này giúp ích rất nhiều trong các lĩnh vực cần truy xuất, trao đổi thông tin một cách tự động và chính xác. Mục tiêu, nhiệm vụ: Mục tiêu của luận văn là nghiên cứu về tích hợp ontology trong OWL và đƣa tích hợp ontology vào một ứng dụng cụ thể. Cấu trúc luận văn: Nội dung luận văn gồm phần mở đầu, bốn chƣơng nội dung, phần kết luận và tài liệu tham khảo. Các bƣớc phân tích giải quyết vấn đề đƣợc trình bày trong luận văn theo trình tự sau:  Chƣơng 1: Tổng quan về ontology trình bày định nghĩa, các thành phần và vai trò của ontology, công cụ và ngôn ngữ xây dựng ontology.  Chƣơng 2: Ngôn ngữ Ontology Web Languge (OWL) trình bày định nghĩa, đặc điểm, phiên bản của OWL và cú pháp ngữ nghĩa của ngôn ngữ OWL Description Logic.  Chƣơng 3: Tích hợp ontology đƣa ra lý do tại sao cần phải tích hợp ontology, trình bày các khái niệm, thuật toán ánh xạ và tích hợp ontology.  Chƣơng 4: Tích hợp ontology vào ứng dụng đƣa ra yêu cầu thực tế, giải pháp và bài toán áp dụng để từ đó có thể lựa chọn công cụ và thuật toán tích hợp thích hợp, thiết kế ứng dụng và đánh giá.  Kết luận: Tổng kết lại các kết quả đã thực hiện và đƣa ra hƣớng phát triển của luận văn trong tƣơng lai. 10 CHƢƠNG 1. TỔNG QUAN VỀ ONTOLOGY 1.1. Định nghĩa ontology Ontology là một mô hình dữ liệu mô tả một cách tƣờng minh các khái niệm của các đối tƣợng trong một lĩnh vực nào đó cùng với các quan hệ giữa những đối tƣợng này. Ontology phân loại rõ ràng các đối tƣợng và cung cấp một bộ từ vựng chung, bao gồm các khái niệm, các thuộc tính quan trọng và quan hệ chặt chẽ giữa các đối tƣợng đƣợc sắp xếp. Ngoài bộ từ vựng, ontology còn cung cấp các ràng buộc, đôi khi các ràng buộc này đƣợc coi nhƣ các giả định cơ sở về ý nghĩa mong muốn của bộ từ vựng, nó đƣợc sử dụng trong một miền mà có thể đƣợc giao tiếp giữa ngƣời và các hệ thống ứng dụng phân tán khác. Từ vựng trong một ontology có thể đƣợc biểu diễn bằng các khái niệm và các quan hệ đƣợc đặt tên; các định nghĩa khái niệm có thể đƣợc biểu diễn bằng các giới thiệu tƣơng đƣơng. Các giả định cơ sở có thể đƣợc biểu diễn bằng các tiên đề khái niệm và quan hệ khái quát. Đôi khi, một ontology tƣơng ứng với một cơ sở tri thức logic mô tả. Một ontology cũng chứa các trƣờng hợp của các khái niệm và các mối quan hệ quan trọng của các cá thể này, nó đƣợc biểu diễn bằng các khẳng định của logic mô tả. 1.2. Các thành phần của ontology Các ontology hiện nay đều có nhiều điểm tƣơng tự về mặt cấu trúc, bất kể ngôn ngữ đƣợc dùng để biểu diễn. Hầu hết các ontology đều mô tả: các cá thể (đối tƣợng, thể hiện), lớp (khái niệm), thuộc tính và các quan hệ [3]. 1.2.1. Các cá thể (Individuals) Cá thể (hay thể hiện) là thành phần cơ bản, nền tảng của một ontology. Các cá thể trong một ontology có thể bao gồm các đối tƣợng cụ thể nhƣ con ngƣời, động vật, cái bàn... cũng nhƣ các cá thể trừu tƣợng nhƣ các thành viên hay các từ. Nói đúng ra, một ontology không cần chứa bất kỳ một cá thể nào nhƣng một trong những mục đích chung của ontology là cung cấp một phƣơng tiện để phân loại các đối tƣợng, ngay cả khi các đối tƣợng này không phải là một phần rõ ràng của ontology. 1.2.2. Các lớp (Classes) Lớp (hay khái niệm) có thể đƣợc định nghĩa theo cách bên ngoài hay bên trong. Theo định nghĩa bên ngoài, lớp là những nhóm hoặc bộ tập hợp các đối tƣợng. Theo định nghĩa bên trong, lớp là các đối tƣợng trừu tƣợng đƣợc định nghĩa bởi giá trị của các mặt ràng buộc khiến chúng phải là thành viên của một 11 lớp khác. Lớp có thể phân loại các cá thể, các lớp khác, hay một tổ hợp của cả hai. Một số ví dụ của lớp:  Person, lớp của tất cả các con ngƣời, hay các đối tƣợng trừu tƣợng có thể đƣợc mô tả bởi các tiêu chuẩn làm một con ngƣời.  Vehicle, lớp của tất cả xe cộ, hay các đối tƣợng trừu tƣợng có thể đƣợc mô tả bởi các tiêu chuẩn làm một chiếc xe.  Car, lớp của tất cả xe hơi, hay các đối tƣợng trừu tƣợng có thể đƣợc mô tả bởi các tiêu chuẩn làm một chiếc xe hơi.  Class, biểu diễn lớp tất cả các lớp, hay các đối tƣợng trừu tƣợng có thể đƣợc mô tả bởi các tiêu chuẩn để làm một lớp.  Thing, biểu diễn lớp tất cả mọi thứ, hay các đối tƣợng trừu tƣợng có thể đƣợc mô tả bởi các tiêu chuẩn để làm một thứ gì đó (và không phải không-là-gì cả). Một lớp có thể gộp nhiều lớp hoặc đƣợc gộp vào lớp khác; một lớp xếp gộp vào lớp khác đƣợc gọi là lớp con (hay kiểu con) của lớp gộp (hay kiểu cha). Ví dụ, Vechicle gộp Car, bởi vì bất cứ thứ gì là thành viên của lớp sau cũng đều là thành viên của lớp trƣớc. Quan hệ xếp gộp đƣợc dùng để tạo nên một cấu trúc phân cấp các lớp, thông thƣờng có một lớp tổng quát lớn nhất chẳng hạn Anything nằm ở trên cùng và những lớp rất cụ thể nhƣ 2002 Ford Explorer nằm ở dƣới cùng. Hệ quả cực kỳ quan trọng của quan hệ xếp gộp là tính kế thừa của các thuộc tính từ lớp cha đến lớp con. Do vậy, bất cứ thứ gì hiển nhiên đúng với một lớp cha cũng hiển nhiên đúng với các lớp con của nó. Trong một số ontology, một lớp chỉ đƣợc cho phép có một lớp cha, nhƣng trong hầu hết các ontology, các lớp đƣợc cho phép có một số lƣợng lớp cha bất kỳ và trong trƣờng hợp sau tất cả các thuộc tính hiển nhiên của từng lớp cha đƣợc kế thừa bởi lớp con. Do đó một lớp cụ thể của lớp thú (HouseCat) có thể là một con của lớp Cat và cũng là một con của lớp Pet. 1.2.3. Các thuộc tính (Properties) Các đối tƣợng trong một ontology có thể đƣợc mô tả bằng cách liên hệ chúng với những thứ khác, thƣờng là các mặt hay bộ phận. Những thứ đƣợc liên hệ này thƣờng đƣợc gọi là thuộc tính, mặc dù chúng có thể là những thứ độc lập. Một thuộc tính có thể là một lớp hay một cá thể. Kiểu của đối tƣợng và kiểu của thuộc tính xác định kiểu của quan hệ giữa chúng. Một quan hệ giữa một đối tƣợng và một thuộc tính biểu diễn một sự kiện đặc thù cho đối tƣợng mà nó có liên hệ. Ví dụ đối tƣợng Ford Explorer có các thuộc tính nhƣ: • Ford Explorer 12 • door (với số lƣợng tối thiểu và tối đa: 4) • {4.0L engine, 4.6L engine} • 6-speed transmission Giá trị thuộc tính có thể thuộc kiểu dữ liệu phức; trong ví dụ này, động cơ liên hệ chỉ có thể là một trong số các dạng con của động cơ, chứ không phải là một cái đơn lẻ. Các ontology chỉ mang đầy đủ ý nghĩa nếu các khái niệm có liên hệ với các khái niệm khác (các khái niệm đều có thuộc tính). Nếu không rơi vào trƣờng hợp này, thì hoặc ta sẽ có một phân loại (nếu các quan hệ bao hàm tồn tại giữa các khái niệm) hoặc một từ điển có kiểm soát. Những thứ này đều hữu ích nhƣng không đƣợc xem là ontology. 1.2.4. Các mối quan hệ (Relation) Quan hệ giữa các đối tƣợng trong một ontology cho biết các đối tƣợng liên hệ với đối tƣợng khác nhƣ thế nào. Thông thƣờng một quan hệ là của một loại (hay lớp) cụ thể nào đó chỉ rõ trong ngữ cảnh nào đối tƣợng đƣợc liên hệ với đối tƣợng khác trong ontology. Ví dụ trong ontology chứa khái niệm Ford Explorer và khái niệm Ford Bronco có thể đƣợc liên hệ bởi một quan hệ loại <đƣợc định nghĩa là một con của>. Phát biểu đầy đủ của sự kiện nhƣ sau: • Ford Explorer đƣợc định nghĩa là một con của: Ford Bronco Điều này cho ta biết Explorer là mô hình thay thế cho Bronco. Ví dụ này cũng minh họa rằng quan hệ có cách phát biểu trực tiếp. Phát biểu ngƣợc biểu diễn cùng một sự kiện nhƣng bằng một ngữ nghịch đảo trong ngôn ngữ tự nhiên. Phần lớn sức mạnh của ontolgy nằm ở khả năng diễn đạt quan hệ. Tập hợp các quan hệ cùng nhau mô tả ngữ nghĩa của domain. Tập các dạng quan hệ đƣợc sử dụng (lớp quan hệ) và cây phân loại thứ bậc của chúng thể hiện sức mạnh diễn đạt của ngôn ngữ dùng để biểu diễn ontology. VEHICLE CAR 2- WHEEL DRIVE TRUCK 4- WHEEL DRIVE FORD BRONCO FORD EXPLORER Hình 1.1 - Ontology biểu diễn quan hệ của xe cộ 13 A-superclass-of – „lớp cha của‟, hay ngƣợc lại, „là dạng con của‟ – is-a-subtypeof – hay „là lớp con của‟ – is-a-subclass-of ). Nó định nghĩa đối tƣợng nào đƣợc phân loại bởi lớp nào. Ví dụ, ta đã thấy lớp Ford Explorer là lớp con của 4Wheel Drive Car và lớp 4-Wheel Drive Car lại là lớp con của Car. Sự xuất hiện của quan hệ „là lớp con của‟ tạo ra một cấu trúc phân cấp thứ bậc; dạng cấu trúc cây này (hay tổng quát hơn, là tập có thứ tự từng phần) mô tả rõ ràng cách thức các đối tƣợng liên hệ với nhau. Trong cấu trúc này, mỗi đối tƣợng là „con‟ của một „lớp cha‟ (Một số ngôn ngữ giới hạn quan hệ là lớp con của trong phạm vi một cha cho mọi nút, nhƣng đa số thì không nhƣ thế). Một dạng quan hệ phổ biến khác là quan hệ meronymy, gọi là „bộ phận của‟, biểu diễn làm thế nào các đối tƣợng kết hợp với nhau đề tạo nên đối tƣợng tổng hợp. Ví dụ, nếu ta mở rộng ontology trong ví dụ để chứa thêm một số khái niệm nhƣ Steering Wheel (vô lăng), ta sẽ nói rằng “Vô lăng đƣợc định nghĩa là một bộ phận của Ford Explorer” vì vô lăng luôn luôn là một trong những bộ phận của xe Ford Explorer. Nếu đƣa quan hệ meronymy vào ontology này, ta sẽ thấy rằng cấu trúc cây đơn giản và nhẹ nhàng trƣớc đó sẽ nhanh chóng trở nên phức tạp và cực kỳ khó hiểu. Điều này không khó lý giải; một lớp nào đó đƣợc mô tả rằng luôn luôn có một thành viên là bộ phận của một thành viên thuộc lớp khác thì lớp này cũng có thể có một thành viên là bộ phận của lớp thứ ba. Kết quả là các lớp có thể là bộ phận của nhiều hơn một lớp. Cấu trúc này đƣợc gọi là đồ thị chu trình có hƣớng. Ngoài những quan hệ chuẩn nhƣ „là lớp con của‟ và „đƣợc định nghĩa là bộ phận của‟, ontology thƣờng chứa thêm một số dạng quan hệ làm trau chuốt hơn ngữ nghĩa mà chúng mô hình hóa. Ontology thƣờng phân biệt các nhóm quan hệ khác nhau. Ví dụ nhóm các quan hệ về: • Quan hệ giữa các lớp • Quan hệ giữa các thực thể • Quan hệ giữa một thực thể và một lớp • Quan hệ giữa một đối tƣợng đơn và một tập hợp • Quan hệ giữa các tập hợp Các dạng quan hệ đôi khi đặc thù chuyên ngành và do đó chỉ sử dụng để lƣu trữ các dạng sự kiện đặc thù hoặc trả lời cho những loại câu hỏi cụ thể. Nếu định nghĩa của dạng quan hệ đƣợc chứa trong một ontology thì ontology này định ra ngôn ngữ định nghĩa ontology cho chính nó. Một ví dụ về ontology định nghĩa các dạng quan hệ của chính nó và phân biệt các nhóm quan hệ khác nhau là ontology Gellish. 14 Ví dụ, trong lĩnh vực xe ô tô, ta cần quan hệ „đƣợc sản xuất tại‟ để cho biết xe đƣợc lắp ráp tại chỗ nào. Nhƣ vậy, Ford Explorer đƣợc sản xuất tại Louisville. Ontology có thể cũng biết đƣợc Louisville „tọa lạc tại‟ Kentucky và Kentucky „đƣợc định nghĩa là‟ một bang và „là bộ phận của‟ Hoa Kỳ. Phần mềm sử dụng ontology này sẽ có thể trả lời một câu hỏi nhƣ „những xe hơi nào đƣợc sản xuất tại Hoa Kỳ?” 1.3. Vai trò của ontology Với ý nghĩa và cấu trúc trên, ontology trở thành một công cụ quan trọng trong Web ngữ nghĩa. Có thể kể ra một số lợi ích của ontology nhƣ sau:  Để chia sẻ những hiểu hiểu biết chung về các khái niệm, cấu trúc thông tin giữa con người hoặc giữa các hệ thống phần mềm: đây là vai trò quan trọng nhất của một ontology, không những trong lĩnh vực Web ngữ nghĩa mà còn trong nhiều ngành và lĩnh vực khác. Về phƣơng diện này, có thể hình dung ontology giống nhƣ một cuốn từ điển chuyên ngành, cung cấp và giải thích các thuật ngữ cho ngƣời không có cùng chuyên môn khi đƣợc yêu cầu. Không chỉ đƣợc sử dụng bởi con ngƣời, ontology còn hữu ích khi cần sự hợp tác giữa các hệ thống phần mềm. Lấy ví dụ, Open Biological là bộ ontology nổi tiếng đƣợc phát triển bởi trƣờng đại học Stanford nhằm cung cấp các thuật ngữ một cách đầy đủ trong ngành sinh vật học. Ontology này hiện đã đƣợc tích hợp vào một số ứng dụng Web trên Internet. Sau đó, một phần mềm tra cứu hoặc dạy sinh học trên máy tính có thể kết nối với các ứng dụng Web trên để lấy thông tin cho mục tiêu chú giải.  Cho phép tái sử dụng tri thức: đây là một vấn đề khó và là mục tiêu nghiên cứu quan trọng trong những năm gần đây. Nó liên quan đến bài toán trộn hai hay nhiều ontology thành một ontology lớn và đầy đủ hơn. Nhƣng vấn đề ở đây là tên các khái niệm đƣợc định nghĩa trong các ontology này có thể giống nhau trong khi chúng đƣợc dùng để mô tả các loại vật hoàn toàn khác nhau. Tuy nhiên, cũng có thể có trƣờng hợp ngƣợc lại khi tên các khái niệm khác nhau nhƣng cùng mô tả một sự vật. Ngoài ra, làm thế nào để bổ sung các quan hệ, thuộc tính có sẵn vào một hệ thống mới càng làm cho vấn đề trở nên phức tạp.  Cho phép tri thức độc lập với ngôn ngữ: đây cũng là vấn đề liên quan đến lĩnh vực tái sử dụng tri thức đã nói ở trên, tuy nhiên bài toán của nó là làm thế nào để một hệ thống ontology có thể đƣợc dùng bởi các ngôn ngữ của các quốc gia khác nhau mà không phải xây dựng lại. 15 Giải pháp mà ontology mang lại là cho phép tên các khái niệm và quan hệ trong ontology mới tham khảo các khái niệm, định nghĩa của một hệ thống ontology chuẩn thƣờng đƣợc xây dựng bằng tiếng Anh. Điều này có thể sẽ phá vỡ phần nào rào cản về mặt ngôn ngữ khi mà kết quả tìm kiếm sẽ không bó gọn trong từ khóa và ngôn ngữ mà nó sử dụng. Ngoài ra, ontology có thể sẽ trở thành hƣớng đi mới cho một lĩnh vực đã quen thuộc là dịch tài liệu tự động. Có thể nói nhƣ vậy, bởi ngữ nghĩa các từ vựng trong văn bản sẽ đƣợc dịch chính xác hơn khi đƣợc ánh xạ vào đúng ngữ cảnh của nó.  Cho phép tri thức trở nên nhất quán và tường minh: các khái niệm khác nhau trong một hay nhiều lĩnh vực cụ thể có thể cùng tên và gây nhập nhằng về ngữ nghĩa, tuy nhiên khi đƣợc đƣa vào một hệ thống ontology thì tên mỗi khái niệm là duy nhất. Một giải pháp cho vấn đề này là ontology sẽ sử dụng các tham khảo URI làm định danh thật sự cho khái niệm trong khi vẫn sử dụng các nhãn gợi nhớ bên trên để thuận tiện cho ngƣời dùng.  Cung cấp một phương tiện cho công việc mô hình hóa: Ontology là một tập các khái niệm phân cấp đƣợc liên kết với nhau bởi các quan hệ. Cơ bản mỗi khái niệm có thể xem nhƣ là một lớp, mà đối tƣợng của lớp đó cùng các quan hệ đã góp phần tạo nên cấu trúc của bài toán hay vấn đề cần giải quyết.  Cung cấp một phương tiện cho việc suy luận: hiện nay, một số ngôn ngữ ontology đã tích hợp lớp ontology suy luận (Ontology Inference Layer) bên trong cho mục đích suy luận logic trên tập quan hệ giữa các đối tƣợng trong hệ thống. 1.4. Phân biệt ontology và cơ sở dữ liệu cổ điển Điều quan trọng nhất của ontololy là nó có khả năng biểu diễn các mệnh đề logic, để từ đó cho phép các chƣơng trình thiết kế các bộ lập luận dựa trên ontololy. Có thể đƣa ra một vài điểm khác nhau cơ bản của cơ sở dữ liệu thông thƣờng với ontololy dựa trên lập luận logic nhƣ sau:  Dữ liệu trong cơ sở dữ liệu bình thƣờng là dữ liệu đóng, có nghĩa là khi ta có một truy vấn tới cơ sở dữ liệu mà không có thông tin đúng cho truy vấn đó thì xem nhƣ câu trả lời mà truy vấn đó trả về là "Sai". Còn đối với ontololy thì nếu thiếu thông tin thì nó sẽ trả lời là "Không biết". 16  Câu trả lời khi truy vấn cơ sở dữ liệu thì sẽ cho kết quả chính xác còn ontology thì không. Ví dụ, có một cá thể Hoa, Hoa có ngƣời bạn là Hồng, Hoa có ngƣời bạn là Nhỏ. Có một cá thể là Kiên, đố với câu hỏi: Kiên có phải là bạn của Hoa không thì cơ sở dữ liệu sẽ cho câu trả lời là "Không". Còn đối với ontololy thì sẽ cho câu trả lời là "Không biết".  Cơ sở dữ liệu thông thƣờng chỉ chấp nhận những dữ liệu mà không trùng tên (tức khóa không đƣợc trùng nhau), nhƣng đối với ontololy lại khác. Do vậy, đối với câu hỏi: Hoa có bao nhiêu ngƣời bạn thì đối với cơ sở dữ liệu thông thƣờng sẽ trả lời là "Hai", còn đối với ontololy sẽ trả lời là "Ít nhất là một". 1.5. Phƣơng pháp xây dựng ontology Có nhiều phƣơng pháp khác nhau để xây dựng một ontology, nhƣng nhìn chung các phƣơng pháp đều thực hiện hai bƣớc cơ bản là: xây dựng cấu trúc lớp phân cấp và định nghĩa các thuộc tính cho lớp. Trong thực tế, việc phát triển một ontology để mô tả miền cần quan tâm là một công việc không đơn giản, phụ thuộc rất nhiều vào công cụ sử dụng, tính chất, quy mô, sự thƣờng xuyên biến đổi của miền cũng nhƣ các quan hệ phức tạp trong đó. Những khó khăn này đòi hỏi công việc xây dựng ontology phải là một quá trình lặp đi lặp lại, mỗi lần lặp cải thiện và tinh chế dần sản phẩm chứ không phải là một quy trình khung với các công đoạn tách rời nhau. Ngoài ra, công việc xây dựng ontology cũng cần phải tính đến khả năng mở rộng miền quan tâm trong tƣơng lai, khả năng kế thừa các hệ thống ontology có sẵn, cũng nhƣ tính linh động để ontology có khả năng mô tả tốt nhất các quan hệ phức tạp trong thế giới thực. Nội dung phần này sẽ đề cập đến một số nguyên tắc cơ bản của việc xây dựng ontology qua các các công đoạn cụ thể sau đây (Quy trình phát triển gồm 7 bƣớc do Stanford Center for Biomedical Informatics Research đƣa ra, đây là nhóm phát triển phần mềm Protégé để trình diễn và soạn thảo ontology) [7]:  Xác định miền quan tâm và phạm vi của ontology.  Xem xét việc kế thừa các ontology có sẵn.  Liệt kê các thuật ngữ quan trọng trong ontology.  Xây dựng các lớp và cấu trúc lớp phân cấp.  Định nghĩa các thuộc tính và quan hệ cho lớp.  Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp.  Tạo các thực thể cho lớp. 17 1.5.1. Xác định miền quan tâm và phạm vi của ontology Giống nhƣ mọi công đoạn đặc tả khác, đặc tả ontology bắt đầu bằng việc trả lời những câu hỏi mang tính phân tích để nhận diện chính xác các yêu cầu. Thông thƣờng, các yêu cầu đối với một hệ thống ontology là mô tả miền quan tâm nhằm phục vụ cơ sở tri thức trong việc giải quyết những mục đích chuyên biệt. Do đó, những câu hỏi này thƣờng là:  Ontology cần mô tả miền nào?  Ontology phục vụ cho mục đích chuyên biệt gì?  Cơ sở tri thức trong ontology sẽ trả lời những câu hỏi gì?  Ontology nhằm vục vụ đối tƣợng nào?  Ai là ngƣời sẽ xây dựng, quản trị ontology? Nhìn chung, câu trả lời cho các câu hỏi dạng này có thể sẽ thƣờng xuyên thay đổi trong suốt quá trình lặp xây dựng một ontology. Nhất là khi có sự thay đổi về mục đích hoặc cần bổ sung tính năng trong việc sử dụng cơ sở tri thức. Tuy nhiên, việc trả lời chính xác các câu hỏi trên tại mỗi bƣớc lặp sẽ giúp giới hạn phạm vi thực sự của mô hình cần mô tả và dự trù các kỹthuật sẽ sử dụng trong quá trình phát triển. Lấy ví dụ, nếu dự trù khả năng xảy ra sự khác biệt về ngôn ngữ giữa ngƣời phát triển và ngƣời sử dụng thì ontology phải đƣợc bổ sung cơ chế ánh xạ (mapping) qua lại các thuật ngữ giữa các ngôn ngữ khác nhau. Hoặc giả sử ontology cần xây dựng có chức năng xử lý ngôn ngữ tự nhiên, ứng dụng dịch tài liệu tự động thì cũng cần thiết phải có kỹ thuật xác định từ đồng nghĩa chẳng hạn. Sau khi đã phác thảo phạm vi ontology dựa trên việc trả lời những câu hỏi trên, ngƣời thiết kế sẽ trả lời các câu hỏi mang tính đánh giá, qua đó tiếp tục tinh chỉnh lại phạm vi của hệ thống cần xây dựng. Các câu hỏi dạng này thƣờng dựa trên cơ sở tri thức của ontology và đƣợc gọi là câu hỏi kiểm chứng khả năng (competency question):  Ontology đã có đủ thông tin để trả lời cho các câu hỏi đƣợc quan tâm trên cơ sở tri thức hay không?  Câu trả lời của cơ sở tri thức đã đáp ứng đƣợc mức độ, yêu cầu nào của ngƣời sử dụng?  Các ràng buộc và quan hệ phức tạp trong miền quan tâm đã đƣợc biểu diễn hợp lý chƣa? 1.5.2 Xem xét việc kế thừa các ontology có sẵn Đây là một công đoạn thƣờng hay sử dụng để giảm thiểu công sức xây dựng một ontology. Bằng cách kế thừa các ontology tƣơng tự có sẵn, ngƣời xây 18 dựng có thể thêm hoặc bớt các lớp, quan hệ giữa các lớp, thực thể… để tinh chỉnh tùy theo mục đích của mình. Ngoài ra, việc sử dụng lại các ontology có sẵn cũng rất quan trọng khi cần sự tƣơng tác giữa các ứng dụng khác nhau. Lý do là các ứng dụng sẽ cần phải hiểu các lớp, thực thể, quan hệ... của nhau để thuận tiện trong việc trao đổi hoặc thông nhất thông tin. Vấn đề xây dựng một ontology mới bằng cách kế thừa các hệ thống có sẵn liên quan đến một bài toán rất phức tạp là trộn (merging) các ontology. Nhƣ đã nói trong mục trƣớc, tên các khái niệm đƣợc định nghĩa trong các ontology này có thể giống nhau trong khi chúng đƣợc dùng để mô tả các loại vật hoàn toàn khác nhau. Trong khi đó, cũng có thể xảy ra trƣờng hợp ngƣợc lại, khi tên các khái niệm khác nhau nhƣng cùng mô tả một sự vật. Và một vấn đề nữa là làm thế nào để bổ sung các quan hệ, thuộc tính có sẵn vào một hệ thống mới. Tuy nhiên, hầu hết các ontology sử dụng trong ngành khoa học máy tính nói chung và Web ngữ nghĩa nói riêng đều đƣợc xây dựng trên các hệ thống xây dựng và quản trị ontology. Có thể kể tên một số công cụ, chẳng hạn: Sesame, Protégé, Ontolingua, Chimaera, OntoEdit, OidEd… Hiện nay, đa số các phần mềm này đều hỗ trợ chức năng tự động trộn các ontology cùng hoặc thậm chí khác định dạng với nhau. Mặc dù vậy, ở mức nào đó, ngƣời xây dựng cũng cần phải kiểm tra lại một cách thủ công, nhƣng đây có lẽ cũng không phải là một công việc phức tạp. Hiện có rất nhiều ontology đƣợc chia sẻ trên Web. Có thể kể ra một số ontology nổi tiếng nhƣ: UNSPSC (www.unspsc.org) do Chƣơng trình phát triển của Liên Hiệp Quốc hợp tác với tổ chức Dun & Bradstreet nhằm cung cấp các thuật ngữ của các sản phẩm và dịch vụ thƣơng mại. Các ontology trong lĩnh vực thƣơng mại khác nhƣ: RosettaNet (www.rosettanet.org), DMOZ (www.dmoz.org), eClassOwl,… Open Biological, BioPax trong lĩnh vực sinh vật học, UMLS trong lĩnh vực mạng ngữ nghĩa, GO (GeneOntology), WordNet (đại học Princeton)… 1.5.3. Liệt kê các thuật ngữ quan trọng trong ontology Ontology đƣợc xây dựng trên cơ sở các khái niệm trong một lĩnh vực cụ thể, vì vậy khi xây dựng ontology cần bắt đầu từ các thuật ngữ chuyên ngành để xây dựng thành các lớp trong ontology tƣơng ứng. Tất nhiên không phải thuật ngữ nào cũng đƣa vào ontology, vì chƣa chắc đã định vị đƣợc cho thuật ngữ đó. Do đó cần phải liệt kê các thuật ngữ, để xác định ngữ nghĩa cho các thuật ngữ đó, cũng nhƣ cân nhắc về phạm vi của ontology. Việc liệt kê các thuật ngữ còn cho thấy đƣợc phần nào tổng quan về các khái niệm trong lĩnh vực đó, giúp cho các bƣớc tiếp theo đƣợc thuận lợi. 19 1.5.4. Xác định các lớp và phân cấp của các lớp Công việc xác định các lớp không chỉ đơn giản là tiến hành tìm hiểu về ngữ nghĩa của các thuật ngữ đã có để có đƣợc các mô tả cho thuật ngữ đó, mà còn phải định vị cho các lớp mới, loại bỏ ra khỏi ontology nếu nằm ngoài phạm vi của ontology hay hợp nhất với các lớp đã có nếu có nhiều thuật ngữ có ngữ nghĩa nhƣ nhau (đồng nghĩa, hay đa ngôn ngữ). Ngoài ra, không phải thuật ngữ nào cũng mang tính chất nhƣ một lớp. Hình 1.2 - Cấu trúc lớp phân cấp Một công việc cần phải tiến hành song song với việc xác định các lớp là xác định phân cấp của các lớp đó. Việc này giúp định vị các lớp dễ dàng hơn. Có một số phƣơng pháp tiếp cận trong việc xác định phân cấp của các lớp:  Phƣơng pháp từ trên xuống (top-down): bắt đầu với định nghĩa của các lớp tổng quát nhất trong lĩnh vực và sau đó chuyên biệt hóa các khái niệm đó. Ví dụ: trong ontology về quản lý nhân sự, ta bắt đầu với lớp Ngƣời, sau đó chuyên biệt hóa lớp Ngƣời đó bằng cách tạo ra các lớp con của lớp Ngƣời nhƣ: Kỹ sƣ, Công nhân, Bác sỹ,… Lớp Kỹ sƣ cũng có thể chuyên biệt hóa bằng cách tạo ra các lớp con nhƣ Kỹ sƣ CNTT, Kỹ sƣ điện, Kỹ sƣ cơ khí, …  Phƣơng pháp từ dƣới lên (bottom-up): bắt đầu với định nghĩa của các lớp cụ thể nhất, nhƣ các lá trong cây phân cấp. Sau đó gộp các lớp đó lại thành các khái niệm tổng quát hơn. Ví dụ: ta bắt đầu với việc định nghĩa các lớp nhƣ: nhân viên lễ tân, nhân viên vệ sinh, nhân viên kỹ thuật. Sau đó tạo ra một lớp chung hơn cho các lớp đó là lớp nhân viên.  Phƣơng pháp kết hợp: kết hợp giữa phƣơng pháp từ trên xuống và từ dƣới lên: bắt đầu từ định nghĩa các lớp dễ thấy trƣớc và sau đó tổng quát hóa và chuyên biệt hóa các lớp đó một cách thích hợp. Ví dụ, ta bắt đầu với lớp nhân viên trƣớc, là thuật ngữ hay gặp nhất trong quản lý nhân sự. Sau đó, chúng ta có thể chuyên biệt hóa thành các lớp con: 20 nhân viên lễ tân, nhân viên vệ sinh,… hoặc tổng quát hóa lên thành lớp Ngƣời. 1.5.5. Định nghĩa các thuộc tính và quan hệ cho lớp Bản thân các lớp nhận đƣợc ở bƣớc trên chỉ mới là những thuật ngữ phân biệt với nhau bằng tên gọi. Về cơ bản, chúng chƣa đủ để phục vụ cho việc biểu diễn tri thức. Muốn nhƣ vậy, các thuộc tính của lớp cần đƣợc định nghĩa. Thuộc tính của lớp là các thông tin bên trong của lớp, mô tả một khía cạnh nào đó của lớp và đƣợc dùng để phân biệt với các lớp khác. Thuộc tính đƣợc chia làm nhiều loại khác nhau:  Về mặt ý nghĩa, các thuộc tính có thể đƣợc chia làm hai loại: thuộc tính bên trong (intrinsic property) và thuộc tính bên ngoài (extrinsic property). Thuộc tính bên trong mô tả các tính chất nội tại bên trong sự vật, ví dụ: chất, lƣợng, cấu tạo… Trong khi đó, thuộc tính bên ngoài mô tả phần biểu hiện của sự vật, ví dụ: màu sắc, hình dạng…  Về mặt giá trị, các thuộc tính cũng đƣợc chia làm hai loại: thuộc tính đơn (simple property) và thuộc tính phức (complex property). Thuộc tính đơn là các giá trị đơn ví dụ: chuỗi, số…, còn thuộc tính phức có thể chứa hoặc tham khảo đến một đối tƣợng khác. Một chú ý quan trọng nữa trong bƣớc này là việc một lớp sẽ kế thừa toàn bộ các thuộc tính của tất cả các cha nó. Do đó, cần phải xem xét một thuộc tính đã đƣợc định nghĩa ở các lớp thuộc mức cao hơn hay chƣa. Thuộc tính chỉ nên đƣợc định nghĩa khi nó là tính chất riêng của lớp đang xét mà không đƣợc biểu hiện ở các lớp cao hơn. 1.5.6. Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp. Các ràng buộc giới hạn giá trị mà một thuộc tính có thể nhận. Hai ràng buộc quan trọng nhất đối với một thuộc tính là lƣợng số (cardinality) và kiểu (type). Ràng buộc lƣợng số quy định số giá trị mà một thuộc tính có thể nhận. Hai giá trị thƣờng thấy của ràng buộc này là đơn trị (single) và đa trị (multiple). Nhƣng một số phần mềm còn cho phép định nghĩa chính xác khoảng giá trị của lƣợng số. Ràng buộc thứ hai là về kiểu. Hình 1.3 - Ràng buộc trong ontology
- Xem thêm -