4.1.2.1. Tiến trình xây dựng ontology cho BKEduPortal
Trong phần này, luận văn trình bày một tiến trình phát triển ontology đã được áp dụng để xây dựng ontology cho BKEduPortal. Do việc thiết kế ontology theo kiến trúc phân tầng và chia làm nhiều thành phần, tiến trình xây dựng ontology có một số thay đổi so với tiến trình gồm 7 bước theo phương pháp của Noy và McGuinness [4] và phương pháp thiết kế trong [16]. Tiến trình được thực hiện theo phương pháp top-down, xây dựng ontology tổng quát trước và sau đó là các ontology lĩnh vực, ứng dụng cho từng phân hệ ứng dụng. Tiến trình xây dựng ontology được mô tả vắn tắt gồm các bước dưới đây.
(1) Xác định mục đích phát triển ontology. Tại bước này, cần trả lời 3 câu hỏi:
Tại sao cần xây dựng ontology?
Mục đích sử dụng?
Đối tượng sử dụng?
Ngoài ra cần đưa ra dự kiến sử dụng cơ sở tri thức của ứng dụng cũng như các đối tượng sử dụng cuối. Ở bước này, cần giải quyết các vấn đề về công nghệ xử lý tri thức.
(2) Kỹ thuật nắm bắt ontology (ontology capture): gồm 3 giai đoạn như sau:
Xác định phạm vi của ontology: xác định tất cả các khái niệm quan trọng và các mối quan hệ. Liệt kê các câu hỏi (gọi là câu hỏi khả năng) mà một cơ sở tri thức dựa trên ontology có thể trả lời.
Chọn phương thức nắm bắt ontology: phương thức nắm bắt ontology được đề xuất tương tự với phương thức phân tích và thiết kế hướng đối tượng.
Định nghĩa các khái niệm trong ontology: xác định các khái niệm quan trọng và phân loại theo tính chất và quan hệ giữa các khái niệm đó.
(3) Xem xét sử dụng lại các ontology đang tồn tại. Có thể sử dụng lại toàn bộ
hoặc chỉ sử dụng một số lớp và thuộc tính trong đó. Một số ontology đã được ứng dụng phổ biến như FOAF biểu diễn cộng đồng người sử dụng, Dublin Core mô tả các tài nguyên học tập, ...
(4) Mã hoá ontology (ontology coding): Lựa chọn trình biên tập ontology dựa
trên các yêu cầu của lĩnh vực và chức năng của ontology. Luận văn sử dụng công cụ Protégé để mã hoá ontology. Việc mã hóa liên quan đến biểu diễn ontology trong 1 ngôn ngữ hình thức. Lớp trong ontology mô tả các khái niệm cùng các thuộc tính và quan hệ. Mã hóa ontology là tiến trình lặp, gồm các bước con sau:
(4.1) Mã hóa ontology tổng quát. (4.1.1) Định nghĩa lớp.
(4.1.2) Sắp xếp các lớp theo cây phân cấp (lớp con - lớp cha). Có 3 hướng phát
triển cây phân cấp: hướng top-down, hướng bottom-up và kết hợp hai bước trên. Luận văn sử dụng hướng top-down cho phân cấp lớp. Xem xét sử dụng lại các lớp và thuộc tính trong các ontology sẵn có.
(4.1.3) Định nghĩa thuộc tính và mô tả giá trị của thuộc tính. Ngoài việc tái sử
dụng các thuộc tính trong ontology đã tồn tại, xác định các thuộc tính chung cho các ứng dụng, và quan trọng hơn là các thuộc tính liên kết 3 khối Lĩnh vực, Tài nguyên và Con người. Xác định các giá trị domain và range cho thuộc tính.
(4.2) Mã hóa các ontology lĩnh vực và ontology ứng dụng cho mỗi phân hệ ứng dụng.
(4.2.1) Xây dựng các ontology lĩnh vực. Phân tích các ứng dụng và xác định các
miền lĩnh vực cần thiết. Cần phân tách các ontology lĩnh vực sao cho ít khái niệm chồng chéo nhất có thể. Đưa ra các khái niệm và phân cấp trong mỗi miền lĩnh vực và mối quan hệ giữa các khái niệm. Lặp lại các bước (4.1.1), (4.1.2), (4.1.3). Xem xét việc sử dụng lại ontology.
(4.2.2) Xây dựng các ontology ứng dụng. Phân tích các phân hệ ứng dụng và
xác định các khái niệm cần thiết cho ứng dụng thuộc hai khối Tài nguyên và Con người. Phân tích các kịch bản trong mỗi ứng dụng và xác định các khái niệm cần thiết. Lặp lại các bước (4.1.1), (4.1.2), (4.1.3). Xem xét việc tái sử dụng ontology.
(5) Cải tiến ontology: Bao gồm 2 phase: (i) Cải tiến mã hóa bên trong (intra-
coding): cải tiến trong quá trình mã hóa; (ii) Cải tiến mã hóa bên ngoài (extra-coding): hiệu chỉnh lỗi phát hiện được trong quá trình kiểm thử, và những mở rộng của ontology theo các phân hệ ứng dụng.
(5) Tích hợp các ontology thành phần: Sau khi xây dựng các ontology thành
phần của mỗi phân hệ ứng dụng, tích hợp các ontology này lại thành một ontology thống nhất.
(6) Kiểm thử: phát hiện nhược điểm của ontology. Bước này được thực hiện
trong tất cả các giai đoạn phát triển. Ngay khi tạo cơ sở tri thức, cần tiến hành kiểm thử để phát hiện lỗi trong ontology và công cụ thu nhận tri thức, và sửa đổi ontology hợp lý. Ngoài ra cần kiểm thử toàn bộ ứng dụng với người sử dụng cuối. Thể hiện của các lớp trong các ontology lĩnh vực và ứng dụng được tạo ra trong quá trình ứng dụng ontology.
(7) Duy trì (maintenance): thực hiện các việc hiệu chỉnh, thích ứng, phát triển
và duy trì sự hoạt động của ontology.
4.1.2.2. Biểu diễn mô hình trên Protégé
Mô hình ontology được biểu diễn theo ngôn ngữ OWL Full. Hình 4.2 minh họa biểu diễn mô hình Ontology trên Protégé. Các siêu lớp trong mức siêu lược đồ được định nghĩa là lớp con của siêu lớp owl:Class và thừa kế thuộc tính của siêu lớp này. Các siêu lớp được sử sụng để định nghĩa các lớp thuộc 3 khối Chủ đề lĩnh vực, Tài nguyên và Con người trong mức lược đồ. Vai trò của siêu lớp owl:Class là định nghĩa lớp, và mỗi lớp được xem là một thể hiện của siêu lớp này. Do đó, mỗi lớp thuộc một trong 3 khối trong mức lược đồ sẽ được định nghĩa là một thể hiện của một trong 3 siêu lớp.
Hình 4.2: Biểu diễn ontology tổng quát BKOnto
và TopicCls cùng 3 lớp gốc tương ứng Person, Documentation và Topic.
Siêu lớp owl:Class được sử dụng để định nghĩa các lớp trong ontology. 3 siêu lớp được xem là lớp con của siêu lớp owl:Class sẽ thừa kế các tính chất và chức năng của lớp này. Tác dụng của siêu lớp là phân nhóm các lớp thành 3 khối riêng biệt. Ví dụ, lớp gốc Topic thuộc khối Chủ đề là một thể hiện của siêu lớp TopicCls thông qua khai báo:
<TopicCls rdf:ID="Topic"/>
Đoạn mã lệnh OWL sau định nghĩa siêu lớp TopicCls là lớp con của siêu lớp owl:Class.
<owl:Class rdf:ID = “TopicCls”>
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Class"/> </owl:Class>
3 lớp gốc Person, Documentation và Topic được định nghĩa là các thể hiện của 3 siêu lớp tương ứng. Đoạn mã sau khai báo thuộc tính dc:subject của lớp Documentation và định nghĩa luôn 2 lớp gốc Topic và Documentation.
<owl:ObjectProperty rdf:about="http://purl.org/dc/elements/1.1/subject"> <rdfs:range> <TopicCls rdf:ID="Topic"/> </rdfs:range> <rdfs:domain> <DocumentationCls rdf:ID=“Documentation"/> </rdfs:domain> </owl:ObjectProperty>
Các lớp trong ontology lĩnh vực và ứng dụng được định nghĩa từ 3 lớp gốc trên. Ví dụ như trong hình 4.1, lớp Database_Management và lớp Operating_System là các lớp con của lớp ICT. Trong khi đó lớp ICT là lớp khởi đầu cho ontology lĩnh vực ICT và là lớp con của lớp Topic. Thuộc tính dc :subject đã được định nghĩa trong từ vựng Dublin Core, có vai trò liên kết hai khối Lĩnh vực và Tài nguyên.
4.1.2.3. Kỹ thuật tích hợp các ontology
Theo kiến trúc ontology phân tầng, mỗi phân hệ ứng dụng sẽ gồm một ontology tổng quát BKOnto và có thể có nhiều ontology lĩnh vực và ứng dụng. Các ontology thành phần sẽ được tích hợp lại thành một ontology thống nhất cho ứng dụng bởi kỹ thuật import [2]. Câu lệnh import của OWL sẽ nạp toàn bộ nội dung một ontology vào ontology khác. Hình 4.3 minh họa các lớp của ontology đã được tích hợp cho phân hệ
Chia sẻ tài liệu học tập.
Hình 4.3. ontology cho phân hệ ứng dụng Chia sẻ tài liệu học tập
Trước hết, import ontology tổng quát BKOnto vào ontology ứng dụng. Sau đó xây dựng các lớp của ứng dụng dựa trên 3 lớp gốc. Đoạn mã sau import BKOnto vào ontology lĩnh vực, sau đó định nghĩa lớp ICT là lớp con của lớp Topic, và lớp Software được xây dựng từ lớp ICT.
xmlns:bkont="http://www.hut.edu.vn/BKOnt#" <owl:Ontology rdf:about=""> <owl:imports rdf:resource="http://www.hut.edu.vn/BKOnt"/> </owl:Ontology> <bkont:TopicCls rdf:ID="ICT"> <rdfs:subClassOf rdf:resource="http://www.hut.edu.vn/BKOnt#Topic"/> </bkont:TopicCls> <bkont:TopicCls rdf:ID="Software"> <rdfs:subClassOf rdf:resource="#ICT"/>
</bkont:TopicCls>
Như vậy ontology về lĩnh vực Công nghệ thông tin và truyền thông (ICT) sẽ được xây dựng bắt đầu từ lớp gốc bkonto:Topic. Tương tự, ontology ứng dụng mô tả tài liệu học tập được xây dựng từ lớp gốc bkonto:Documentation gồm lớp LO (Learning Object) và các lớp con bên dưới như Articles, Book, ...
4.1.2.4. Tạo siêu dữ liệu mô tả tài nguyên trong BKEduPortal
Siêu dữ liệu mô tả tài nguyên được qui về các bộ ba (resource, property, value) của mô hình dữ liệu RDF. Các thuộc tính (property) trong siêu dữ liệu được phân thành 2 loại là Object và Datatype. Theo mô hình biểu diễn ontology, siêu dữ liệu cho mỗi đối tượng thuộc ba khối Con người, Tài nguyên và Lĩnh vực thuộc mức thể hiện (instance level). Đoạn mã sau mô tả một tài nguyên có thể loại là “Book”, tiêu đề “Oracle Database Management”, nội dung thuộc về chủ đề “Database_Management”. Trong đó thuộc tính dc:title là Datatype Property có giá trị là chuỗi tiêu đề. Thuộc tính dc:subject là Object Property, ánh xạ đến lớp bkict#Database_Management đã định nghĩa trong ontology lĩnh vực BKICT.
<rdf:Description about = “http://www.kbs.uni-hannover.de/Database.pdf”> <dc:title> Oracle Database Management Systems </dc:title>
<dc:subject>
rdf:resource = “http://www.hut.edu.vn/bkict/#Databage_Management” </dc:subject>
<rdf:type>
rdf:resource = http ://www.hut.edu.vn/bkshare/# Book
</rdf:type>
Sau khi được người sử dụng tạo ra trong quá trình sử dụng hoặc có thể được thu thập từ các hệ thống bên ngoài, siêu dữ liệu được lưu trữ vào kho chứa siêu dữ liệu và ontology để phục vụ tìm kiếm, truy cập thông tin.