Tiểu luận môn Nguyên lý và phương pháp lập trình Lập trình hướng ontology

37 841 2
Tiểu luận môn Nguyên lý và phương pháp lập trình Lập trình hướng ontology

Đ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 h ọ c Qu ố c gia Thành Ph ố H ồ Chí Minh Trường Đại học Công nghệ Thông tin H ọ c viên: Dương Hoàng Thanh Mã số: CH0901050 Lớp Cao học CNTTQM – Khóa 4 Giảng viên: TS. Nguyễn Tuấn Đăng Tháng 10 /2010 MỤC LỤC 1 GIỚI THIỆU 1 2 TỔNG QUAN VỀ ONTOLOGY 1 2.1 Khái niệm Ontology (bản thể) 1 2.2 Các dạng Ontology 3 2.2.1 Ontology chuyên môn 3 2.2.2 Ontology thượng tầng 4 2.3 Ứng dụng của Ontology 5 2.3.1 Mạng ngữ nghĩa 5 2.3.2 Hệ chuyên gia 7 3 TỔNG QUAN VỀ LOGIC MÔ TẢ 8 3.1 Giới thiệu 8 3.2 Cơ sở tri thức 9 3.3 Một vài logic mô tả đáng chú ý 10 3.4 Suy diễn với logic mô tả 12 3.5 Các hệ logic mô tả 15 3.5.1 Thế hệ thứ nhất 16 3.5.2 Thế hệ thứ hai của các hệ thống logic mô tả 18 3.5.3 Thế hệ mới: FACT, DLP và RACER 20 4 SƠ LƯỢC VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 20 4.1 Các thành phần cơ bản 20 4.1.1 Lớp 20 4.1.2 Thực thể 21 4.1.3 Phương thức 21 4.2 Các tính chất cơ bản 21 4.2.1 Tính trừu tượng 21 4.2.2 Tính đóng gói và che giấu thông tin 22 4.2.3 Tính đa hình 22 4.2.4 Tính kế thừa (inheritance) 22 4.3 Các ngôn ngữ và ứng dụng của OOP 23 5 Ý TƯỞNG VỀ LẬP TRÌNH HƯỚNG ONTOLOGY 23 5.1 Khái niệm 25 5.2 Các thành phần của OnOP 26 5.2.1 Lớp 27 5.2.2 Cá thể 27 5.2.3 Quan hệ 28 5.2.4 Tiên đề 29 5.2.5 Bộ suy diễn 29 5.3 Các bước xây dựng chương trình 29 5.3.1 Khai báo tri trức 29 5.3.2 Khởi tạo tri thức 29 5.3.3 Viết mã lệnh 29 5.4 Ngôn ngữ lập trình 29 5.5 Ưu điểm và thách thức 30 5.5.1 Ưu điểm của OnOP 30 5.5.2 Thách thức 30 6 HƯỚNG PHÁT TRIỂN 30 7 TỔNG KẾT 31 8 TÀI LIỆU THAM KHẢO 31 8.1 Tiếng Việt 31 8.2 Tiếng Anh 31 DANH SÁCH HÌNH ẢNH Hình 1: Ontology về bánh Pizza 3 Hình 2: Mô hình Ontology Chuyên môn 4 Hình 3: Một mô hình mạng ngữ nghĩa 6 Hình 4: Mạng ngữ nghĩa dùng để giải toán tam giác 7 Hình 5: Kiến trúc hệ logic mô tả 16 Hình 6: Các thành phần của ngôn ngữ OWL 25 Hình 7: Kiến trúc của OnOP 26 Hình 8: Lớp là hình thức phân loại các cá thể 28 Hình 9: Sự đa dạng trong quan hệ của OnOP 28 DANH SÁCH BẢNG BIỂU Bảng 1: Một vài phương thức khởi tạo trong Logic Mô tả 11 Bảng 2: Độ phức tạp của suy diễn trong một vài logic mô tả quan trọng 12 Bảng 3: Các bộ suy diễn logic mô tả, logic và giao diện DIG được hỗ trợ 15 Lập trình hướng Ontology Dương Hoàng Thanh GVHD: TS. Nguyễn Tuấn Đăng Trang 1 1 GIỚI THIỆU Theo xu thế phát triển của khoa học máy tính, các hệ thống phần mềm ngày càng phát triển theo xu hướng thông minh hơn và do đó có khả năng tự xử lý công việc nhiều hơn. Ngành nghệ phần mềm cũng vậy, việc thiết và lập trình hệ thống phần mềm ngày càng đòi hỏi phải thật tự nhiên và thuận tiện, như chính cách con người tổ chức, xử lý, và truyền đạt thông tin mỗi ngày. Với sự phát những thành tựu vượt bậc của phần cứng cũng như phần mềm máy tính, ước mơ về một hệ thống có khả năng tiếp nhận tri thức và tự đưa ra quy trình xử lý công việc đang trở nên gần hơn bao giờ hết. 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. Do đó, nội dung chủ yếu của đề tài này là phác thảo nên những ý tưởng ban đầu về một nguyên lý lập trình lấy Ontology và việc mô tả cơ sở tri thức làm trọng tâm, đó là Nguyên lý Lập trình Hướng Ontology. 2 TỔNG QUAN VỀ ONTOLOGY 2.1 Khái niệm Ontology (bản thể) 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 Lập trình hướng Ontology Dương Hoàng Thanh GVHD: TS. Nguyễn Tuấn Đăng Trang 2 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: Thô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ệ ba 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 đị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 loại (f t ), lực lượng (f c ) và phạm vi (f r ). Mặt giới hạn f t 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ư f t ∈ {boolean, integer, float, string, symbol, instance, class, …}. Mặt giới Lập trình hướng Ontology Dương Hoàng Thanh GVHD: TS. Nguyễn Tuấn Đăng Trang 3 hạn lực lượng f c đị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 f r 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. R t = {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. Hình 1: Ontology về bánh Pizza 2.2 Các dạng Ontology 2.2.1 Ontology chuyên môn Một Ontology chuyên môn 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 chuyên môn 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ó nhiều rất 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 chuyên môn đị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 Lập trình hướng Ontology Dương Hoàng Thanh GVHD: TS. Nguyễn Tuấn Đăng Trang 4 mục tiêu. Ontology chuyên môn đượ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 chuyên môn thể hiện tên lĩnh vực 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 hệ đượ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. Mỗi sự kiện bao gồm một vài khái niệm 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óa 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ữa 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. 1111 , ,, 21 qCCC AAA 1111 , ,, 21 qCCC OOO 2222 , ,, 21 qCCC AAA 2222 , ,, 21 qCCC OOO 3333 , ,, 21 qCCC AAA 3333 , ,, 21 qCCC OOO 4444 , ,, 21 qCCC OOO 4444 , ,, 21 qCCC AAA 5555 , ,, 21 qCCC AAA 5555 , , 2,1 qCCC OOO mmmm qCCC AAA , ,, 21 mmmm qCCC OOO , ,, 21 Hình 2: Mô hình Ontology Chuyên môn 2.2.2 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 tượng thuật ngữ thông dụng mà có thể áp dụng cho số lượng lớn các ontology chuyên môn. Ontology thượng tầng chứa một từ điển cốt lõi Lập trình hướng Ontology Dương Hoàng Thanh GVHD: TS. Nguyễn Tuấn Đăng Trang 5 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, và 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 chuyên môn. 2.3 Ứng dụng của Ontology 2.3.1 Mạng ngữ nghĩa Người đặt nền tảng cho mạng thông tin toàn cầu Tim Berners-Lee đã nhiều lần đề cập đến mạng ngữ nghĩa (Sematic Web). Trong đó, các hệ thống có thể giao tiếp với nhau, phân tích và diễn giải ý nghĩa của mọi dữ liệu trên site, rồi tập hợp nội dung liên quan từ nhiều nguồn khác nhau. Nhờ đó, một công ty du lịch sẽ biết khách hàng của họ có bao nhiêu đứa con, công việc, sở thích riêng để tìm ra điểm nghỉ mát lý tưởng nhất cho cả gia đình. Ý tưởng trọng tâm của là tạo ra những "metadata": chuỗi các cơ sở dữ liệu nối tiếp nhau, có nhiệm vụ bổ sung cho thông tin trên web để các máy tính có thể hiểu và giải quyết những vấn đề ngữ nghĩa phức tạp. Mạng ngữ nghĩa được tổ chức dưới dạng một đồ thị, trong đó các nút biểu diễn các đối tượng và cung biểu diễn quan hệ giữa các đối tượng. [...]... trong khi Perl và PHP chỉ mới bổ sung các tính năng hướng đối tượng từ Perl 5 và PHP 4, và ColdFusion từ phiên bản 6 5 Ý TƯỞNG VỀ LẬP TRÌNH HƯỚNG ONTOLOGY Dựa trên những lý thuyết về Ontology và logic mô tả, kết hợp với nguyên lý lập trình hướng đối tượng, mục này nhằm phác thảo những ý tưởng chủ đạo về một cách tiếp cận mới trong lập trình: lập trình theo định hướng Ontology Lập trình hướng đối tượng... ngữ lập trình thế hệ mới đang cố gắng hiện thực hóa Tuy nhiên, đề tài này đề xuất ý tưởng xây dựng một phương pháp lập trình hoàn toàn mới dựa trên những nguyên lý của lập trình hướng đối tượng Điều đó cũng có nghĩa là cần có thêm những ngôn ngữ lập trình mới được bổ sung thêm những yếu tố đặc trưng của Ontology Một cách tiếp cận khác hiện đang được ứng dụng rộng rãi đó là tiếp cận lập trình hướng Ontology. .. Bước cuối cùng là phát triển các ứng dụng hữu ích dựa trên ngôn ngữ lập trình và trình biên dịch, đồng thời đưa nguyên lý lập trình này giới thiệu đến các lập trình viên 7 TỔNG KẾT Đề tài chỉ mới dừng lại ở việc đề xuất những ý tưởng ban đầu về một nguyên lý lập trình hỗ trợ mạnh việc xây dựng các cơ sở tri thức dựa trên Ontology và Logic Mô tả Tuy chặng đường để đưa ý tưởng này đến với thực tế còn... niệm Lập trình hướng Ontology (Ontology Oriented Programming, viết tắt OnOP) là nguyên lý (paradigm) lập trình sử dụng Ontology để thiết kế ứng dụng và chương trình máy tính Ontology trong OnOP được định nghĩa theo Định nghĩa 2 ở trên và được gắn với một logic mô tả xác định Nếu như OOP lấy dữ liệu làm hạt nhân thì hạt nhân trong OnOP không chỉ là dữ liệu mà còn là tri thức OnOP tập trung chủ yếu vào... của một Ontology cài đặt bằng hướng đối tượng Ngược lại, Ontology mở rộng khả năng của lập trình hướng đối tượng Thay vì phải tập trung vào việc cài đặt cơ sở dữ liệu và các thuật toán xử lý, mô hình Ontology hướng nỗ lực của người thiết kế sang việc khai báo và mô tả tri thức Việc này còn cho phép những chuyên gia có thể tạo dựng nên những ứng dụng hữu ích mà không cần am hiểu nhiều về lập trình Đây... nguyên lý lập trình trí tuệ nhân tạo dựa trên logic khác Theo hướng tiếp cận trong đề tài này, OnOP còn có thể được xem như một mở rộng của lập trình hướng đối tượng theo hướng hỗ trợ logic mô tả GVHD: TS Nguyễn Tuấn Đăng Trang 25 Lập trình hướng Ontology Dương Hoàng Thanh Hình 8: Kiến trúc của OnOP 5.2 Các thành phần của OnOP OnOP vẫn kế thừa lại các thành phần cơ bản mang tính kinh điển của các phương. .. chưa có ngôn ngữ lập trình nào được thiết kế hoàn chỉnh cho OnOP GVHD: TS Nguyễn Tuấn Đăng Trang 29 Lập trình hướng Ontology Dương Hoàng Thanh OWL là họ ngôn ngữ thông dụng nhất hiện nay để mô tả Ontology 5.5 Ưu điểm và thách thức 5.5.1 Ưu điểm của OnOP OnOP tập trung vào mô tả tri thức dưới dạng khái niệm và quan hệ, vốn rất gần với phương pháp mô tả thế giới của con người Do đó, lập trình viên sẽ không... hợp để biểu diễn Ontology do có dạng frame, cũng là dạng biểu diễn tri thức nền tảng của Ontology Lập trình hướng có nhiều điểm tương đồng với Ontology trong kiến trúc, bao gồm lớp, thực thể, thuộc tính, quan hệ kế thừa… đến mức hoàn toàn có thể cài đặt Ontology bằng các ngôn ngữ lập trình hướng đối tượng mà không cần thay đổi nhiều GVHD: TS Nguyễn Tuấn Đăng Trang 23 Lập trình hướng Ontology Dương Hoàng... được gọi là xử lý dữ liệu Dữ liệu và thao tác liên kết với nhau ở một mức cơ bản (còn có thể gọi là mức thấp), mỗi bên đều đòi hỏi đối tác có mục tiêu cụ thể, các chương trình hướng đối tượng làm tường minh mối quan hệ này Lập trình hướng đối tượng (Object Oriented Programming - gọi tắt là OOP) hay chi tiết hơn là Lập trình định hướng đối tượng, chính là phương pháp lập trình lấy đối tượng làm nền tảng... trình tồn tại, đối tượng có thể thay đổi, thêm bớt các thuộc tính của mình, và do đó có thể thay đổi phân lớp mà mình thuộc về GVHD: TS Nguyễn Tuấn Đăng Trang 27 Lập trình hướng Ontology Dương Hoàng Thanh Hình 9: Lớp là hình thức phân loại các cá thể 5.2.3 Quan hệ Khái niệm Thừa kế của Lập trình Hướng đối tượng chỉ biểu diễn được quan hệ “bao hàm” của Ontology Khái niệm Thuộc tính trong Lập trình Hướng

Ngày đăng: 11/04/2015, 08:16

Từ khóa liên quan

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

Tài liệu liên quan