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ó
Trang 1MỤC LỤC
Trang 2ONTOLGY VÀ ỨNG DỤNG CỦA ONTOLOGY VÀO BÀI TOÁN TAM GIÁC
I. Giới thiệu
Ngày nay, với sự bùng nổ thông tin, nhất là thông tin trên web đang được rất nhiều nhà nghiên cứu quan tâm Thế nhưng máy tính hiện nay chỉ có tác dụng nhận và hiển thị thông tin chứ không có khả năng đọc và hiểu được thông tin Do vậy, việc tìm kiếm, tách chiết, lập luận để đưa ra tri thức cần thiết càng ngày càng khó khăn Năm 1998, Tim Berners-Lee đã đề xuất ra web ngữ nghĩa (Semantic web), một sự phát triển của web hiện tại Theo ông, web ngữ nghĩa ra đời sẽ khắc phục được những nhược điểm quan trong của web hiện tại, làm cho máy tính có thể hiểu thông tin trên web và như thế việc xử lý thông tin trên web trở nên thuận lợi và chính xác hơn Cũng theo ông, nền tảng
cơ bản của web ngữ nghĩa là Ontology
Trong một vài năm gần đây, việc áp dụng ontology như một hình thức biểu diễn tri thức trong các lĩnh vực ứng dụng khác nhau đã có những bước tiến quan trọng Ontology mô tả không chỉ khái niệm và thuộc tính
mà còn cung cấp các quan hệ cũng như các tiên đề phục vụ cho việc suy luận Ontology có rất nhiều lợi thế như cho phép thêm ngữ nghĩa vào dữ liệu, quản lý và cập nhật tri thức, tích hợp dữ liệu cũng như tái sử dụng các thành phần dễ dàng hơn Nhờ đó, ontology là mô tả chính thức của một số bộ từ vựng chuyên môn
Công dụng quan trọng nhất của ontology là biểu diễn tri thức Ontology đã được sử dụng thành công trong các hệ thống chuyên gia, mạng ngữ nghĩa… Do hình thức lý thuyết là logic mô tả, ontology có lợi thế cả về diễn đạt ngữ nghĩa lẫn cơ chế suy luận
Mục tiêu của bài thu hoạch này là tiếp cận các kiến thức về ontology, cũng như xây dựng thử nghiệm một hệ cơ sở tri thức về lĩnh vực hình học phẳng mà cụ thể là giải bài toán tam giác
Trang 3II. Các khái niệm
a. Bản thể Ontology
Việc biểu diễn tri thức và lập luận là vấn đề then chốt cho quá trình
xử lý thông tin tự động trong các hệ thống thông minh Trong thời gian gần đây, một vấn đề quan trọng đã và đang được nhiều nhà nghiên cứu quan tâm đó là biểu diễn và xử lý tri thức trên Web Năm 1998, Tim Berners-Lee đã nghiên cứu và phát triển Semantic web (web ngữ nghĩa), theo cách này các trang web không chỉ thực hiện chức năng nhận và hiển thị thông tin mà còn có khả năng tự động trích rút thông tin, truy vấn, lập luận trong cơ sở tri thức để có thể cho ra các thông tin một cách tự động, chính xác Năm 2003, F, Baader đã phát triển logic mô tả (Description Logic – DLs) và xem nó như là ngôn ngữ biểu diễn cho tri thức trên web ngữ nghĩa Từ đó việc nghiên cứu quá trình biểu diễn và lập luận trong web ngữ nghĩa được quan tâm tuy nhiên chỉ dừng lại đối với tri thức chắc chắn Năm 2006, Umberto Straccia dựa vào nền tảng của logic mô tả và
lý thuyết tập mờ của Zadeh (đưa ra năm 1965) đã đưa ra logic mô tả mờ (Fuzzy Description Logic) ) nhằm phục vụ cho việc xử lý tri thức không chắc chắn trên web ngữ nghĩa
Ontology là một thuật ngữ mượn từ triết học nhằm chỉ khoa học mô
tả các loại thực thể trong thế giới thực và cách chúng liên kết với nhau Trong khoa học máy tính, một cách khái quát, Ontology là "một biểu diễn của sự khái niệm hoá chung được chia sẻ" của một miền nhất định Nó 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à các định nghĩa về các khái niệm và các thuộc tính này 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
Định nghĩa 1:
Trang 4Thông thường, ontology được định nghĩa như một cấu trúc bao gồm những thành phần sau (Gruber 1993; Fensel 2001)
• C – tập các khái niệm (Concept);
• I – tập các thể hiện của khái niệm
• R – tập các quan hệ hai ngôi được định nghĩa trên C;
• Z – tập các tiên đề, là các công thức logic biểu diễn các ràng buộc toàn vẹn trong tập các thể hiện và khái niệm
Định nghĩa 2:
Một ontology là một bộ tứ O = (C, P, R, A), trong đó:
• C là một tập các khái niệm được định nghĩa trong một miền Một khái niệm thường được xem như một lớp của ontology
• P là một tập các thuộc tính Một thuộc tính p € P được định nghĩa như một thể hiện của một quan hệ 3 ngôi có dạng p(c,v,f), trong đó c € C là một khái niệm ontology, v là một giá trị thuộc tính gắn với c và f là định nghĩa các mặt giới hạn trên v Một vài mặt giới hạn bao gồm lọai (ft), lực lượng (fc) và phạm vi (fr) Mặt giới hạn ft có thể là bất kỳ kiểu dữ liệu nào được hổ trợ bởi trình soạn thảo ontology, ví dụ như ft € {Boolean, integer, float, string, symbol, instance, class,…} Mặt giới hạn lực lượng fc định nghĩa cận trên và cận dưới của số lượng giá trị thuộc tính Mặt giới hạn phạm vi fr chỉ định một phạm vi các giá trị có thể gán cho thuộc tính
• R={r| r ⊆ C × C × R
t} là một tập các quan hệ ngữ nghĩa hai ngôi được định nghĩa giữa các khái niệm trong C.Rt = {một-một, một-nhiều, nhiều- nhiều} là tập các kiểu quan hệ
• A là một tập các tiên đề Mỗi tiên đề là một chân lý hoặc luật suy diễn
Trang 5Hình 1: Mô hình ontology về bánh pizza
Ontology lĩnh vực:
Một Ontology lĩnh vực mô hình hóa một lĩnh vực chuyên môn, hay một phần của thế giới Ontology lĩnh vực thể hiện những ý nghĩa riêng của các vấn đề khi áp dụng vào lĩnh vực đó Ví dụ, từ “card” có rất nhiều nghĩa Một ontology chuyên về bài pocker sẽ mô phỏng nghĩa “playing card” (lá bài) của thế giới, trong khi một ontology lĩnh vực về máy tính lại
mô phỏng ý nghĩa “puched card” (thẻ đục lỗ) và “video card” (card màn hình)
Định nghĩa 3:
Một Ontology lĩnh vực định nghĩa một tập các thuật ngữ gọi là khái niệm Các mối quan hệ giữa những khái niệm này diễn tả một thế giới mục tiêu Ontology lĩnh vực được định nghĩa qua bốn tầng, bao gồm tầng lĩnh vực, tầng phân hệ, tầng sự kiện, và tầng chứa các lớp Một ontology miền thể hiện một tên miền của một ontology và bao gồm nhiều phân hệ khác nhau được định nghĩa bởi các chuyên gia trong lĩnh vực Mỗi phân
Trang 6hệ được tổ hợp bởi các tập sự kiện, kế thừa từ những bản thông tin bởi các chuyên gia lĩnh vực Mỗi sự kiện bao gồm một vài khái niệm của của tầng chứa lớp Trong tầng chứa lớp, mỗi khái niệm chứa một tên khái niệm, một tập thuộc tính và một tập tóan tử cho một ứng dụng lĩnh vực Ontology lĩnh vực có ba loại quan hệ, bao gồm khái quát hóa, quy nạp và liên đới Quan hệ giữ lĩnh vực và các phân hệ tương ứng là sự khái quát hóa, thể hiện quan hệ “thuộc loại” Quan hệ giữa mỗi phân hệ và những
sự kiện tương ứng là sự quy nạp Quan hệ quy nạp diễn tả quan hệ “là một phần của” Liên đới là một quan hệ ngữ nghĩa giữa các lớp trong một tầng
Hình 2: Mô hình ontology lĩnh vực
Ontology thượng tầng:
Một ontology thượng tầng (hay ontology nền) là một mô hình các đối
Trang 7tượng thuật ngữ thông dụng mà có thể áp dụng cho số lượng lớn các ontology miền Ontology thượng tầng chứa một từ điển cốt lõi trong đó mô
tả những đối tượng thuật ngữ thuộc một tập hợp các lĩnh vực Có rất nhiều ontology được chuẩn hóa có thể sử dụng được, bao gồm Dublin Core, GFO, OpenCyc/ResearchCyc, SUMO, and DOLCE WorldNet, đôi khi được xem như một ontology thượng tầng, thực ra không hoàn toàn
là một ontology Mặc dù vậy, WorldNet được cài đặt như là một công cụ ngôn ngữ để nghiên cứu ontology lĩnh vực
b. Logic mô tả
Logic mô tả (Description logics, viết tắt DL) là một họ các ngôn ngữ biểu diễn tri thức có thể sử dụng để biểu diễn tri thức thuật ngữ của một miền ứng dụng theo một cách có cấu trúc và được hiểu rõ một cách hình thức Mặt khác, cái tên logic mô tả có ý nói đến các mô tả về khái niệm được dùng để mô tả một miền và ngữ nghĩa dựa trên logic (logic-based semantics) thu được qua việc dịch từ logic mệnh đề bậc nhất Logic mô
tả được thiết kế như là một mở rộng của khung ngữ nghĩa (semantic frame) và lưới ngữ nghĩa (semantic network), vốn không được trang bị một ngữ nghĩa dựa trên logic hình thức
Cú pháp: bao gồm
• Một tập các ký hiệu mệnh đề dùng để ký hiệu các tên khái niệm (concept name);
• Một tập các ký hiệu mệnh đề đôi để ký hiệu các tên vai trò (role name);
• Một định nghĩa đệ quy để định nghĩa các thuật ngữ khái niệm từ các tên khái niệm và tên vai trò bằng cách sử dụng các tạo tử (constructor)
Trong lôgic mô tả, các tên khái niệm được xem là các khái niệm nguyên tử, các tên vai trò được coi là các vai trò nguyên tử Nhìn chung,
Trang 8một khái niệm đại diện cho tập các cá thể thuộc về nó, và một vai trò đại diện cho một quan hệ giữa các khái niệm
Cú pháp của một thành viên trong gia đình lôgic mô tả được đặc trưng bởi định nghĩa đệ quy của nó, các định nghĩa đệ quy này định nghĩa các tạo tử có thể được dùng để tạo các thuật ngữ khái niệm
Một số tạo tử thông dụng bao gồm các tạo tử lôgic trong logic bậc nhất như phép giao (intersection) hay tuyển (conjunction) của các khái niệm, phép hợp (union) hay hội (disjunction) của các khái niệm, phép phủ định (negation) hay lấy phần bù (complement) của các khái niệm, hạn chế giá trị (hạn chế với mọi - universal restriction), hạn chế tồn tại (existential resctriction), v.v Các tạo tử khác có thể còn bao gồm các hạn chế đối với các vai trò thường thấy trong các quan hệ nhị phân, ví dụ, tính đảo (inverse), tính bắc cầu (transitivity), chức năng (functionality), v.v Đặc biệt đối với phép giao và phép hợp, logic mô tả sử dụng các ký hiệu ∏ và ┐ để phân biệt chúng với và trong lôgic bậc nhất.∧ ∨
Dưới đây là một ví dụ về định nghĩa cú pháp của logic mô tả:
• một khái niệm nguyên tử là một khái niệm;
• khái niệm đỉnh ( ) là một khái niệm;
• khái niệm đáy ( ) là một khái niệm;
• phần bù của một khái niệm C cũng là một khái niệm (ký hiệu là ¬C);
• giao của hai khái niệm C và D cũng là một khái niệm ;
• nếu C là một khái niệm và R là một tên vai trò, thì R.C (hạn chế giá trị) cũng là một khái niệm;
• nếu R là một tên vai trò, thì R.(hạn chế tồn tại) cũng là một khái niệm
Ngữ nghĩa:
Ngữ nghĩa của lôgic mô tả được định nghĩa bằng cách giải nghĩa các khái niệm như là các tập hợp gồm các cá thể, và các vai trò như là các tập gồm các cặp cá thể Các cá thể đó thường được cho là thuộc một miền
Trang 9xác định cho trước Sau đó, ngữ nghĩa của các khái niệm và vai trò không nguyên tử được định nghĩa theo các khái niệm và vai trò nguyên tử Điều này được thực hiện bằng một định nghĩa đệ quy tương tự như trong cú pháp
III. Phương pháp xây dựng Ontolog
Quy trình phát triển Ontology là một quy trình gồm nhiều bước, tuy nhiên vẫn chưa có một phương pháp chuẩn hóa nào để phát triển các ontologies Sau đây là 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)
Bước 1: Xác định lĩnh vực và phạm vi của Ontology
Trong giai đoạn này cần xác định mục đích của việc xây dựng ontology là gì? Phục vụ đối tượng nào? Ontology sắp xây dựng cần có đặc điểm gì, liên quan đến lĩnh vực, phạm vi nào Quá trình khai thác, quản lý và bảo trì ontology được thực hiện ra sao?
Bước 2: Xem xét việc sử dụng lại các ontology có sẵn
Cấu trúc của một Ontology bao gồm 3 tầng: tầng trừu tượng (Abstract), tầng miền xác định (Domain) và tầng mở rộng (Extension) Trong đó tầng trừu tượng có tính tái sử dụng rất cao, tầng miền xác định
có thể tái sử dụng trong một lĩnh vực nhất định Cộng đồng Ontology cũng đang lớn mạnh và có rất nhiều Ontology đã được tạo ra, với tâm huyết của nhiều chuyên gia Do đó trước khi bắt đầu xây dựng ontology, cần xét đến khả năng sử dụng lại các ontology đã có Nếu có thể sử dụng lại một phần các ontology đã có, chi phí bỏ ra cho quá trình xây dựng ontology sẽ giảm đi rất nhiều
Bước 3: Liệt kê các thuật ngữ quan trọng
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
Trang 10ngà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
Bước 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
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 tổng quát hơn Ví dụ: ta bắt đầu với việc
Trang 11đị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: 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
Bước 5: Xác định các thuộc tính
Để xác định thuộc tính cho các lớp, ta quay trở lại danh sách các thuật ngữ đã liệt kê được Hầu hết các thuật ngữ còn lại (sau khi đã xác định lớp) là thuộc tính của các lớp đó Với mỗi thuộc tính tìm được, ta phải xác định xem nó mô tả cho lớp nào Các thuộc tính đó sẽ trở thành thuộc tính của các lớp xác định Ví dụ lớp Người có các thuộc tính sau:
Họ, Tên, Ngày sinh, Giới tính, Nghề nghiệp, Địa chỉ, Điện thoại,…
Bước 6: Xác định giới hạn các thuộc tính (lực lượng, kiểu giá trị)
Các thuộc tính có thể có nhiều khía cạnh khác nhau: như kiểu giá trị, các giá trị cho phép, số các thuộc tính (lực lượng), và các đặc trưng khác
mà giá trị của thuộc tính có thể nhận Ví dụ: “Năm sinh” của một “nhân viên” chỉ có duy nhất và là số nguyên, có thể nhận giá trị từ 1948 đến
1990 Cần phải xác định các ràng buộc cho một thuộc tính càng chặt chẽ càng tốt, để tránh trường hợp nhập dữ liệu sai, dẫn đến đổ vỡ của các ứng dụng sử dụng Ontology này
Bước 7: Tạo các thể hiện/thực thể
Bước cuối cùng là tạo ra các thể hiện của các lớp trong sự phân cấp Việc tạo thể hiện cho một lớp là quá trình điền các thông tin vào các thuộc tính của lớp đó
IV. Ứng dụng của Ontolog