Đ
ạ
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.
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 6
Hình 3: Một mô hình mạng ngữ nghĩa
Không chỉ thuận lợi cho việc tìm kiếm thông tin, mạng ngữ nghĩa còn hỗ
trợ cơ chế suy diễn khá hiệu quả mà điển hình là bài toán tam giác tổng
quát.
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 7
Hình 4: Mạng ngữ nghĩa dùng để giải toán tam giác
Việc tiếp cận ngữ nghĩa tài nguyên Web thông qua các Ontology thì mềm
dẻo hơn vì người sử dụng có thể lựa chọn bộ từ vựng và các ràng buộc
trong các Ontology. Ví dụ, các ứng dụng trong các miền khác nhau có thể
sử dụng các Ontology khác nhau. Đặc biệt, các Ontology có thể được sử
dụng để đặc tả ý nghĩa của các tài nguyên Web (thông qua các chú thích)
bằng cách xác nhận các tài nguyên như các trường hợp cụ thể của một số
khái niệm quan trọng và hay hoặc khẳng định các tài nguyên có quan hệ
với các tài nguyên khác thông qua một số thuộc tính quan trọng đã định
nghĩa trong các Ontology.
2.3.2 Hệ chuyên gia
Với khả năng biểu diễn tri thức và cơ chế suy luận dựa trên logic mô tả,
ontology là mô hình tuyệt vời cho các hệ chuyên gia. So với phương pháp
biểu diễn bằng luật sinh vốn chỉ hỗ trợ quan hệ nếu… thì…, ontology cho
phép biểu diễn tri thức của chuyên gia một cách đa dạng và phong phú
hơn qua nhiều loại quan hệ khác nhau mà người dùng có thể tự định
nghĩa.
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 8
3 TỔNG QUAN VỀ LOGIC MÔ TẢ
3.1 Giới thiệu
Logic mô tả là họ logic dùng để biểu diễn tri thức có cấu trúc.
Theo một quan điểm lịch sử, logic mô tả (Description Logics – DLs) được
sinh ra nhằm cung cấp ngữ nghĩa cho các công cụ và khung ngữ nghĩa, hai mô
hình truyền thống trong việc diễn đạt tri thức có cấu trúc. Người ta đã phát hiện
rằng những công cụ và khung này có thể được khắc phục sự thiếu sót về ngữ
nghĩa bằng cách sử dụng logic vị từ. Tuy nhiên, do trong hầu hết các trường
hợp, khung và mạng ngữ nghĩa không cần đến diễn đạt đầy đủ của logic vị từ,
logic mô tả đã ra đời như một tập con của logic vị từ, giới hạn mức độ diễn đạt
để đổi lấy sự đơn giản trong suy diễn. Mặc dù vậy, có một số logic mô tả không
phải là tập con của logic vị từ.
Ban đầu, những hệ thống như ở trên được gọi là hệ thống thuật ngữ, với
mục đích nhấn mạnh việc chúng được sử dụng để định nghĩa hệ thống thuật ngữ
cơ bản của một ứng dụng chuyên môn. Sau đó, tên gọi logic mô tả được khám
phá, phản ảnh sự thật rằng chuyên ngành đó được diễn đạt bằng cách sử dụng
khái niệm phức hợp: các mô tả và rằng chúng có ngữ nghĩa dựa trên logic.
Các phương thức khởi tạo khác nhau được hỗ trợ trong một logic mô tả dẫn
đến các phân mảnh khác nhau của logic vị từ với độ phức tạp tính toán khác
nhau. Các logic khác nhau trong họ có quan hệ với nhau thông qua nguyên lý
sau: ngôn ngữ càng mang tính diễn đạt cao thì càng khó suy diễn.
Lịch sử của logic mô tả có thể được tóm tắt qua những giai đoạn sau:
Giai đoạn 0 (1965-1980). Logic mô tả chưa ra đời và các mô hình khác
được dùng để biểu diễn tri thức có cấu trúc (ví dụ như mạng ngữ nghĩa
và khung), cho đến khi việc thiếu sót ngữ nghĩa chính quy của các mô
hình đó được phát hiện.
Giai đoạn 1 (1980-1990) bao gồm các hệ thống chưa hoàn chỉnh dựa
trên những thuật toán có cấu trúc. Hệ thống logic mô tả đầu tiên ra đời
trong giai đoạn này và có tên là KL-ONE.
Giai đoạn 2 (1990-1995) bao gồm sự phát triển của các thuật toán
tableau và việc nghiên cứu tính phức tạp của logic, quan hệ của chúng
với logic hình thức và các kỹ thuật tối ưu hoá.
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 9
Giai đoạn 3 (1995-2000) bao gồm sự phát triển của các thuật toán
tableau cho logic mô tả giàu tính diễn đạt và việc cài đặt các bộ suy luận
được tối ưu hóa như RACER hay FACT.
Giai đoạn 4 (2000-…). Giai đoạn này bao gồm việc cài đặt hoàn chỉnh
và thương mại hóa của các bộ suy luận (như là RACERPRO, PELLET hoặc
FACT++) và các công cụ, ứng dụng đa dạng. Các logic mô tả kém hơn
về khả năng diễn đạt nhưng lại dễ kiểm soát ngày càng được quan tâm
nhiều hơn.
3.2 Cơ sở tri thức
Một logic mô tả bao gồm một cơ sở tri thức và một vài khả năng suy diễn.
Bộ từ vựng của một logic mô tả bao gồm 3 loại nhân tố: cá thể, khái niệm
và vai trò. Khái niệm bao hàm các tập một ngôi của các cá thể và vai trò bao
hàm các quan hệ hai ngôi giữa các cá thể.
Một cơ sở tri thức gồm có hai loại tri thức, được nhóm lại trong hai thành
phần khác nhau:
Tri thức mở rộng, hay tri thức đặc thù về một tình huống xác định nào
đó. Loại tri thức này mang tính ngẫu nhiên (tùy thuộc vào một vài tính
huống và có thể thay đổi) và được lưu trữ trong hộp khẳng định
(Assertional Box – Abox).
Tri thức hẹp, hay tri thức tổng quát về một chuyên ngành ứng dụng,
thường không thể thay đổi. Loại tri thức này được cấu trúc trong hộp
thuật ngữ (Terminological Box – Tbox) với thông tin về các khái niệm
và hộp vai trò (Role Box – Rbox) với thông tin về các vai trò.
Các logic mô tả có ngữ nghĩa chính quy dựa trên ý niệm về sự diễn dịch,
nơi mà miền diễn dịch có thể được lựa chọn tùy ý (và có thể hữu hạn). Khác với
các mô hình khác như cơ sở dữ liệu, logic mô tả dựa trên Giả định Thế giới mở
(Open World Assumption). Ví dụ minh họa cho sự khác biệt giữa hai hình thức
trên:
Ví dụ 1: Theo truyền thuyết Hy Lạp, Oedipus giết cha, cưới mẹ của ông ta
là Iokaste, và có con với bà, một trong số đó là Polyneikes. Cuối cùng,
Polyneikes cũng có con, một trong số đó là Thersandros, người mà được biết là
không giết cha.
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 10
Giả sử người đó muốn biết Iokaste có hay không một đứa con mà (i) là một
kẻ giết cha và (ii) có một đứa con không giết cha.
Dưới giả định thế giới đóng, chúng ta không biết rằng Polyneikes không
phải là kẻ giết cha, do đó câu trả lời là không. Mặt khác, dưới giả định thể giới
mở, cho dù Polyneikes có là kẻ giết cha hay không, câu trả lời vẫn là có. Trong
trường hợp đầu, đứa con là Polyneikes, trong khi trong trường hợp sau, đứa con
là Oedipus.
3.3 Một vài logic mô tả đáng chú ý
Trong phần này, chúng ta sẽ điểm lại một vài logic mô tả quan trọng mà
không đi quá sâu vào chi tiết của cú pháp và ngữ nghĩa đặc thù. Mỗi logic mô tả
được thể hiện bằng một chuỗi các ký tự hoa dùng để xác định các phương thức
khởi tạo của logic, và do đó xác định độ phức tạp của nó. Đầu tiên, chúng ta sẽ
trình bày về bộ khởi tạo của logic AL (Atrributive Language - Ngôn ngữ thuộc
tính) và sau đó sẽ mô tả một vài mở rộng.
Các phương thức khởi tạo khái niệm của AL bao gồm:
Các khái niệm đỉnh và đáy.
Các khái niệm nguyên tố.
Phủ định của các khái niệm nguyên tố.
Giao của khái niệm.
Các lượng hóa toàn thể.
Các ràng buộc tồn tại, nhưng chỉ giới hạn cho các khái niệm đỉnh.
AL có thể được mở rộng với một vài phương thức khởi tạo khái niệm và
vai trò như trong bảng sau:
Nhãn Phương thức khởi tạo
U
Khái niệm hợp (concept
U
nion)
E
Ràng buộc tồn tại không giới hạn (unrestricted Existential
restriction)
C
Phần bù, phủ định khái niệm (Complement, concept negation)
R
+
Vai trò bắc cầu (transitive Roles)
H
Vai trò phân cấp (role Hierarchies)
O
Định danh (nOminals)
I
Vai trò nghịch đảo (
I
nverse roles)
F
Vai trò chức năng (Funtional roles)
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 11
N
Giới hạn số (lực lượng không điều kiện) (Number (unqualified
cardnality) restrictions)
(D) Kiểu dữ liệu (Datatypes)
R
Phương thức khởi tạo vai trò bổ sung (additional Role constructors)
(○)
Tích của vai trò (role composition)
Q
Giới hạn số có điều kiện (Qualified number restrictions)
Bảng 1: Một vài phương thức khởi tạo trong Logic Mô tả
Sau đây là một vài loại logic mô tả đáng chú ý:
ALC được xem như logic mô tả chuẩn. Loggic này mở rộng AL với
khái niệm phủ định (không chỉ giới hạn trong khái niệm nguyên tố).
Logic này tương đương với logic hình thức K và logic mô tả ALUE (vì
một khi phủ định khái niệm được thêm vào trong ngôn ngữ, ta có thể mô
phỏng phương thức khởi tạo U và E).
FL
-
là tập con của AL nhưng không có khái niệm phủ định.
EL là tập con của ALE nhưng không có khái niệm đáy, phủ định khái
niệm nguyên tố và lượng hóa toàn thể.
EL++ mở rộng EL với khái niệm đáy, định danh, miền rời rạc và GCIs.
DL-Lite là tập con của ALIF, được thiết kế đặc biệt để hiệu quả trong
việc quản lý số lượng lớn các cá thể. Mở rộng n-ngôi (n-ary) của DL-
Lite có gọi là DLR-Lite.
S là viết tắt của logic ALCR
+
, do nó tương với logic hình thức S4.
SHIF(D) là logic được sử dụng trong ngôn ngữ OWL Lite.
SHOIN(D) là logic được sử dụng ngôn ngữ OWL DL.
SROIQ(D) là logic được sử dụng trong ngôn ngữ OWL 2.
Bảng sau thể hiện độ phức tạp của suy diễn trong một vài logic mô tả quan
trọng. Một kết quả gần đây cho thấy SROIQ(D) có độ phức tạp số mũ cao hơn
SHOIN(D), do phức hợp RIAs, và trong trường hợp đặc biệt là do khả năng
liên kết các vai trò có số lượng mũ.
Logic Phân lớp độ phức tạp
ALC với GCIs đơn giản
Pspace
SHIF(D)
ExpTime
SHOIN(D)
NExpTime
SROIQ(D)
N2ExpTime
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 12
Bảng 2: Độ phức tạp của suy diễn trong một vài logic mô tả quan trọng
3.4 Suy diễn với logic mô tả
Một logic mô tả không chỉ chứa tiên đề và khẳng định mà còn cung cấp
dịch vụ suy diễn. Hầu hết các tác vụ thông dụng được liệt kê sau đây:
Thỏa mãn hay nhất quán cơ sở tri thức: Kiểm tra xem có tồn tại một mô
hình logic thỏa mãn tất cả các tiên đề trong cơ sở tri thức hay không.
Thỏa mãn khái niệm: Kiểm tra xem khái niệm có định nghĩa một tập
rỗng không cần thiết hay không.
Gắn kết: Kiểm tra một nhân tố cho trước có phải là một hệ quả logic bắt
nguồn từ các tiên đề trong cơ sở tri thức hay không. Nếu lập luận này là
một khẳng định khái niệm, tác vụ suy diễn còn được gọi là kiểm tra thực
thể.
Gộp khái niệm: Kiểm tra khái niệm C có thể được xem là tổng quát hơn
khái niệm D hay không, nghĩa là D có phải là một tập con của C hay
không.
Phân lớp: Tính toán một phân cấp khái niệm dựa trên quan hệ của gộp
khái niệm. Về bản chất, phân lớp kiểm tra gộp cho mỗi cặp khái niệm có
thể trong cơ sở tri thức.
Mặc dù vậy, nếu một logic mô tả bị đóng dưới hình thức phủ định, tất cả tác
vụ suy diễn liên quan đến khái niệm có thể được tinh giản thành thỏa mãn cơ sở
tri thức, do đó đây cũng thường là tác vụ duy nhất được xem xét.
Ví dụ 2: Những tác vụ sau đây có thể được tinh giản thành thỏa mãn cơ sở
tri thức:
Thỏa mãn khái niệm: C có thể được thỏa mãn đối với cơ sở tri thức K
nếu K
{x : C } có thể được thỏa mãn, với x là một cá thể mới, nghĩa
là một cá thể không xuất hiện trong K.
Gắn kết: Một khẳng định khái niệm a :C được gắn với cơ sở tri thức K
(ký hiệu K |= a : C ) nếu K
{a :
C } không thể thỏa mãn.
Một khẳng định vai trò (a, b) : R được gắn với một cơ sở tri thức K
(ký hiệu K |= (a, b) : R ) nếu K
{b : C } |= {a :
R .C }, cho một
khái niệm mới C .
Nếu logic mô tả chứa các khẳng định vai trò phủ định, thì phát biểu
K |= (a, b): R nếu K
{a, b}:
R } không thể thỏa mãn là đúng.
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 13
Gộp khái niệm: D gộp C (ký hiệu C ⊑ D ) đối với một cơ sở tri thức
K nếu C ⊓
D không thể thỏa mãn.
Phân lớp: Phân lớp được tính toán để thực hiện một phép kiểm tra gộp
cho mỗi cặp các khái niệm trong cơ sở tri thức, vì thế nó có thể được
tinh giản thành thỏa mãn cơ sở tri thức.
Có một vài cách tiếp cận để suy diễn với logic mô tả, thông dụng nhất là:
Các thuật toán Tableau: Các thuật toán tableau giải quyết các vấn đề của
thỏa mãn khái niệm và cơ sở tri thức. Do Giả định Thế giới Mở, những
thuật toán này cố gắng xây dựng một mô hình trừu tượng cho cơ sở tri
thức, đó là một thông dịch logic thỏa mãn từng tiên đề. Thuật toán
tableau đầu tiên được đề xuất cho ALC. Các thuật toán tableau còn
được dùng cho logic mô tả SHOIQ và SROIQ.
Nói một cách chính xác hơn, các thuật giải tableau cố gắng tạo một đồ
thị hoàn chỉnh cho cơ sở tri thức, với các nốt đại diện cho các cá thể và
các cung nối biểu diễn quan hệ hai ngôi giữa hai cá thể. Mỗi nốt được
gán nhãn với một tập khái niệm mà các cá thể thỏa mãn trong mô hình
đặc thù này. Xuất phát từ cơ sở tri thức ban đầu, đồ thị được xây dựng
bằng cách áp dụng lặp đi lặp lại một loạt các luật mở rộng, thứ chuyển
hóa các diễn giải khái niệm phức tạp thành những cái đơn giản hơn
(theo đó ngữ nghĩa được lưu trữ) cho đến khi không có luật nào có thể
dùng được hoặc một xung đột (một mâu thuẫn hiển nhiên trong nhãn)
xuất hiện. Nếu không có xung đột nào, khái niệm hay cơ sở tri thức là có
thể thỏa mãn và thuật toán đã tìm ra được một mô hình cho cơ sở tri
thức đó. Nếu không tồn tại một đồ thì hoàn chỉnh không xung đột thì cơ
sở tri thức là không thể thỏa mãn.
Mặc dù những thuật toán này có độ phức tạp tính toán cao trong trường
hợp xấu nhất, chúng thể hiện rất tốt trong thực tế, chủ yếu do sự tồn tại
của rất nhiều kỹ thuật tối ưu hóa.
Các thuật toán dựa trên phân giải: Các thuật toán phân giải diễn dịch cơ
sở tri thức thành logic vị từ, căn cứ vào việc trong hầu hết trường hợp,
logic mô tả là các tập con của logic vị từ. Điều này cho phép các thuật
toán suy diễn hiện có và các cài đặt của chúng có thể được sử dụng.
Cách tiếp cận này hữu ích theo một quan điểm lý thuyết, cung cấp một
cận trên cho độ phức tạp. Trong một vài trường hợp, thuật toán này còn
giảm thiểu tình huống xấu nhất. Tuy nhiên, tính khả thi thực tế của các
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 14
thuật toán này bị nghi ngờ nhiều hơn vì chúng không tận dụng được yếu
tố logic mô tả có độ phức tạp thấp hơn.
Các thuật giải mang tính cấu trúc: Những thuật giải này tính toán gộp
khái niệm. Chúng chuẩn tắc hóa các khái niệm được kiểm tra và so sánh
cấu trúc cú pháp của các diễn giải khái niệm được chuẩn tắc hóa. Loại
thuật toán này có cơ sở vững chắc nhưng chỉ hoàn chỉnh cho logic mô tả
không quá giàu tính diễn đạt (logic mô tả sub-Boolean).
Các thuật giải dựa trên máy tự động: Những thuật toán này giải quyết
vấn đề của thỏa mãn khái niệm cho logic mô tả với thuộc tính mô hình
cây. Ý tưởng chính là chuyển hóa một cơ sở tri thức thành một máy tự
động dạng cây, theo cùng cách mà chúng chấp nhận các mô hình tương
tự để áp dụng phép kiểm tra rỗng cho toàn bộ mô hình máy tự động.
Phần lớn các bộ suy diễn dùng cho logic mô tả hiện có đều cài đặt các thuật
toán tableau. Sau đây là một vài bộ suy diễn thông dụng nhất:
RACER (Renamed ABox and Concept Expression Reasoners): Racer là
một bộ suy diễn hỗ trợ SHIQ với một vài kiểu dữ liệu. Những cải tiến
qua các phiên bản đầu đã tạo ra RACERPRO, được cài đặt trong Lisp và
hỗ trợ đầy đủ các kiểu dữ liệu OWL DL. RACERPRO là một sản phẩm
thương mại, mặc dù cũng có một vài bản quyền miễn phí dành cho mục
đích giảng dạy và nghiên cứu.
PELLET: Hầu như chắc chắn là bộ suy diễn thông dụng nhất, theo một
quan điểm lịch sử, đây là bộ suy diễn đầu tiên hỗ trợ đầy đủ OWL DL
(bao gồm các định danh và kiểu dữ liệu). Ngày nay, bộ suy diễn này hỗ
trợ SROIQ(D) và do đó hỗ trợ OWL 2 (với ngoại lệ của kiểu dữ liệu n-
ngôi). Pellet được cài đặt bằng Java, có rất nhiều giao diện để truy cập
(bao gồm cả bộ API của chính nó) và hoàn toàn miễn phí dưới dạng bản
quyền GNU. Pellet còn có cả một danh sách mail người dùng tích cực.
FACT++ là hậu duệ của FACT (FAst Classification of Terminologies),
sử dụng một kiến trúc khác và cài đặt hiệu quả hơn với C++. Bộ suy
diễn này cũng được phát hành dưới dạng bản quyền GNU. Theo một
quan điểm lịch sử, đây là bộ suy diễn đầu tiên hỗ trợ OWL 2 và
SROIQ(D).
KAON2 là bộ suy diễn cho SHIQ và cá ngôn ngữ ontology khác. Nó
không hỗ trợ định danh, kiểu dữ liệu cũng như giới hạn lực lượng bao
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 15
hàm các số nguyên lớn. KAON2 không cài đặt thuật toán tableau, mà
thuật toán suy diễn lại dựa trên phân giải. Nó cũng cho phép sử dụng
miễn phí cho mục đích phi thương mại.
HERMIT: HERMIT cài đặt thuật toán suy diễn siêu tableau, ít bất định hơn
nhiều so với những thuật toán tableau hiện tại. Một vài thử nghiệm sơ bộ
cho thấy HERMIT hiệu quả vượt xa các bộ suy diễn logic mô tả khác.
Hiện tại bộ suy diễn này hỗ trợ SHIQ, nhưng SHOIQ cũng đang trong
lộ trình phát triển.
Hầu hết các bộ suy diễn trên đều cài đặt giao diện DIG, một giao diện
thông dụng để truy cập các bộ suy diễn DL một cách độc lập với ngôn ngữ đầu
vào của chúng.
Bộ suy diễn Logic mô tả được hỗ trợ Hỗ trợ giao diện DIG
RACER, RACERPRO
SHIQ(D)
Có
PELLET
SROIQ(D)
Có
FACT++
SROIQ(D)
Có
KAON2
SHIQ
Có
HERMIT
SHIQ
Không
Bảng 3: Các bộ suy diễn logic mô tả, logic và giao diện DIG được hỗ trợ
3.5 Các hệ logic mô tả
Hệ Logic mô tả là các hệ thống thông tin có sử dụng logic mô tả để biểu
diễn tri thức.
Các thành phần của hệ logic mô tả:
Bộ thuật ngữ (TBox): được sử dụng để lưu các thuật ngữ.
Bộ khẳng định (ABox): chứa hai dạng khẳng định là khẳng định khái
niệm C(a) và khẳng định vai trò R(a).
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 16
Hình 5: Kiến trúc hệ logic mô tả
3.5.1 Thế hệ thứ nhất
Lấy ý tưởng từ nghiên cứu về hành vi nhận thức của con người, đề
xuất về ngôn ngữ diễn đạt được bắt đầu thảo luận từ sau thập niên 60. Ví
dụ: [Quillian, 1967] là một trong những án phẩm đầu tiên của những ngôn
ngữ được gọi là “mạng ngữ nghĩa” này (tham khảo thêm [Quillian, 1968]).
Đầu tiên, các hình thức mạng ngữ nghĩa được xem là khác biệt với logic
mô tả. Trong tinh thần tương tự, [Minsky, 1981] giới thiệu quan điểm ban
đầu về một hệ thống frame. Động lực của các hình thức biểu diễn này là để
bắt chước sự suy diễn của con người theo hướng đạt được “sự phù hợp về
nhận thức”. Theo đó, ý tưởng này nhằm hỗ trợ giải quyết vấn đề với các
kiến trúc biểu diễn thích hợp mà đôi khi “tương đồng” với kiến trúc biểu
diễn được cho là dùng trong quá trình xử lý thông tin của con người. Việc
khai thác sự kế thừa là ý tưởng chiếm ưu thế hơn trong các hệ thống frame.
Chi tiết của các hệ thống cơ sở tri thức cần phải đơn giản và ứng dụng của
việc mô tả kiến trúc cần phải mang tính trực giác (“phù hợp về nhận thức
luận”). Mặc dù vậy, như được chỉ ra bởi [Wood, 1975], việc định rõ điều gì
một hệ thống suy luận cần có để có thể tính toán thực tế là không hề đơn
giản chút nào.
Nửa sau thập kỷ 70 chứng kiến nguyên cứu ban đầu trên quan hệ của
các hệ thống frame và logic vị từ [Hayes, 1977; 1979], phát hiện ra một số
mặt của các hệ thống dựa trên frame có thể được xem “các thể hiện” đặc
biệt của suy diễn logic vị từ. Hayes chứng tỏ rằng suy diễn dựa trên frame
không hoàn toàn là phương pháp mới của biểu diễn tri thức với những lợi
thế đặc thù hơn hẳn logic vị từ. Các tính năng đặc trưng của các hệ thống
frame dựa trên suy diễn logic vị từ không được biết đến nhiều lắm ở thời kỳ
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 17
này. Kết quả của các nghiên cứu đó dẫn đến việc rất nhiều nhà nghiên cứu
không còn xem hệ thống frame và mạng ngữ nghĩa có khả năng khác biệt
với các tiếp cận dựa trên logic.
KL-ONE
Được truyền cảm hứng bởi những nhà phê bình như [Woods, 1975],
Brachman bắt đầu phát triển một hệ thống biểu diễn mới (gọi là KL-ONE),
vốn đã bao gồm ý niệm của suy diễn tri thức ngầm định từ những phát biểu
[Brachman, 1977b; 1979]. Mặc dù tiếp cận ban đầu không dựa trên logic,
KL-ONE đã mở ra thời đại của các hệ thống biểu diễn dựa trên logic, có thể
được sử dụng để hình thức hóa các vấn đề ứng dụng như các vấn đề suy
diễn thông qua các khởi tạo được hỗ trợ bởi ngôn ngữ diễn đạt.
KRYPTON
Hệ thống biểu diễn tri thức KRYPTON [Brachman và một số người
khác, 1983b; 1983b; 1985] có thể xem như tiếp cận đầu tiên định nghĩa một
ngôn ngữ mới của họ KL-ONE với một ngữ nghĩa hình thức theo trường
phái Tarski. Hơn nữa, mục tiêu đặt ra là để khắc phục các vấn đề với khái
niệm cá thể trong KL-ONE [Nebel, 1990a, p. 63]. Cách tiếp cận diễn giải lai
ghép với một TBox và một ABox lần đầu tiên được cài đặt trong hệ thống
KRYPTON. Tương tự như KL-ONE, điểm khác biệt giữa từ gốc và các khái
niệm được định nghĩa và sự tính toán của các khái niệm nguyên tố đặc
trưng nhất với các cá thể thực thể của nó là một trong những ý tưởng cốt lõi
của KRYPTON.
NIKL, PENNI, KL-TWO
Ra đời cùng lúc với KRYPTON, NIKL được thiết kế như là hậu duệ của
KL-ONE. NIKL có nghĩa là New Implementation of KL-ONE [Schmolze and
Israel, 1983; Schmolze, 1985]. Các thành phần khẳng định của KL-ONE lúc
đầu được lược bỏ trong hệ thống NIKL. So sánh với cài đặt KL-ONE ban
đầu, các thuật toán trong bộ phân lớp của Nikl nhanh hơn về bình quân vì
thông tin “rõ ràng” được khai thác ở mức độ cao hơn.
Sau đó, một thành phần suy diễn được thêm vào cùng với hệ thống
PENNI, hệ thống dựa trên RUP [McAllester, 1982]. Hệ thống được tạo ra có
tên gọi là KL-TWO [Vilain, 1985].
KANDOR
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 18
Nghiên cứu về KANDOR [Patel-Schneider, 1984] chịu ảnh hưởng bởi
kiến trúc KRYPTON và vấn đề hiệu suất của cách tiếp cận NIKL. Mục tiêu
của KANDOR là tăng sức mạnh diễn đạt của thành phần biểu diễn ngôn ngữ
mà theo đó một thuật toán gộp hiệu quả có thể được phát triển.
3.5.2 Thế hệ thứ hai của các hệ thống logic mô tả
Trong khi những cài đặt mang tính thử nghiệm của các hệ thống thế hệ
thứ nhất được sử dụng để nghiên cứu các vấn đề về biểu diễn tri thức, các
hệ thống logic mô tả thế hệ thứ hai được sử dụng rộng rãi hơn trong nhiều
ứng dụng quan trọng.
CLASSIC
Hệ thống CLASSIC cơ bản được hỗ trợ bởi logic ALNFh
-1
với các
TBox và ABox, cộng thêm các phương tiện để thao tác với số [Borgida và
một số người khác, 1989]. Ký tự h được viết thường là để chỉ ra rằng
CLASSIC chỉ hỗ trợ vai trò bao hàm mà không có vai trò hội, nghĩa là
CLASSIC hỗ trợ vai trò phân cấp “đơn kế thừa”. Ngôn ngữ cài đặt của
CLASSIC là COMMONLISP [Steele, 1990] và C.
LOOM
Kiến trúc LOOM [MacGregor và Bates, 1987; MacGregor, 1991b]
cung cấp các phương tiện suy diễn TBox và ABox cho logic mô tả
ALCQRIFO cùng với các khởi tạo thêm vào cho việc thao tác với số
thực. LOOM dựa trên KL-ONE, nghĩa là định nghĩa với sự cần thiết hoặc với
sự cần thiết và một vài điều kiện thỏa đáng đóng một vai trò quan trọng
trong mô hình hóa chuyên môn với LOOM.
BACK VÀ FLEX
Nghiên cứu về Back (Berlin Advanced Computational Knowledge
representation system) được khởi động vào nằm 1985, gần như cùng lúc với
hệ thống Loom. Back còn được gọi là một môi trường diễn đạt tri thức
[Quantz và Kindermann, 1990; Peltason, 1991; Hoppe và một số người
khác, 1993]. Logic mô tả của hệ thống Back ban đầu có thể được gọi là
ALQR
-1
. Hệ thống này còn có hỗ trợ suy diễn với số và tập thuộc tính.
Trong hệ thống hậu duệ Flex [Quantz và một số người khác, 1995],
các thuật toán chưa hoàn chỉnh được cài đặt cho logic mô tả
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 19
ALCQRIFO. Thêm vào đó, suy diễn về đẳng thức và bất đẳng thức liên
quan đến số nguyên cũng được hỗ trợ.
KRIS
Sự phát triển của các hệ thống suy diễn hợp lý và hoàn chỉnh cho các
logic mô tả có khả năng diễn đạt cao hơn bắt đầu từ cuối thập kỷ 80. Một
trong những phát triển chính theo hướng này là hệ thống KRIS. Cách tiếp
cận của KRIS là cài đặt các thuật giải hợp lý và hoàn chỉnh cho một logic
giàu tính diễn đạt và phát triển những kỹ thuật tối ưu cho suy diễn TBox
nhằm hướng đến hiệu suất có thể chấp nhận được trong thực tế. Logic mô
tả của KRIS là ALCNF [Baader và Hollunder, 1991a; 1991b]. Thêm vào
đó, KRIS cung cấp kiểu liệt kê (toán tử O) và giao tiếp thử nghiệm cho việc
suy diễn về cái gọi là các miền rời rạc [Badder và Hanschke, 1991a; 1991b;
1992]. Vai trò hội được hỗ trợ với một cài đặt mẫu. Công việc trong dự án
KRIS tập trung vào việc phân lớp TBox. Không chỉ có thế, KRIS là một
trong những hệ thống đầu tiên cũng hỗ trợ suy diễn ABox hoàn chỉnh trong
logic giàu khả năng mô tả. Ngôn ngữ dùng để cài đặt KRIS là COMMONLISP.
CRACK
Một trong những mực tiêu nghiên cứu của hệ thống CRACK là để cài
đặt các giải thuật hợp lý và hoàn chỉnh cho việc tương tác với những suy
diễn về cá thể trong các thuật ngữ khái niệm. Thay vì cung cấp ngữ nghĩa
không chuẩn như trong CLASSIC (các cá thể được ánh xạ vào các tập đối
tượng miền), trong CRACK, các cá thể được ánh xạ vào các nguyên tố của
miền. Do đó, các đồng tham chiếu (coreference) cũng được xem xét trong
các thuật ngữ khái niệm. CRACK hỗ trợ logic mô tả ALCRIFO [Bresciani
và một số người khác, 1995]. Cài đặt của CRACK đựa trên CommonLisp.
CRACK cung cấp một giao diện Web.
Các hệ thống khác
Danh sách các hệ thống được nêu ở trên vẫn chưa dừng lại. Một số
lượng lớn các dự án liên quan đến các hệ thống diễn đạt tri thức đã thể hiện
tầm quan trọng của thời kỳ này. Thông thường các hệ thống logic mô tả
được xây dựng xung quanh một động cơ cốt lõi là bộ kiểm tra tính nhất
quán. Mặc dù vậy có những dịch vụ được cung cấp khác cũng rất quan
trọng để làm cho các hệ thống trở nên hữu dụng trong các dự án ứng dụng.
Lập trình hướng Ontology Dương Hoàng Thanh
GVHD: TS. Nguyễn Tuấn Đăng Trang 20
3.5.3 Thế hệ mới: FACT, DLP và RACER
Bản tính khai báo của mô hình logic mô tả đã trở nên quan trọng hơn.
Lấy cảm hứng từ thuyết tiến hóa, nghĩa là để quản lý các giới hạn số lượng,
hội vai trò, bao hàm khái niệm tổng quát hóa cũng như tiên đề tuần hoàn
với ngữ nghĩa mang tính diễn đạt (ALCNR [Buchheit và một số người
khác, 1993a]), vai trò bắc cầu (ALC
R+
[Sattler, 1996]), phân cấp và tính
năng vai trò (ALCHf
R+
[Horrocks, 1998b]), cũng như vai trò nghịch đảo,
giới hạn số có điều kiện, và phân cấp vai trò (SHIQ [Horrocks và một số
người khác, 1999] còn gọi là ALCQHI
R+
, đọc là ALC-choir), sự phát
triển của thế hệ kế tiếp của các hệ thống logic mô tả hợp lý và hoàn chỉnh
đã được bắt đầu vào cuối thập niên 90.
4 SƠ LƯỢC VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Khái niệm hướng đối tượng được xây dựng trên nền tảng của khái niệm lập
trình có cấu trúc và sự trừu tượng hóa dữ liệu. Sự thay đổi căn bản ở chỗ, một
chương trình hướng đối tượng được thiết kế xoay quanh dữ liệu mà chúng ta có
thể làm việc trên đó, hơn là theo bản thân chức năng của chương trình. Điều này
hoàn toàn tự nhiên một khi chúng ta hiểu rằng mục tiêu của chương trình là xử
lý dữ liệu. Suy cho cùng, công việc mà máy tính thực hiện vẫn thườ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 để xây dựng thuật giải, xây dựng chương trình.
Lập trình hướng đối tượng liên kết cấu trúc dữ liệu với các thao tác, theo
cách mà tất cả thường nghĩ về thế giới quanh mình. Chúng ta thường gắn một số
các hoạt động cụ thể với một loại hoạt động nào đó và đặt các giả thiết của mình
trên các quan hệ đó.
4.1 Các thành phần cơ bản
4.1.1 Lớp
Lớp là khuôn mẫu tạo ra đối tượng. Lớp cũng là kiểu dữ liệu do người
dùng định nghĩa và chứa các biến, thuộc tính cũng như phương thức. Một
lớp định nghĩa các đặc trưng trừu tượng của một sự vật (đối tượng), bao