CHƢƠNG 1 NGHIÊN CỨU TỔNG QUAN
2.2. PHƢƠNG PHÁP XÂY DỰNG ONTOLOGY
Trong những năm gần đây, một loạt các phƣơng pháp luận khác nhau đƣợc thiết kế để trợ giúp cho việc tiến hành phát triển các nhiệm vụ đƣợc báo cáo trong tài liệu trí tuệ nhân tạo. Các phƣơng pháp truyền thống gồm Cyc, Uschold và King, Gruninger, Kactus và Methontology. Các phƣơng pháp luận
cung cấp các chỉ dẫn chung và có cấu trúc. Nếu làm theo có thể tăng quy trình phát triển và cải tiến chất lƣợng cho kết quả cuối cùng. Theo nhƣ đánh giá phƣơng pháp luận ―Methontology‖ là phƣơng pháp luận thiết kế ontology phổ biến nhất.
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 ontology. Quy trình phát triển gồm 7 bƣớc do Stanford Center for Biomedical Informatics Research đƣa ra đƣợc đa số các nghiên cứu trƣớc đây chọn và tuân theo (đây là nhóm phát triển phần mềm Protégé để trình diễn và soạn thảo Ontology).
2.2.1. Bƣớc 1: Xác định lĩnh vực và phạm vi của Ontology
Tƣơng tự nhƣ các công đoạn đặc tả khác, đặc tả ontology cũng bắt đầu bằng việc trả lời các câu hỏi mang tính phân tích để xác định chính xác các yêu cầu. Những câu hỏi thƣờng dùng là:
- Ontology cần mô tả miền nào?
- Ontology phục vụ cho mục đích chun biệt gì?
- Cơ sở tri thức trong Ontology sẽ trả lời những câu hỏi gì?
- Ontology nhằm phục vụ đối tượng nào?
- Ai là người sẽ xây dựng, quản trị ontology?
Các câu trả lời cho những câu hỏi trên có thể sẽ thay đổi trong q trình lặp khi xây dựng một ontology. Tuy nhiên việc trả lời chính xác trong mỗi bƣớc lặp sẽ giới hạn đƣợc phạm vi cụ thể của mơ hình cần mơ tả và dự kiến các kỹ thuật sẽ sử dụng trong quá trình phát triển.
2.2.2. Bƣớc 2: Xem xét việc kế thừa các ontology có sẵn
Đây là bƣớc thƣờng hay đƣợc sử dụng để giảm thiểu công sức xây dựng một ontology. Khi đã có ontology tƣơng tự, ngƣời xây dựng có thể kế thừa nó để thêm hoặc bớt các lớp, các quan hệ giữa các lớp, thực thể… để phù
hợp với mục đích xây dựng ontology. Bên cạnh đó, các ứng dụng nếu có sự tƣơng tác lẫn nhau thì 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 thông tin hoặc thống nhất thông tin nên việc kế thừa các ontology có sẵn trong trƣờng hợp này là rất quan trọng.
Xây dựng một ontology mới trên cơ sở kế thừa các hệ thống có sẵn sẽ liên quan đến một bài toán phức tạp là ―trộn‖ (merging) các ontology. Vấn đề là có thể có tên các khái niệm định nghĩa trong các ontology là giống nhau nhƣng mô tả những đối tƣợng khác nhau hoặc ngƣợc lại. Thêm nữa, làm thế nào để bổ sung các quan hệ, thuộc tính có sẵn vào hệ thống mới?
Nếu giải quyết những vấn đề trên hồn tồn thủ cơng thì rất khó, tuy nhiên, hầu hết các ontology đều đƣợc xây dựng trên các hệ thống xây dựng và quản trị ontology, nhƣ: Sesame, Protégé, OntoEdit,… Đa số các phần mềm này đều hỗ trợ chức năng trộn tự động các ontology cùng hoặc khác định dạng với nhau, ngƣời xây dựng chỉ cần kiểm tra lại để đảm bảo tính chính xác cho ontology của mình.
2.2.3. 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 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.
2.2.4. Bƣớc 4: Xác định các lớp và phân cấp của các lớp
Đây là một trong hai bƣớc quan trọng nhất của việc xây dựng một ontology. Bƣớc này định nghĩa các lớp từ một số thuật ngữ đã liệt kê trong
bƣớc 3, sau đó xây dựng cấu trúc lớp phân cấp theo quan hệ ―lớp cha-lớp con‖.
Lớp ở vị trí càng cao trong cấu trúc sẽ có mức độ tổng quát càng cao. Vị trí đầu tiên là lớp gốc, tiếp theo là các lớp trung gian và cuối cùng là lớp lá. Lớp lá là lớp không thể triển khai đƣợc nữa và chỉ đƣợc biểu hiện bằng các thực thể.
Quan hệ giữa các thực thể của lớp con với lớp cha là quan hệ ―là-một‖, có nghĩa một thực thể của lớp con cũng là một thực thể của lớp cha.
Ta có thể xây dựng cấu trúc lớp phân cấp theo ba hƣớng sau:
“Từ trên xuống” (top-down): bắt đầu bằng các lớp có mức độ tổng
quát cao nhất, sau đó triển khai dần đến lớp lá.
“Từ dưới lên” (bottom-up): bắt đầu bằng việc xác định các lớp đƣợc
cho là cụ thể nhất, sau đó tổng quát hóa đến khi đƣợc lớp gốc.
“Kết hợp” (combination): kết hợp cả hai hƣớng xây dựng trên.
Trƣớc tiên chọn các lớp nổi bật nhất trong miền quan tâm, sau đó tống quát hóa và cụ thể hóa cho đến khi đƣợc cấu trúc mong muốn.
2.2.5. 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,…
2.2.6. Bƣớc 6: Xác định ràng buộc của các thuộc tính
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.
2.2.7. Bƣớc 7: Tạo các thể hiện/ thực thể
Đây là bƣớc cuối cùng trong vòng lặp xây dựng ontology. Bƣớc này tạo thực thể cho mỗi lớp và gán giá trị cho các thuộc tính. Các thực thể sẽ tạo nên nội dung của một cơ sở tri thức và là vấn đề đƣợc quan tâm trong lĩnh vực semantic web [2], [3], [4], [7], [14].