Hệ thống này có thể được coi là một giải pháp tổng thể dùng các công nghệ máy tính để quản lý: học viên, giảng dạy theo yêu cầu Lecture On Demand-LOD, các lớp học được tổ chức theo lịch
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHAN THỊ PHƯƠNG
TÌM HIỂU SEMANTIC WEB VÀ ỨNG DỤNG XÂY DỰNG HỆ THỐNG E-LEARNING
CHO TRƯỜNG TRUNG CẤP ESTIH
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.05
LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHÙNG VĂN ỔN
Hà Nội - 2013
Trang 3MỤC LỤC
DANH MỤC HÌNH VẼ iv
DANH MỤC BẢNG v
MỞ ĐẦU 1
1.1 Giới thiệu về Web ngữ nghĩa (Semantic Web – SW) 3
1.1.1 World Wide Web và những hạn chế 3
1.1.2 Nguồn gốc của web ngữ nghĩa 3
1.1.3 Web ngữ nghĩa là gì? 4
1.1.4 Nội dung xây dựng Semantic Web 7
1.1.4.1 Chuẩn hoá các ngôn ngữ biểu diễn dữ liệu và các siêu dữ liệu trên Web 8 1.1.4.2 Chuẩn hoá các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa 8
1.1.4.3 Phát triển nâng cao Web ngữ nghĩa 8
1.1.5 Kiến trúc phân tầng của Semantic Web 9
1.2 Các ngôn ngữ và công cụ xây dựng Web ngữ nghĩa 10
1.2.1 XML (eXtensible Markup Language) – Ngôn ngữ đánh dấu mở rộng 10
1.2.2 RDF – Nền tảng của Web ngữ nghĩa 12
1.2.2.1 Giới thiệu về RDF 12
1.2.2.2 RDF là gì? 12
1.2.2.3 Mô hình RDF 13
1.2.2.4 Cấu trúc RDF/XML 16
1.2.3 XML schema và RDF schema 23
1.2.3.1 XML schema 23
1.2.3.2 RDF schema 24
1.2.4 Ontology – từ vựng biểu diễn ngữ nghĩa tài nguyên web 26
1.2.4.1 Giới thiệu về Ontology 26
1.2.4.2 Khái niệm Ontology 26
1.2.4.3 Vai trò của Ontology 27
1.2.4.4 Các thành phần của Ontology 27
1.2.4.5 Ngôn ngữ OWL 30
1.2.4.6 Các bước thiết kế một Ontology 32
1.2.4.7 Một số công cụ hỗ trợ xây dựng Ontology 35
CHƯƠNG 2: PHÂN TÍCH BÀI TOÁN ỨNG DỤNG VỀ HỆ THỐNG
E-LEARNING 36
2.1 Giới thiệu 36
2.2 Một số nghiên cứu về tình hình ứng dụng công nghệ E-learning tại Việt Nam 36 2.2.1 Tình hình phát triển và ứng dụng của E-Learning 36
2.2.1.1 Tình hình phát triển và ứng dụng của E-Learning trên thế giới 36
2.2.1.2 Tình hình phát triển và ứng dụng E-Learning ở Việt Nam 37
Trang 42.2.2 Lợi ích của E-learning 38
2.2.3 So sánh hình thức đào tạo truyền thống với đào tạo trực tuyến 39
2.3 E-learning và Web ngữ nghĩa [10, 16, 18] 40
2.3.1 Tính thực tế về E-Learning 40
2.3.2.Thực tế sử dụng Semantic Web 40
2.3.3 Ứng dụng E-learning dựa trên công nghệ Web ngữ nghĩa 42
2.3.4 Web ngữ nghĩa hỗ trợ E-learning 43
2.3.5 Thiết kế Ontology cho tài nguyên học 44
2.3.5.1 Dùng siêu dữ liệu mô tả nội dung tài nguyên học 45
2.3.5.2 Dùng siêu dữ liệu mô tả cấu trúc của tài nguyên học 45
2.3.4 Các loại thuộc tính 45
2.3.4.1 Thuộc tính chuẩn 45
2.3.4.2 Thuộc tính định nghĩa thêm 46
2.3.5.Cách phân loại tài liệu tìm kiếm 46
CHƯƠNG 3: ỨNG DỤNG XÂY DỰNG HỆ THỐNG E-LEARNING CHO TRƯỜNG ESTIH 48
3.1 Đặt vấn đề 48
3.1.1 Giới thiệu hoạt động 48
3.1.2 Thực trạng giáo dục và đào tạo 48
3.2 Mô tả bài toán 49
3.3 Danh sách chú giải 49
3.4 Xác định yêu cầu 50
3.4.1 Yêu cầu chức năng 50
3.4.1.1 Lưu trữ 50
3.4.1.2 Tìm kiếm 50
3.4.2 Yêu cầu phi chức năng 50
3.5 Ontology cho E-Learning 51
3.5.1 Mô tả Ontology 51
3.5.2 Sử dụng Protégé thiết kế Ontology 52
3.5.2.1 Mô hình các lớp 52
3.5.2.2 Mô hình các thuộc tính 54
3.5.2.3 Mô tả tài nguyên học ở dạng triple 55
3.5.2.4 Ánh xạ dữ liệu ở dạng triple sang RDF/XML 56
3.6 Cơ sở dữ liệu cho E-Learning 57
3.6.1 Mô hình quan niệm 57
3.6.3 Đặc tả dữ liệu và từ điển dữ liệu 57
3.6.3.1 Danh sách các bảng 57
3.6.3.2 Đặc tả dữ liệu 58
Trang 53.7 Mô hình Use-Case 59
3.7.1 Danh sách các Actor 59
3.7.2 Danh sách các Use-Case 59
3.7.3 Lược đồ chính của mô hình Use-Case 61
3.8 Thiết kế giao diện 64
3.8.1.Giao diện Đăng nhập tài khoản 64
3.8.2.Giao diện trang chủ của giáo viên 65
3.8.3 Giao diện thêm một tài nguyên 66
3.8.3 Giao diện hiển thị tài nguyên 67
3.8.4 Giao diện upload dữ liệu lên server 67
3.8.5 Giao diện liệt kê môn học 68
3.8.6 Giao diện cập nhật thông tin 68
3.8.7 Giao diện sinh viên tham gia môn học 69
KẾT LUẬN 70
TÀI LIỆU THAM KHẢO 71
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1: Sự hình thành và phát triển của Semantic Web 4
Hình 1.2: Liên kết ngữ nghĩa giữa các nguồn khác nhau trong Semantic Web 6
Hình 1.3: Sơ đồ phát triển tính thông minh của dữ liệu 6
Hình 1.4: Kiến trúc phân lớp của Web ngữ nghĩa 9
Hình 1.5: Ví dụ về một RDF 12
Hình 1.6: Mối quan hệ giữa các thành phần trong Triple 13
Hình 1.7: Mô tả một phát biểu đơn giản bằng đồ thị 14
Hình 1.8: Biểu diễn nhiều phát biểu cho cùng một subject 14
Hình 1.9: Plain Literal biểu diễn cho tuổi của Mr John 15
Hình 1.10: KiểuTyped Literal biểu diễn cho tuổi của Mr John 15
Hình 1.11: Typed Literal biểu diễn cho ngày tháng 16
Hình 1.12: Mô tả 1 bag container đơn giản 19
Hình 1.13: Mô tả một Alt container đơn giản 20
Hình 1.14: Mô tả một RDF: Collection 22
Hình 1.15: Một Ontology biểu diễn quan hệ của xe cộ 29
Hình 1.16: Các ngôn ngữ đánh dấu ontology 31
Hình 3.1: Ontology mô tả các tài nguyên học tập 51
Hình 3.2: Mô hình các lớp 52
Hình 3.3: Mô hình các lớp dưới dạng sơ đồ 53
Hình 3.4: Mô hình các thuộc tính 54
Hình 3.5: Mô tả tài nguyên học ở dạng triple 55
Hình 3.6: Mô hình quan niệm 57
Hình 3.7: Mô hình Use-Case Đăng nhập hệ thống (Học viên) 61
Hình 3.8: Mô hình Use-Case Đăng nhập hệ thống (Quản trị) 62
Hình 3.9: Mô hình Use-Case Đăng nhập hệ thống (Giáo viên) 63
Hình 3.10: Giao diện đăng nhập tài khoản 64
Hình 3.11: Giao diện trang chủ của giáo viên 65
Hình 3.12: Giao diện thêm một tài nguyên 66
Hình 3.13: Giao diện hiển thị tài nguyên 67
Hình 3.14: Giao diện upload dữ liệu lên Server 67
Hình 3.15: Giao diện liệt kê môn học 68
Hình 3.17: Giao diện học viên tham gia môn học 69
Trang 7DANH MỤC BẢNG
Bảng 2.1: So sánh chức năng đào tạo truyền thống với đào tạo trực tuyến 39
Bảng 3.1: Danh sách các bảng dữ liệu 58
Bảng 3.2: TaiKhoan 58
Bảng 3.3: TaiNguyen 58
Bảng 3.4: ThaoTac 59
Bảng 3.5: Bảng các Actor 59
Bảng 3.6: Bảng các Use-Case 59
Trang 8MỞ ĐẦU
Ngày nay, sự bùng nổ tri thức cùng với các vấn đề giao lưu hội nhập quốc tế khiến mỗi chúng ta phải biết tận dụng những thành tựu của khoa học – công nghệ Những thành tựu nổi bật nhất của công nghệ thông tin (CNTT) trong giáo dục và đào tạo hiện nay chính là dạy học trên Website Việc các ứng dụng của CNTT đặc biệt là Internet - Website học tập góp phần rèn luyện khả năng tự học Đây đã thực sự trở thành cầu nối giữa giáo viên (GV) người học (học viên)
Nhưng với sự đơn giản của Web hiện nay đã dẫn đến một số mặt hạn chế Chẳng hạn khi muốn tìm kiếm một thông tin nào đó, chúng ta có thể dễ dàng bị lạc hay phải đối đầu với một lượng lớn thông tin không hợp lý và không liên quan được trả về
từ kết quả tìm kiếm trên Web
Như vậy câu hỏi đặt ra là làm thế nào để chúng ta có được một kết quả tìm kiềm chính xác và nhanh chóng theo đúng những gì mà chúng ta mong muốn? Với kĩ thuật Web hiện nay rõ ràng đã cản trở khả năng phát triển thông tin của nó, gây khó khăn trong việc tìm kiếm, rút trích, bảo trì, và phát sinh thông tin Máy tính chỉ được dùng như những thiết bị gửi và trả thông tin, chúng không thể truy xuất được những nội dung thật sự cần và do đó chúng chỉ hỗ trợ ở một mức giới hạn nào đó trong việc truy xuất và xử lý thông tin Kết quả tất yếu là con người (người sử dụng) phải gánh trên vai trách nhiệm không những truy cập và xử lý thông tin mà còn rút trích và thông dịch mọi thông tin
Để khắc phục các yếu điểm của Web hiện tại khái niệm “Semantic Web” đã ra đời Và khái niệm này đã được Tim Berners-Lee định nghĩa như sau:
“The Semantic Web will bring structure to the meaningful content of Web pages, creating an environment where software agents roaming from page to page can readily carry out sophisticated tasks for users” (Berners-Lee et al 2001) [21]
“Semantic Web mang đến một cấu trúc ngữ nghĩa cho các trang Web, tạo ra
môi trường mà ở đó các tác nhân phần mềm có thể thao tác trên các trang web khác nhau và trả ra thông tin có sự chọn lọc tinh tế cho người dùng”
Ẩn chứa trong khái niệm này là việc tạo ra một trang web cho phép cả người sử dụng và máy tính có thể đồng thời hiểu được Máy tính có thể sử dụng các tác nhân phần mềm để trích lọc, tìm kiếm và so sánh dữ liệu giống như con người thao tác trên các trình duyệt
Như vậy Semantic Web là một mạng lưới các thông tin được liên kết theo một cách thức để máy có thể dễ dàng xử lý thông tin ở mức độ toàn cầu Chúng ta có thể hiểu đơn giản về nó như là một cách trình bày dữ liệu có hiệu quả trên mạng toàn cầu, hoặc là một cơ sở dữ liệu được kết nối toàn cầu Kỹ thuật Web hiện tại chỉ cho phép chúng ta lưu trữ thông tin và tìm kiếm thông tin trên những thông tin đã được lưu trữ Chính vì vậy mà sự ra đời của Semantic Web là một bước tiến vượt bậc so với kỹ thuật
Trang 9Web hiện tại dựa vào khả năng làm việc với thông tin của chúng thay vì chỉ đơn thuần
là lưu trữ thông tin
Với sự lớn mạnh và khả năng lưu trữ thông tin ngữ nghĩa, Semantic Web sẽ trở thành một thế hệ Web cho tương lai, thế hệ Web mà chúng ta đang chờ đợi
Bên cạnh đó, khái niệm E-learning ra đời đã đánh dấu bước ngoặt mới trong việc áp dụng công nghệ thông tin và truyền thông vào lĩnh vực giáo dục và đào tạo Đây là một trong những ứng dụng điển hình dựa trên Web và Internet Hệ thống này
có thể được coi là một giải pháp tổng thể dùng các công nghệ máy tính để quản lý: học viên, giảng dạy theo yêu cầu (Lecture On Demand-LOD), các lớp học được tổ chức theo lịch trình đồng bộ, lớp học qua vệ tinh, các phòng lab đa phương tiện hỗ trợ thiết
kế bài giảng, thư viện điện tử, nhóm học tập (Groupwave) cho phép trao đổi thông tin giữa các học viên, giữa học viên với giáo viên và giữa các giáo viên với nhau Lúc này việc học không chỉ bó cụm cho học sinh, sinh viên ở các trường học mà dành cho tất
cả mọi người, không kể tuổi tác, không có điều kiện trực tiếp đến trường, … Đây chính là chất xúc tác đang làm thay đổi toàn bộ mô hình học tập trong thế kỉ này - cho học sinh, sinh viên, viên chức và cho nhiều loại đối tượng tiềm năng khác như bác sĩ, y
tá và giáo viên - thực tế là cho bất cứ ai mong muốn được học tập dù dưới hình thức chính thống hay không chính thống Hiện nay, E-learning được sử dụng tại rất nhiều tổ chức, công ty, trường học vì những lợi ích mà nó mang lại như: giảm chi phí tổ chức
và quản lý đào tạo; rút ngắn thời gian đào tạo; có thể học bất cứ lúc nào, tại bất kỳ nơi đâu, … [1]
Xuất phát từ xu hướng và những lợi ích kể trên tôi đã quyết định chọn đề tài luận văn thạc sỹ "Tìm hiểu Semantic Web và Ứng dụng xây dựng hệ thống E-Learning cho trường Trung cấp ESTIH"
Luận văn bao gồm các chương chính sau:
Chương 1: Tổng quan về Semantic Web
Chương 2: Phân tích bài toán ứng dụng hệ thống E-learning
Chương 3: Ứng dụng xây dựng hệ thống E-learning cho trường ESTIH
Trong luận văn này tôi đã cố gắng trình bày một cách có chọn lọc dựa vào so sánh từ các kết quả nghiên cứu một cách có hệ thống và dễ hiểu nhằm đóng một phần kiến thức có giá trị cho những ai quan tâm đến các ứng dụng dựa trên nền Semantic Web Đồng thời cũng đã mô hình hóa được một ứng dụng minh họa vào xây dựng hệ thống E-learning cho đơn vị mà tôi đang giảng dạy
Tôi hoàn thành luận văn với tinh thần học hỏi và cố gắng hết mình Tuy nhiên
do kinh nghiệm và trong một thời gian ngắn tìm hiểu nên không tránh khỏi những sai sót Tôi xin chân thành cảm ơn và trân trọng tiếp thu tất cả những ý kiến đóng góp của quý thầy cô và bạn bè để luận văn được hoàn thiện hơn
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ SEMANTIC WEB
Trong chương này, tôi trình bày những kết quả nghiên cứu tổng quan về Web ngữ nghĩa, các vấn đề liên quan đến web ngữ nghĩa như cách xây dựng, các ngôn ngữ
và công cụ sử dụng hỗ trợ
1.1 Giới thiệu về Web ngữ nghĩa (Semantic Web – SW)
1.1.1 World Wide Web và những hạn chế
Hệ thống mạng toàn cầu đã trở nên rộng khắp thông qua một loạt các tiêu chuẩn được thiết lập rộng rãi và đảm bảo được các thành phần ở các mức độ khác nhau Giao thức TCP/IP đảm bảo rằng chúng ta không phải lo lắng về việc chuyển từng bit dữ liệu thông qua hệ thống mạng nữa Tương tự như vậy, HTTP và HTML đã cung cấp các cách tiêu biểu để có thể nhận thông tin và trình diễn các tài liệu siêu văn bản
Tuy nhiên, có một khối lượng khổng lồ các tài nguyên trên Web, điều này làm nảy sinh vấn đề nghiêm trọng là làm thế nào để tìm kiếm chính xác tài nguyên mình mong muốn Dữ liệu trong các file HTML hữu ích trong một vài ngữ cảnh nhưng vô nghĩa đối với những ngữ cảnh khác Thêm vào đó HTML không thể mô tả về dữ liệu đóng gói trong nó
Ví dụ, chúng ta biết mã vùng (PostCode) và muốn tìm địa chỉ của nó Vì mỗi quốc gia có tên hệ thống mã vùng khác biệt và vì Web không biểu diễn được mối liên
hệ này, nên chúng ta không nhận được điều chúng ta mong đợi Trái lại, đối với Semantic Web, chúng ta có thể chỉ ra kiểu của mối liên hệ này Ví dụ, Zip Code tương đương với PostCode
Vì vậy, nếu như các thành phần chính yếu của dữ liệu trong Web trình bày theo dạng thức thông thường, thì thật khó sử dụng dữ liệu này một cách phổ biến Một thiếu sót của Web hiện nay là thiếu cơ cấu hiệu quả để chia sẻ dữ liệu khi ứng dụng được phát triển một cách độc lập Do dó cần phải mở rộng Web để máy có thể hiểu, tích hợp
dữ liệu, cũng như tái sử dụng dữ liệu thông qua các ứng dụng khác nhau
1.1.2 Nguồn gốc của web ngữ nghĩa
Như chúng ta đã biết Web đã trở thành một kho tàng thông tin khổng lồ của nhân loại và môi trường truyền dẫn không thể thiếu được trong thời đại công nghệ thông tin ngày nay
Các chuyên gia dự đoán, bề nổi của web (surface web) chứa khoảng 1 đến 2 tỷ trang tài liệu, trong khi, ở phần sâu của web thì chứa đến 550 tỷ trang tài liệu Có khoảng 200.000 website có tầng thông tin sâu, khoảng hơn 1/2 số thông tin này nằm trong các cơ sở dữ liệu có chủ đề riêng biệt Khoảng 95% thông tin trong các website
có tầng thông tin sâu cho phép đa số người dùng có thể khai thác miễn phí Nhưng hiện nay, hầu hết các công cụ tìm kiếm tài liệu trên web được coi là tìm kiếm hiệu quả cũng chủ yếu tìm kiếm được trên bề nổi của web Trong khi ở tầng sâu của web chứa một khối lượng thông tin khổng lồ và thường rất có giá trị cho các nhà nghiên cứu, các học giả hay đơn thuần là những người thích tìm hiểu Bên cạch đó, các trang web hiện
Trang 11nay có rất ít đường liên kết với các trang web khác nên việc tìm kiếm là khó khăn Ngoài ra, thông tin tìm kiếm được không theo chủ đề mà chỉ là vấn đề tìm thoả theo từ khoá đơn thuần, kết quả tìm kiếm phải do con người chọn lại theo chủ đề mong muốn
Chính những vấn đề này đã thúc đẩy sự ra đời của ý tưởng Web ngữ nghĩa (Semantic Web), một thế hệ mới của Web, mà chính cha đẻ của World Wide Web là Tim Berners-Lee đề xuất vào năm 1998 Web ngữ nghĩa là sự mở rộng của Web hiện tại mà trong đó thông tin được định nghĩa rõ ràng sao cho con người và máy tính có thể cùng làm việc với nhau một cách hiệu quả hơn Mục tiêu của Web có ngữ nghĩa là
để phát triển các chuẩn chung và công nghệ cho phép máy tính có thể hiểu được nhiều hơn thông tin trên Web, sao cho chúng có thể hỗ trợ tốt hơn việc khám phá thông tin (thông tin được tìm kiếm nhanh chóng và chính xác hơn), tích hợp dữ liệu (dữ liệu liên kết động), và tự động hóa các công việc [13, pp.1-3, 30]
Hình 1.1: Sự hình thành và phát triển của Semantic Web
1.1.3 Web ngữ nghĩa là gì?
Tim Berners-Lee đã đưa ra hai vấn đề của web ngữ nghĩa, đó là tạo cho Web một môi trường cộng tác tốt hơn và vấn đề thứ hai là máy có thể hiểu và xử lý tự động các thông tin trên Web
Trên web ngữ nghĩa tồn tại các mối quan hệ giữa các tài nguyên mà trong web hiện tại không có Và chính các quan hệ này đưa vào web ngữ nghĩa là cần thiết, để máy có thể hiểu và xử lý thông tin tự động trên web Các quan hệ này được gọi là các
Web tương lai HTML, XML, RDF (Semantic Web)
Web hiện tại HTML, XML (nhiều ngữ nghĩa hơn)
Web năm 1995 HTML (ít ngữ nghĩa)
Trang 12siêu dữ liệu Công nghệ để có được các siêu dữ liệu này là công nghệ RDF (Resource Description Framework)
Semantic Web không là Web riêng biệt nhưng là một sự mở rộng của Web hiện tại, theo cách thông tin được xác định ý nghĩa tốt hơn, nó cho phép máy tính và người cộng tác với nhau tốt hơn
Semantic Web là một mạng lưới các thông tin được liên kết sao cho chúng có thể được xử lý dễ dàng bởi các máy tính ở phạm vi toàn cầu Nó được xem là cách mô
tả thông tin rất hiệu quả trên World Wide Web, và cũng được xem là một cơ sở dữ liệu
có khả năng liên kết toàn cầu Semantic Web còn cung cấp một môi trường chia sẻ và
Với Semantic Web ta có thể giải quyết vấn đề này bằng 2 cách:
• Thứ nhất, nó sẽ mô tả chi tiết dữ liệu của nó Do đó một chương trình xử lý không cần quan tâm đến các format, hình ảnh, quảng cáo trên một trang Web để tìm ra
sự liên quan của thông tin
• Thứ hai, Semantic Web cho phép chúng ta tạo ra một file mô tả mối liên hệ giữa các tập dữ liệu khác nhau Ví dụ, ta có thể tạo một liên kết semantic giữa một cột
"zip-code" trong database với trường "zip" ở trên form nhập liệu nếu chúng có chung ý nghĩa Điều này cho phép máy tính theo các link và tích hợp dữ liệu từ nhiều nguồn khác nhau
Ý tưởng liên kết các nguồn khác nhau (tài liệu, hình ảnh, con người, khái niệm,…) cho phép chúng ta mở rộng Web thành một môi trường mới với tập các mối quan hệ mới (như hasLocation, worksFor, isAuthorOf, hasSubjectOf, dependsOn, ) giữa các nguồn dữ liệu, tạo ra các mối liên hệ ngữ cảnh (contextual relationship), điều
mà Web hiện tại chưa làm được
Trang 13Hình 1.2: Liên kết ngữ nghĩa giữa các nguồn khác nhau trong Semantic Web
Để có thể tạo ra web có dữ liệu mà máy có thể xử lý được, trước hết phải thay đổi mô hình trong cách chúng ta nghĩ về dữ liệu Từ trước đến nay, dữ liệu bị khoá ngay trong các ứng dụng độc quyền Dữ liệu được coi như thứ yếu để xử lý dữ liệu Thái độ không đúng này bộc lộ những sai sót cơ bản trong luận cứ gốc bằng việc thiết lập sự phụ thuộc giữa xử lý và dữ liệu Hay nói cách khác, phần mềm tốt thì hoàn toàn phụ thuộc vào dữ liệu tốt Với các hệ tính toán chuyên nghiệp thì ngay khi bắt đầu thực hiện, vấn đề dữ liệu là rất quan trọng, nó phải được xác minh và bảo vệ Với Web, XML và xu thế Web ngữ nghĩa đang nổi lên thì có sự thay đổi của sức mạnh đang di chuyển từ các ứng dụng sang dữ liệu Vấn đề này cũng cho chúng ta mấu chốt
để hiểu Web ngữ nghĩa Con đường để máy có thể xử lý dữ liệu chủ yếu là tạo ra dữ liệu thông minh hơn chứ không phải là các xử lý thông minh Hình 1.3 biểu diễn sự phát triển tính thông minh của dữ liệu theo thời gian [13, pp.3-4, 3]
Hình 1.3: Sơ đồ phát triển tính thông minh của dữ liệu
Trang 14Hình 1.3 chỉ ra sự phát triển liên tục của tính thông minh dữ liệu có bốn bậc quan trọng Bốn bậc này biểu diễn từ dữ liệu có tính thông minh thấp nhất đến dữ liệu
đã có thông tin đủ ngữ nghĩa để máy thực hiện suy luận về nó
Văn bản và cơ sở dữ liệu (bậc này là tiền XML)
Bậc đầu tiên, hầu hết dữ liệu ở bậc này được sở hữu độc quyền cho một ứng dụng Do vậy tính thông minh là nằm trong ứng dụng đó chứ không phải là trong dữ liệu
Tài liệu XML với miền đơn
Ở bậc này, dữ liệu đạt được là: ứng dụng độc lập với miền riêng Bây giờ, dữ liệu đủ thông minh để có thể di chuyển giữa các ứng dụng trong một miền đơn Ví dụ: các chuẩn XML trong chăm sóc sức khoẻ, công nghiệp bảo hiểm, hoặc công nghiệp bất động sản
Các phân loại và tài liệu với các bộ từ vựng hỗn hợp
Trong bậc này, dữ liệu có thể được soạn từ đa miền và được phân lớp chính xác theo một nguyên tắc phân loại có thứ bậc Thực tế, sự phân lớp đó có thể được sử dụng
để khám phá dữ liệu Các quan hệ đơn giản giữ các lớp có thể được sử dụng để quan
hệ và do vậy, ta có dữ liệu kết hợp Như vậy, dữ liệu bây giờ thông minh đủ để khám phá dễ dàng và được kết hợp một cách hợp lý với dữ liệu khác
Các ontology và các luật lập luận
Trong mức này, dữ liệu mới có thể được suy ra từ những dữ liệu đã có theo các luật logic Thực chất, dữ liệu bây giờ thông minh đủ để được mô tả với các quan hệ cụ thể và các dạng hình thức phức tạp Điều này cho phép kết hợp hoặc tái kết hợp dữ liệu nguyên thuỷ nhiều hơn và sự phân tích về dữ liệu mịn hơn Một ví dụ về sự phức tạp của dữ liệu là việc chuyển tự động tài liệu trong một miền này sang một tài liệu tương đương trong một miền khác Ở mức này, ta có thể soạn một định nghĩa mới trên Web ngữ nghĩa, máy có thể xử lý các tài liệu web có dữ liệu thông minh Hơn nữa, ta
có thể định nghĩa dữ liệu thông minh vì dữ liệu nó độc lập với ứng dụng, có thể soạn, phân lớp và lấy một phần của các hệ thông tin lớn hơn
Như vậy, việc xây dựng web ngữ nghĩa chủ yếu tập trung xây dựng hệ thống web có dữ liệu thông minh Dữ liệu thông minh ở đây không có nghĩa là gắn liền với trí tuệ nhân tạo, không phải là cho máy học hiểu các từ ngữ của con người hay máy xử
lý được ngôn ngữ tự nhiên mà nó thông minh bởi việc tổ chức lựa chọn dữ liệu biểu diễn trong ngôn ngữ được cấu trúc để máy có thể hiểu Và sau đây chúng ta tìm hiểu
về kiến trúc của web ngữ nghĩa
1.1.4 Nội dung xây dựng Semantic Web
Để xây dựng Web ngữ nghĩa thay thế cho World Wide Web hiện tại, các nhà nghiên cứu đang nỗ lực và tập trung nghiên cứu với ba hướng chính sau: [3, 13, 30]
- Chuẩn hoá các ngôn ngữ biểu diễn dữ liệu (XML) và siêu dữ liệu (RDF) trên Web
- Chuẩn hoá các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa
Trang 15- Phát triển nâng cao Web có ngữ nghĩa (Semantic Web Advanced Development - SWAD)
1.1.4.1 Chuẩn hoá các ngôn ngữ biểu diễn dữ liệu và các siêu dữ liệu trên Web
Như chúng ta đã biết, World Wide Web đã rất thành công bởi ngôn ngữ XML XML đã làm cho công nghệ Web phát triển mạnh mẽ như hiện nay Và Web ngữ nghĩa được phát triển trên nền Web hiện tại, trên nền XML, chúng ta có thể thấy rất rõ ngay trong sơ đồ kiến trúc của Web ngữ nghĩa Web ngữ nghĩa được bổ sung các chú thích ngữ nghĩa cho các tài nguyên Web, và W3C đã giới thiệu RDF là chuẩn cú pháp
để tạo, thay đổi và sử dụng chú thích trong Web ngữ nghĩa Do vậy việc xây dựng ngôn ngữ chuẩn cho XML và RDF là thiết yếu để biểu diễn dữ liệu cho Web ngữ nghĩa Trong quá trình này, đã có một số cú pháp được đưa ra để biểu diễn RDF như: Notation 3 (hay N3), XML/RDF, hay đồ thị các mệnh đề của RDF như đã trình bày ở trên Các cú pháp này hỗ trợ biểu diễn dữ liệu cho máy có thể hiểu được
1.1.4.2 Chuẩn hoá các ngôn ngữ biểu diễn Ontology cho Web có ngữ nghĩa
Ontology đóng vai trò then chốt trong việc cung cấp tài nguyên có thể truy nhập
để xử lý tự động bằng cách cung cấp bộ từ vựng cho việc đánh dấu ngữ nghĩa của Web ngữ nghĩa Để biểu diễn Ontology cho phát triển Web có ngữ nghĩa cần thiết đưa ra một ngôn ngữ chuẩn cho sự biểu diễn mềm dẻo, linh hoạt và đa dạng của tài nguyên Web Trong quá trình chuẩn hoá ngôn ngữ biểu diễn Ontology, một số ngôn ngữ được
đề xuất với các khả năng biểu diễn tăng dần như: RDFS, DAML+OIL, OWL, và tiếp tục được mở rộng trong tương lai Các ngôn ngữ này có khả năng biểu diễn tăng dần nhưng tương ứng là khả năng quyết định giảm dần (độ phức tạp tăng dần) Và các ngôn ngữ biểu diễn Ontology được xây dựng phải cân bằng được khả năng biểu diễn
và độ phức tạp tính toán Các ngôn ngữ này được xây dựng trên nền các chuẩn XML, RDF, và thường sử dụng cơ sở logic là logic mô tả để biểu diễn ngữ nghĩa và hỗ trợ lập luận
1.1.4.3 Phát triển nâng cao Web ngữ nghĩa
Các công việc chuẩn hoá các ngôn ngữ biểu diễn dữ liệu XML, siêu dữ liệu RDF hay ngôn ngữ biểu diễn Ontology là các công việc nền tảng, cơ sở tạo ra chuẩn chung cơ sở để phát triển hệ thống và các ứng dụng trên Web ngữ nghĩa Việc đưa các chuẩn đó thành các thể hiện, các sản phẩm của hệ thống Web ngữ nghĩa là công việc của SWAD SWAD thực hiện nghiên cứu và đưa ra các thể hiện của Web ngữ nghĩa trên công nghệ cơ sở và nó cũng bổ sung, hoàn thiện các công nghệ cơ sở này Nó chỉ
ra các công nghệ Web ngữ nghĩa được sử dụng như thế nào? Mục tiêu cụ thể của SWAD là sử dụng các công nghệ, kỹ thuật và các công cụ hiện có của Web ngữ nghĩa
để tạo ra các chương trình vượt xa hơn tầm hiện có, phát triển các thể hiện thực tiễn và cung cấp các công cụ và các chuẩn mới cho Web ngữ nghĩa Để phát triển SWAD hiện tại đã có một số dự án của các tổ chức thực hiện nghiên cứu và phát triển như: SWAD-Europe, SWAD-DAML, SWAD-Simile, SWAD-Oxygen Hiện tại, ở Việt Nam, một
dự án cấp Nhà nước đang nghiên cứu thực hiện trích rút tự động thông tin từ các trang
Trang 16Web về tin tức để xây dựng các ontology cho lĩnh vực này nhằm "tiếp nhận" công
nghệ Web ngữ nghĩa khi có hệ thống mạng mới này
1.1.5 Kiến trúc phân tầng của Semantic Web
Hình 1.4 chỉ ra sơ đồ kiến trúc của Web ngữ nghĩa Web ngữ nghĩa là một tập hợp/một chồng (stack) các ngôn ngữ [13, pp.17-20]
Hình 1.4: Kiến trúc phân lớp của Web ngữ nghĩa
Vai trò của các tầng/lớp trong kiến trúc
Lớp Unicode & URI: nhằm bảo đảm việc sử dụng tập kí tự quốc tế và cung cấp
phương tiện nhằm định danh các đối tượng trong Semantic Web
Cụ thể: Unicode là một bảng mã chuẩn chung có đủ các ký tự để thống nhất sự giao tiếp trên tất cả các quốc gia, đáp ứng tính nhất quán toàn cầu của web URI
(Uniform Resource Identifier) là kí hiệu nhận dạng Web đơn giản
Lớp XML: cùng với các định nghĩa về namespace và schema (lược đồ) bảo
đảm rằng chúng ta có thể tích hợp các định nghĩa Semantic Web với các chuẩn dựa trên XML khác
Lớp RDF [RDF] và RDFSchema [RDFS]:
RDF (Resource Description Framework): Khung mô tả tài nguyên - RDF
được W3C giới thiệu để cung cấp một cú pháp chuẩn để tạo, thay đổi và sử dụng các chú thích trong Web ngữ nghĩa Một mệnh đề RDF là một bộ ba chủ đề – thuộc tính – đối tượng (subject – predicate – object) Trong đó, chủ đề là tài nguyên mà được mô tả bằng thuộc tính và đối tượng Thuộc tính thể hiện mối quan hệ giữa chủ đề và đối tượng Còn đối tượng ở đây có thể là một tài nguyên hoặc một giá trị Ba thành phần trên trong RDF đều là các URI
RDFS (RDF schema)
RDFS là một ngôn ngữ ontology đơn giản của web ngữ nghĩa, được coi là một ngôn ngữ cơ sở của web ngữ nghĩa RDFS là ngôn ngữ mô tả bộ từ vựng trên các bộ
ba RDF Nó cung cấp các công việc sau:
- Định nghĩa các lớp tài nguyên
- Định nghĩa các quan hệ giữa các lớp
Trang 17- Định nghĩa các loại thuộc tính mà các lớp trên có
- Định nghĩa các mối quan hệ giữa các thuộc tính
Lớp Ontology Vocabulary
Bộ từ vựng ontology được xây dựng trên cơ sở tầng RDF và RDFS, cung cấp biểu diễn ngữ nghĩa mềm dẻo cho tài nguyên web và có khả năng hỗ trợ lập luận Để xây dựng được các bộ từ vựng này, người ta đã sử dụng các ngôn ngữ ontology để biểu diễn chúng như: RDFS, OIL, DAML, DAML+OIL, OWL, Các ngôn ngữ này cung cấp khả năng biểu diễn và hỗ trợ lập luận khác nhau và chúng dựa trên nền tảng
là các ngôn ngữ logic mô tả tương ứng khác nhau
Lớp Logic
Việc biểu diễn các tài nguyên dưới dạng các bộ từ vựng ontology có mục đích
là để máy có thể lập luận được Mà cơ sở lập luận chủ yếu dựa vào logic Chính vì vậy
mà các ontology được ánh xạ sang logic, cụ thể là logic mô tả để có thể hỗ trợ lập luận Vì logic mô tả có biểu diễn ngữ nghĩa hình thức (đặc trưng của lý thuyết mô hình), và cung cấp các dịch vụ lập luận, là cơ sở để hỗ trợ máy có thể lập luận và hiểu tài nguyên
Lớp Proof
Lớp này đưa ra các luật để suy luận Cụ thể từ các thông tin đã có ta có thể suy
ra các thông tin mới Ví dụ: A là cha của B, A là em trai C thì khi đó ta có thông tin mới là C là bác của B Để có được các suy luận này thì cơ sở là FOL (First-Order-Logic) Và tầng này hiện nay các nhà nghiên cứu đang xây dựng các ngôn ngữ luật cho nó như: SWRL, RuleML
Lớp Trust
Đảm bảo tính tin cậy của các ứng dụng trên Web ngữ nghĩa Ví dụ: có một người bảo x là xanh, một người khác lại nói x không xanh, như thế Web ngữ nghĩa là không đáng tin cậy? Câu trả lời ở đây được xem xét trong các ngữ cảnh Mỗi ứng dụng trên web ngữ nghĩa sẽ có một ngữ cảnh cụ thể, chính vì thế các mệnh đề trên có thể nằm trong các ngữ cảnh khác nhau khi đó ngữ nghĩa tương ứng khác nhau nên các mệnh đề đó vẫn đúng, đáng tin cậy trong ngữ cảnh của nó Để có được sự chứng minh
về độ tin cậy thì các lập luận được áp dụng là không đơn điệu và có các cơ chế kiểm tra chứng minh kết hợp với công nghệ chữ ký điện tử để xác nhận độ tin cậy Các ngôn ngữ chứng minh là ngôn ngữ cho ta chứng minh một mệnh đề là đúng hay sai
1.2 Các ngôn ngữ và công cụ xây dựng Web ngữ nghĩa
1.2.1 XML (eXtensible Markup Language) – Ngôn ngữ đánh dấu mở rộng
XML là một đặc tả cho các tài liệu (document) mà máy tính đọc được Đánh dấu (Markup) có nghĩa là các chuỗi ký tự nào đó trong tài liệu có chứa thông tin chỉ ra vai trò nội dung của tài liệu Markup mô tả sơ đồ (layout) dữ liệu của tài liệu và cấu trúc logic Markup làm thông tin tự mô tả tùy vào cảm nhận [6, 13, pp.25-28]
Markup được mô tả dưới dạng các từ trong dấu ngoặc nhọn hay còn gọi là tag
Ví dụ
Trang 18Các thực thể (entity) markup chính trong XML là các đơn vị (element) Chúng thông thường bao gồm một tag mở và một tag đóng Ví dụ <person> và </person>
Các element có chứa các element khác hay text Nếu 1 element không có nội dung, nó có thể được viết ngắn gọn như <person/> Các element nên được xếp lồng nhau, tag mở và tag đóng của element con phải nằm trong tag mở và tag đóng của element cha
Mỗi XML document phải có chính xác một root element
Các element có thể chứa thuộc tính với giá trị nào đó, có định dạng là: "từ =giá trị" bên trong tag của một element Ví dụ <person name="John"> Dưới đây là một đoạn XML:
Trang 191.2.2 RDF – Nền tảng của Web ngữ nghĩa
1.2.2.1 Giới thiệu về RDF
RDF là một thành phần quan trọng của Semantic Web, được dựa trên XML, RDF sử dụng cú pháp của XML để biểu diễn dữ liệu Ngôn ngữ XML dùng để biểu diễn dữ liệu trong RDF được gọi là RDF/XML Thông qua định dạng này, các thông tin trong RDF có thể được trao đổi dễ dàng giữa các hệ thống máy tính, các hệ điều hành hay các ngôn ngữ lập trình ứng dụng khác nhau [7, 8, 11, 12, 13, pp.65-84]
XML cung cấp cú pháp để mã hóa dữ liệu, RDF là một cơ cấu chỉ ra điều gì đó
về dữ liệu Như tên gọi, RDF là một mô hình để biểu diễn dữ liệu về "Mọi thứ trên Web" Mọi thứ ở đây chính là các tài nguyên trong RDF vocabulary (từ vựng) Mô hình dữ liệu cơ sở của RDF thì đơn giản, bên cạnh tài nguyên (resources), RDF còn chứa thuộc tính (properties) và câu phát biểu (statements) Một property là một khía cạnh, tính chất, thuộc tính, hay mối liên hệ mô tả cho một tài nguyên Một statement bao gồm một tài nguyên riêng biệt, một thuộc tính được đặt tên, và giá trị thuộc tính cho tài nguyên đó Giá trị này cơ bản có thể là một tài nguyên khác hay một giá trị mang tính nghĩa đen (literal value) hay dạng text tùy ý (free text)
Hình 1.5: Ví dụ về một RDF
Nhìn chung một RDF description (mô tả) là một danh sách các triple (bộ ba): object - attribute - value Ví dụ, hình trên thể hiện 3 triple cần thiết để chỉ ra trang Web được tạo bởi ai đó với name là "John" và số phone là "47782"
Giống như XML, mô hình RDF không định nghĩa miền giá trị áp dụng hay giả định về một miền giá trị áp dụng cụ thể Nó chỉ cung cấp một cơ cấu vùng không có tính chất rõ ràng để mô tả metadata Xác định các thuộc tính có miền giá trị cụ thể và ngữ nghĩa (semantic) của chúng ta cần có các công cụ khác
Trang 20Subject Object
predicate
Và RDF (Resource Description Framework) là một “bộ khung” được sử dụng
để xử lý metadata trên Internet
1.2.2.3 Mô hình RDF
Mô hình cơ bản của RDF gồm ba đối tượng sau:
• Tài nguyên (Resources): là tất cả những gì được mô tả bằng biểu thức RDF
Nó có thể là một trang Web, ví dụ như trang http://www.w3.org/Overview.html, cũng
có thể là một phần của trang Web, hoặc là một tập các trang Web, …
• Thuộc tính (Properties): thuộc tính, đặc tính, hoặc quan hệ dùng để mô tả tính chất của tài nguyên
• Phát biểu (Statements): mỗi phát biểu gồm ba thành phần sau
- Subject (Tài nguyên): địa chỉ hay vị trí tài nguyên muốn mô tả, thông thường thì đây là chuỗi định URL hoặc URI
- Predicate (Vị ngữ): xác định tính chất của tài nguyên
- Object (Bổ ngữ): nội dung gán cho thuộc tính
1.2.2.3.1 Bộ ba RDF (RDF Tripple)
Mỗi một phát biểu (subject, predicate,object) còn gọi là một bộ ba (triple)
Ví dụ: Xét http://www.example.org/index.html has a creator whose value is John Smith
Phát biểu trên được phân ra làm các thành phần sau:
mô tả cho từng khái niệm trên
Phát biểu trên được biểu diễn dưới dạng một tripple như sau:
<http://www.example.org/index.html><http://purl.org/dc/elements/1.1/creator>
<http://www.example.org/staffid/85740>
1.2.2.3.2 Đồ thị RDF (RDF Graph)
Tập các triple hợp lại tạo thành đồ thị RDF (RDF Graph) Các node trong đồ thị
có thể là các subject và object trong triple và các cung (arc) trong đồ thị là các predicate Cho nên một triple còn có thể được mô tả dưới dạng node-arc-node Hướng của đồ thị rất quan trọng Cung của đồ thị luôn bắt đầu từ subject đến object
Hình 1.6: Mối quan hệ giữa các thành phần trong Triple
Phát biểu trên được mô hình hóa bằng đồ thị có hướng sau:
Trang 21Hình 1.7: Mô tả một phát biểu đơn giản bằng đồ thị
Ta thêm các phát biểu sau cho cùng một subject:
http://www.example.org/index.html has a creation-date whose value is August 16, 1999 http://www.example.org/index.html has a language whose value is English
Được phân ra thành các thành phần sau:
http://www.example.org/ind
ex.html
http://purl.org/dc/elements/1.1/c reator
http://www.example.org/staffi d/85740
http://www.example.org/ind
ex.html
http://www.example.org/terms/c reation-date
August 16, 1999
http://www.example.org/ind
ex.html
http://purl.org/dc/elements/1.1/l anguage
English
Lúc này các phát biểu cùng được biểu diễn dưới một đồ thị như sau:
Hình 1.8: Biểu diễn nhiều phát biểu cho cùng một subject
Mô hình trên chỉ ra rằng các đối tượng trong phát biểu RDF có thể là một URI hoặc là một giá trị Literal Ở hình trên ta dùng hình oval để biểu diễn một resource là một URI, và dùng hình chữ nhật để biểu diễn một resource là một giá trị Literal
1.2.2.3.3 Literal
Literal được sử dụng để biểu diễn các giá trị như con số, ngày tháng, chuỗi Bất cứ cái gì có thể biểu diễn bởi một giá tri Literal cũng có thể được biểu diễn dưới dạng một URI
Trang 22Một Literal có thể là object của một phát biểu nhưng không thể là subject hay là predicate
Literal có hai kiểu sau: plain literal hay là typed literal:
• Một plain Literal là một chuỗi được kết hợp với một tag tùy ý Trong ngôn ngữ tự nhiên ta có thể gọi nó là một kiểu text
Ví dụ sau:
Hình 1.9: Plain Literal biểu diễn cho tuổi của Mr John
Ví dụ trên mô tả tuổi của Mr John Smith là 27 Ở đây ta biểu diễn tuổi của Mr John Smith là một kiểu plain literal Giá trị 27 ở đây chỉ là một chuỗi gồm 2 ký tự "2"
và "7" Nhưng nếu ta muốn biểu diễn nó là một con số, một số nguyên thì phải làm như thế nào đây? Bằng cách dùng kiểu typed literal chúng ta sẽ có được cách định nghĩa mà chúng ta muốn
• Một typed literal được hình thành bằng cách kết hợp một chuỗi với một định danh URI để biểu diễm một kiểu dữ liệu đặc biệt nào nó Kết quả trả về là một node trong đồ thị tương tự như kiểu literal Kiểu giá trị được biểu diễn bằng typed literal sẽ được ánh xạ đến kiểu giá trị đặc biệt mà ta đã khai báo thông qua URI Ở ví dụ trên, khi biểu diễn tuổi của Mr John là kiểu số nguyên thì ta sẽ có cách khai báo như sau:
Subject http://www.example.org/staffid/85740
Predicate http://www.example.org/terms/age
Object "27"^^<http://www.w3.org/2001/XMLSchema#integer>
Và được biểu diễn thành đồ thị như sau:
Hình 1.10: KiểuTyped Literal biểu diễn cho tuổi của Mr John
Tương tự như vậy ở ví dụ trên ta có thể dùng kiểu dữ liệu ngày tháng
Subject http://www.example.org/staffid/85740
Predicate http://www.example.org/terms/creation-age
Object "27"^^<http://www.w3.org/2001/XMLSchema#integer>
Trang 23Hình 1.11: Typed Literal biểu diễn cho ngày tháng
Đôi khi không thuận tiện để biểu diễn các phát biểu dưới dạng đồ thị, ta có thể dùng cách viết dưới dạng tripple Ta có thể viết lại như sau:
Ta có thể dùng một số QName sau đây:
prefix ex:, namespace URI: http://www.example.org/ hay
http://www.example.com/
prefix exterms:, namespace URI: http://www.example.org/terms/
prefix exstaff:, namespace URI: http://www.example.org/staffid/
Và ví dụ trên được viết lại như sau:
ex:index.html exterms:creation-date "August 16, 1999"
ex:index.html dc:language "en"
Và ví dụ trên được viết lại dưới dạng QName như sau:
exstaff:85740 exterms:age "27"^^xsd:integer
ex:index.html exterms:creation-date "1999-08-16"^^xsd:date
Như vậy ta thấy rằng việc khai báo các URI thông qua một QName sẽ rất thuận lợi, nó làm cho các URI này ngắn gọn và dễ hiểu Hơn nữa khi có một thay đổi về URI thì ta chỉ việc thay đổi ở phần namespace mà chúng ta đã khai báo chứ không cần phải thay đổi tất cả URI trong bộ dữ liệu của mình
1.2.2.4 Cấu trúc RDF/XML
1.2.2.4.1 Cú pháp RDF/XML cơ bản
Mô hình RDF thể hiện một mô hình ở mức trừu tượng để định nghĩa meta data
Cú pháp RDF được dùng để tạo ra và trao đổi meta data RDF dựa trên cú pháp XML
Cú pháp cơ bản của RDF có dạng như sau:
Trang 24[1] RDF ::= ['<rdf:RDF>'] description* ['</rdf:RDF>']
[2] description ::= '<rdf:Description' idAboutAttr? '>' propertyElt* '</rdf:Description>'
[3] idAboutAttr ::= idAttr | aboutAttr
[4] aboutAttr ::= 'about="' URI-reference '"'
[5] idAttr ::= 'ID="' IDsymbol '"'
[6] propertyElt ::= '<' propName '>' value '</' propName '>'| '<' propName resourceAttr '/>' [7] propName ::= Qname
[8] value ::= description | string
[9] resourceAttr ::= 'resource="'tham chiếu URI'"'
[10] Qname ::= [ NSprefix ':' ] name
[11] URI-reference ::= string, interpreted per [URI]
[12] IDsymbol ::= (bất kỳ ID nào hợp lệ nào của XML)
[13] name ::= (bất kỳ tên hợp lệ nào của XML)
[14] NSprefix ::= (bất kỳ tiếp đầu ngữ namespace hợp lệ nào)
[15] string ::= (bất kỳ chuỗi nào)
Ví dụ : Xét phát biểu
ex:index.html exterms:creation-date "August 16, 1999"
Cú pháp RDF/XML để biểu diễn cho phát biểu trên như sau:
Dòng 2 và 3: bắt đầu với thẻ rdf:RDF, cho biết rằng nội dung XML tiếp theo
mô tả RDF Từ khóa này xác định tài liệu này được biểu diễn dưới dạng RDF Tiếp theo là phần khai báo XML namespace được sử dụng trong tài liệu, tùy vào nhu cầu và mục đích sử dụng mà ta có thể dùng các namespace khác nhau cho từng tài liệu
Dòng 4, 5, 6: mô tả những mệnh đề RDF Để mô tả bất kỳ phát biểu nào dạng
RDF/XML có thể dùng rdf:Description, và rdf:about, đây chính là subject của phát biểu (about http://www.example.org/index.html) Thẻ bắt đầu rdf:Description trong
dòng 4 cho biết bắt đầu mô tả về một resource và tiếp tục định danh resource này dùng
thuộc tính rdf:about để chỉ ra URI của subject resource Dòng 5 cung cấp 1 phần tử thuộc tính, với Qname exterms:creation-date như là thẻ của nó Nội dung của phần tử
thuộc tính này là object của statement, có giá trị kiểu plain literal "August 19, 1999"
Dòng 7: cho biết kết thúc của thẻ rdf:RDF bắt đầu ở dòng 2 và cũng là thẻ kết thúc của tài liệu RDF
Như vậy ta đã biết làm thế nào để khai báo một tài liệu RDF Trong tài liệu RDF, tất cả các phần tử có tiếp đầu ngữ là rdf được dùng để mô tả tài nguyên Chúng
Trang 25sử dụng một không gian tên được tổ chức W3C qui định:
http://www.w3.org/1999/02/22-rdf-syntax-ns#
Ở ví dụ trên ta chỉ mô tả tài liệu cho một phát biểu đơn giản, với một tài liệu gồm nhiều phát biểu, việc mô tả nó cũng thật sự đơn giản:
Ví dụ với 2 phát biểu :
ex:index.html exterms:creation-date "August 16,1999"
ex:index.html dc:language "en"
Cú pháp RDF được mô tả như sau:
Như vậy với một phát biểu ta có thể dùng từ khóa rdf:Description để mô tả cho
nó Tuy nhiên ta thấy 3 phát biểu trên có cùng một subject
(http://www.example.org/index.html) nên ta có thể gộp 3 phát biểu này lại với nhau
dùng một thẻ rdf:Description chung như sau:
Trang 26nhiều loại (types) và nhiều thuộc tính (properties) tích hợp sẵn giúp chúng ta mô tả được những nhóm như vậy Tuy nhiên RDF cũng cung cấp một kiểu khai báo là container, dùng để lưu danh sách các tài nguyên hoặc các kiểu giá trị (chuỗi các ký tự,
kí số, …) Những members của 1 container có thể là các resources (gồm cả các blank nodes) hay là các literals
Mô hình Container
RDF định nghĩa 3 loại đối tượng container: Bag, Sequence, và Alternative Bag là danh sách không có thứ tự của các tài nguyên hoặc các giá trị Nó được dùng để khai báo thuộc tính có nhiều giá trị và thứ tự của những giá trị này không cần quan tâm đến Bag cho phép những giá trị có thể trùng lặp nhau
Sequence là danh sách có thứ tự của các tài nguyên hoặc các giá trị Nó được dùng để khai báo thuộc tính có nhiều giá trị và thứ tự của những giá trị này cần được quan tâm đến Chẳng hạn như dùng Sequence để lưu trữ các giá trị theo thứ tự bảng chữ cái Sequence cho phép những giá trị có thể trùng lặp nhau
Alternative là một danh sách các tài nguyên hoặc các giá trị, được dùng để biểu diễn các giá trị lựa chọn của một thuộc tính
Để biểu diễn một tập hợp các tài nguyên, RDF dùng một tài nguyên mới để xác định một tập tài nguyên cần được biểu diễn Tài nguyên mới này phải được khai báo như là một thể hiện của một trong các loại đối tượng container được đề cập ở trên Thuộc tính type được dùng để khai báo loại đối tượng container được sử dụng Mối quan hệ thành viên giữa container và các tài nguyên của tập hợp được xác định bằng những tên đơn giản như : "_1", "_2", "_3" …
Trang 27Ví dụ 2: Xét phát biểu sau:
"The source code for X11 may be found at ftp.example.org, ftp1.example.org, or
ftp2.example.org"
Ta dùng rdf:Alt để mô tả như hình sau :
Hình 1.13: Mô tả một Alt container đơn giản
Cú pháp Container
Cú pháp một RDF container có dạng như sau:
[16] container ::= sequence | bag | alternative
[17] sequence ::= '<rdf:Seq' idAttr? '>' member* '</rdf:Seq>'
[18] bag ::= '<rdf:Bag' idAttr? '>' member* '</rdf:Bag>'
[19] alternative ::= '<rdf:Alt' idAttr? '>' member+ '</rdf:Alt>'
[20] member ::= referencedItem | inlineItem
[21] referencedItem ::= '<rdf:li' resourceAttr '/>'
[22] inlineItem ::= '<rdf:li>' value '</rdf:li>'
Container được dùng bất kỳ nơi nào mà một description có thể được dùng:
[1a] RDF ::= '<rdf:RDF>' obj* '</rdf:RDF>'
[8a] value ::= obj | string
[23] obj ::= description | container
Vì tài liệu RDF ở [1a] được dùng để mô tả nhiều obj, mà obj có thể là description hoặc container
Ta biểu diễn hai ví dụ trên dưới dạng cú pháp RDF/XML như sau:
Trang 28rdf:_1, rdf:_2, … được phát sinh từ những yếu tố rdf:li khi hình thành lược đồ tương
ứng Chú ý rằng việc sử dụng <rdf:Bag> được đặt bên trong <s:students> Vì không có URI được ghi rõ nên Bag là một blank node Việc đặt nó trong thuộc tính <s:students>
là một cách viết tắt để cho biết rằng blank node là giá trị của thuộc tính này
Cũng dùng trong mục đích định nghĩa ra những tập hợp Nhưng RDF container
là định nghĩa một tập hợp mở, vì nó không báo rằng không còn có thêm những thành viên mới nữa Trong khi đó, RDF collection cho phép khai báo một tập hợp đóng Cấu
trúc của RDF Collection tương tự như một danh sách, có phần tử đầu (rdf:first), phần
tử kế (rdf:rest)và phần tử cuối(rdf:nil)
Xét phát biểu sau:
"The students in course 6.001 are Amy, Mohamed, and Johann"
Được biểu diễn dưới đồ thị như sau:
Trang 29Hình 1.14: Mô tả một RDF: Collection
Ở đồ thị trên ta thấy với mỗi thành viên của danh sách, ví dụ như s:Amy, là subject của thuộc tính rdf:first mà subject của nó là một resource (một blank node đối
với ví dụ này) mà nó biểu diễn như một danh sách Danh sách này liên kết với phần
còn lại của nó bằng thuộc tính rdf:rest Phần tử cuối cùng của danh sách được chỉ bởi thuộc tính rdf:rest có resource là rdf:nil (là một danh sách trống)
Ví dụ trên được biểu diễn dưới cú pháp RDF/XML như sau:
Trang 30Tuy nhiên RDF/XML cung cấp một cách định nghĩa để mô tả một tập hợp, bằng cách sử dụng một thuộc tính có attribute là rdf:parseType=”Collection” Ta có thể viết lại ví dụ trên một cách ngắn gọn hơn như sau:
Cả hai là cơ cấu để chúng ta đặc tả cấu trúc của các XML document Chúng ta
có thể xác minh tính hợp lệ của các document đối với cấu trúc được mô tả trước bởi một DTD hay XML Schema
Các DTD chỉ cung cấp một luật cấu trúc đơn giản, chúng mô tả các element được phép xếp lồng vào nhau, các giá trị có thể có của element và những nơi text (văn bản) được phép Ví dụ một DTD có thể ra luật mỗi element Person phải có một attribute name và có thể có một element con được gọi là phone, những nội dung của chúng phải là dạng text Cú pháp của DTDs trông khá bất tiện, nhưng nó thực sự rất đơn giản
Các XML Schema là bản nâng cấp của DTDs XML Schema có nhiều thuận lợi hơn DTDs Trước tiên, cơ cấu XML Schema cung cấp ngữ pháp phong phú cho việc
mô tả cấu trúc các element Ví dụ, chúng ta có thể đặc tả chính xác các thể hiện của element con, chúng ta có thể đặc tả giá trị mặc định và đặt các element vào trong một nhóm được lựa chọn, điều này có nghĩa là một trong các element của nhóm được phép
ở tại một nơi cụ thể Kế đến XML Schema cung cấp kiểu dữ liệu
Trong ví dụ ở đoạn trước, chúng ta có thể qui định nội dung của element phone
là 5 số, có thể đặt trước 5 số vào giữa ngoặc đơn Sự thuận tiện ở chỗ XML Schema cung cấp cơ cấu kế thừa và gộp vào, cho phép chúng ta tái sử dụng các định nghĩa (definitions) element thông thường và mô phỏng theo các định nghĩa đang tồn tại
Sự khác biệt cuối cùng đối với DTD là các luật XML Schema dùng XML như
cú pháp mã hóa, làm đơn giản hóa các công cụ phát triển vì cả luật cấu trúc (Structure
Trang 31Prescription) và đặc tả tài liệu (prescribed documents) sử dụng cùng cú pháp Các nhà phát triển đặc tả XML Schema tìm thấy điểm này bằng cách sử dụng một tài liệu XML Schema để định nghĩa lớp (class) của các XML Schema document Sau cùng, vì một XML Schema rescription (luật) là một ứng dụng XML, nó phải tuân theo các luật cho cấu trúc của nó, mà các luật này được định nghĩa bởi một XML Schema prescription Tuy nhiên, cách định nghĩa đệ qui này khá rối
1.2.3.2 RDF schema
Cơ bản, RDF Schema là một hệ thống kiểu đơn giản cho RDF Nó cung cấp một cơ cấu để xác định các thuộc tính có miền giá trị cụ thể và các lớp tài nguyên để chúng ta áp dụng cho những thuộc tính này
Mô hình cơ bản ban đầu trong RDF Schema là các định nghĩa lớp và lớp con (class & subclass), thuộc tính và thuộc tính con (property & subproperty), domain và range của các statement - để giới hạn các kết hợp có thể có giữa các lớp và thuộc tính,
và các trình bày kiểu (để khai báo một tài nguyên như một thực thể của một lớp cụ thể) Ban đầu, chúng ta có thể xây dựng một lược đồ (schema) cho một miền giá trị cụ thể Ví dụ, chúng ta có thể khai báo hai lớp tài nguyên Person và Webpage và hai thuộc tính name và phone có miền giá trị Person và phạm vi literal
Chúng ta có thể dùng lược đồ này để xác định tài nguyên http://www.w3c.org/
là một thực thể Webpage và tài nguyên nặc danh (anonymous resource) là một thực thể của Person Ngoài ra, điều này sẽ giải thích cũng như kiểm định giá trị đối với dữ liệu RDF
RDF Schema khá đơn giản so với các ngôn ngữ biểu diễn tri thức khác RDF Schema cũng không cung cấp chính xác ngữ nghĩa (semantic) Tuy nhiên, sự bỏ sót này một phần là do có chủ ý W3C thấy trước và chủ trương mở rộng xa hơn đối với RDF Schema
Do đặc tả RDF Schema cũng là một kiểu metadata, chúng ta có thể dùng RDF
để mã hóa chúng Điều này chính xác với những gì thể hiện trong đặc tả RDF Schema document Hơn thế nữa, đặc tả cung cấp một RDF Schema document để xác định các thuộc tính và các lớp được mô tả Ví dụ:
Trang 32xã hội) Giá trị của ssn là kiểu integer Tình trạng marital (hôn nhân) của Person là một trong những tình trạng: Married (lập gia đình), Divorced (ly dị), Single (độc thân), Widowed (góa)
Chúng ta sử dụng hằng số để định nghĩa thuộc tính maritalStatus và lớp MaritalStatus Sau đó, chúng ta dùng rdfs:range để chỉ rằng một thuộc tính maritalStatus chỉ có ý nghĩa khi nó có giá trị là một thực thể của lớp MaritalStatus Schema (giản đồ) định nghĩa số lượng các thực thể của lớp này
XML và RDF có những hình thức, mục đích, và vai trò trong viễn cảnh Semantic Web khác nhau, XML hướng đến cung cấp một cú pháp dễ sử dụng cho dữ liệu Web Với nó, chúng ta có thể mã hóa tất cả các kiểu dữ liệu và dùng chúng để trao đổi giữa các máy tính, sử dụng XML Schema để tạo ra luật cho cấu trúc dữ liệu Vì vậy XML trở thành ngôn ngữ nền tảng cho Semantic Web Ngày nay nhiều kỹ thuật sử dụng XML làm cú pháp thiết yếu
XML không giải thích trước về dữ liệu, vì vậy nó không đóng góp nhiều về khía cạnh ngữ nghĩa (semantic) của Semantic Web RDF cung cấp một mô hình chuẩn
để mô tả các dữ kiện về tài nguyên Web, cung cấp một số giải thích về dữ liệu RDF Schema mở rộng những giải thích này thêm
Tuy nhiên, để thực sự nhận biết được viễn cảnh Semantic Web, ta cần có thêm nhiều ngữ nghĩa về dữ liệu, những sự mở rộng & phát triển cao hơn là cần thiết Thực
sự đã có nhiều bước tiến triển theo khuynh hướng này - ví dụ, ngôn ngữ DAML+OIL (DARPA Agent Markup Language + Ontology Inference Layer) thêm các mô hình
Trang 33nguyên thủy (modeling primitive) mới và ngữ nghĩa hình thức (formal semantic) đối với RDF Schema
1.2.4 Ontology – từ vựng biểu diễn ngữ nghĩa tài nguyên web
1.2.4.1 Giới thiệu về Ontology
Các Ontology đóng vai trò then chốt trong việc cung cấp ngữ nghĩa mà máy có thể hiểu được cho các tài nguyên của 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 thức chúng liên kết với nhau Nó được nghiên cứu và phát triển bởi các nhà nghiên cứu về trí tuệ nhân tạo để mô tả một cách hình thức về một miền lĩnh vực nào
đó [4, 13, 25]
Ontology trở thành một lĩnh vực nghiên cứu phổ biến có mặt trong nhiều lĩnh vực từ xử lý ngôn ngữ tự nhiên, công nghệ tri thức, các hệ thống trao đổi, tích hợp thông tin cho đến biểu diễn và quản lý tri thức Ontology cung cấp và chia sẻ tri thức
về một domain, giúp dễ dàng giao tiếp giữa người và các hệ thống ứng dụng Ontology xây dựng để cung cấp các nguồn thông tin có ngữ nghĩa mà máy tính có thể xử lý và thao tác được nhưng đồng thời vẫn có thể giao tiếp được giữa người và máy tính
1.2.4.2 Khái niệm Ontology
Ontology là một thuật ngữ có nguồn gốc từ Triết học diễn tả các thực thể tồn tại trong tự nhiên và các mối quan hệ giữa chúng Ontology xuất hiện trong Công nghệ Thông tin, trong lĩnh vực Trí tuệ nhân tạo nhằm giải quyết vấn đề về chia sẻ và tái sử dụng tri thức Trong nhiều năm qua, đã xuất hiện nhiều khái niệm khác nhau về ontology của các tác giả Trong số những định nghĩa, định nghĩa của Gruber [20] được
tôi đánh giá là diễn tả đúng nhất về ontology: "An ontology is an explicit specification
of a conceptualization." Trong đó, thuật ngữ được giải thích cụ thể như sau:
"conceptualization" chỉ đến một mô hình trừu tượng của vài hiện tượng nào đó, dùng
để định danh các khái niệm có liên quan đến hiện tượng này "Explicit" chỉ các khái niệm và các ràng buộc được sử dụng đã được định nghĩa rõ ràng Một ontology sẽ cung cấp bộ "từ vựng" các thuật ngữ (term) và quan hệ dùng để mô hình hóa một domain
Trong khoa học máy tính và thông tin, ontology được định nghĩa là một biểu diễn hình thức cho tập hợp các khái niệm thuộc một lĩnh vực nào đó và quan hệ giữa những khái niệm này Nói cụ thể hơn, ontology cung cấp một bộ từ vựng chung dùng
để mô tả một lĩnh vực – nghĩa là một loại đối tượng hay khái niệm hiện hữu, cùng với các thuộc tính và quan hệ giữa chúng – và lời đặc tả cho nghĩa của những từ trong bộ
từ vựng Dựa vào độ chính xác của đặc tả này, khái niệm ontology bao gồm một số mô hình dữ liệu hay mô hình khái niệm, ví dụ, các bảng phân loại (classifications), từ điển chuyên đề (thesauri), lược đồ cơ sở dữ liệu (database schemas), lý thuyết được tiên đề hoá đầy đủ (fully axiomatized theories), v.v… Chúng thực sự là những phương tiện thiết thực để khái niệm hoá những thứ cần được biểu diễn theo định dạng của máy tính
Trang 341.2.4.3 Vai trò của Ontology
Những phân tích dưới đây cho thấy vai trò của Ontology trong các ứng dụng dựa trên Web ngữ nghĩa
Chia sẻ sự hiểu biết chung giữa các ứng dụng và con người với nhau: Nếu các hệ thống cùng chia sẻ chung một ontology bên dưới thì dữ liệu do con người nhập vào tại hệ thống này sau khi được xử lý thông qua ontology có thể được tổng hợp, phân tích tại một hệ thống khác và cung cấp thông tin cho người khác
Cho phép sử dụng lại tri thức về một lĩnh vực: Sau khi xây dựng một ontology cho một lĩnh vực, những người khác có thể tái sử dụng và mở rộng, làm giàu thêm cho nó Hoặc cũng có thể tích hợp những ontology có sẵn để mô tả nhiều phần của một ontology về một lĩnh vực lớn
Đưa ra các giả thiết rõ ràng về miền (giả thiết thuộc chuyên ngành): Việc sử dụng một ontology ở bên dưới thay vì dùng ngôn ngữ lập trình sẽ giúp dễ dàng thay đổi những giả định thuộc chuyên ngành khi kiến thức về lĩnh vực này của chúng ta thay đổi Nếu những giả định này được viết bằng ngôn ngữ lập trình thì sẽ gây khó hiểu và khó thay đổi, sửa chữa nhất là đối với những người không phải là chuyên gia lập trình
Phân tích và suy luận tri thức chuyên ngành: vì những thuật ngữ, khái niệm cũng như các mối quan hệ giữa chúng đề được khai báo, đặc tả trong ontology với cấu trúc có thể suy luận được theo ngữ nghĩa
1.2.4.4 Các thành phần của Ontology
Các ontology hiện nay đều có nhiều điểm tương tự về mặt cấu trúc, bất kể ngôn ngữ được dùng để biểu diễn Hầu hết các ontology đều mô tả các đối tượng (thể hiện), lớp (khái niệm), thuộc tính và các quan hệ
1.2.4.4.1 Cá thể
Cá thể (hay thể hiện) là thành phần cơ bản, "mức nền" của một ontology Các
cá thể trong một ontology có thể bao gồm các đối tượng rời rạc như con người, con thú, xe, nguyên tử, hành tinh, trang web, cũng như các đối tượng trừu tượng như con
số và từ (mặc dù có một vài khác biệt về ý kiến liệu các con số và từ là lớp hay là đối tượng) Nói đúng ra, một ontology không cần chứa bất cứ cá thể nào, nhưng một trong những mục đích chung của ontology là cung cấp một phương tiện để phân loại các đối tượng, ngay cả khi các đối tượng này không phải là một phần rõ ràng của ontology
1.2.4.4.2 Lớp
Lớp – khái niệm – có thể được định nghĩa theo cách bên ngoài hay bên trong Theo định nghĩa bên ngoài, chúng là những nhóm, bộ hoặc tập hợp các đối tượng Theo định nghĩa bên trong, chúng là các đối tượng trừu tượng được định nghĩa bởi giá trị của các mặt ràng buộc khiến chúng phải là thành viên của một lớp khác Lớp có thể phân loại các cá thể, các lớp khác, hay một tổ hợp của cả hai Một số ví dụ của lớp:
• Person, lớp của tất cả con người, hay các đối tượng trừu tượng có thể được mô
tả bởi các tiêu chuẩn làm một con người
Trang 35• Vehicle, lớp của tất cả xe cộ, hay các đối tượng trừu tượng có thể được mô tả bởi các tiêu chuẩn làm một chiếc xe
• Car, lớp của tất cả xe hơi, hay các đối tượng trừu tượng có thể được mô tả bởi các tiêu chuẩn làm một chiếc xe hơi
• Class, biểu diễn lớp tất cả các lớp, hay các đối tượng trừu tượng có thể được
mô tả bởi các tiêu chuẩn để làm một lớp
• Thing, biểu diễn lớp tất cả mọi thứ, hay các đối tượng trừu tượng có thể được
mô tả bởi các tiêu chuẩn để làm một thứ gì đó (và không phải không-là- gì cả)
Một lớp có thể gộp nhiều lớp hoặc được gộp vào lớp khác; một lớp xếp gộp vào lớp khác được gọi là lớp con (hay kiểu con) của lớp gộp (hay kiểu cha) Ví dụ, Vechicle gộp Car, bởi vì bất cứ thứ gì là thành viên của lớp sau cũng đều là thành viên của lớp trước Quan hệ xếp gộp được dùng để tạo nên một cấu trúc phân cấp các lớp, thông thường có một lớp tổng quát lớn nhất chẳng hạn Anything nằm ở trên cùng và những lớp rất cụ thể như 2002 Ford Explorer nằm ở dưới cùng Hệ quả cực kỳ quan trọng của quan hệ xếp gộp là tính kế thừa của các thuộc tính từ lớp cha đến lớp con
Do vậy, bất cứ thứ gì hiển nhiên đúng với một lớp cha cũng hiển nhiên đúng với các lớp con của nó Trong một số ontology, một lớp chỉ được cho phép có một lớp cha, nhưng trong hầu hết các ontology, các lớp được cho phép có một số lượng lớp cha bất
kỳ và trong trường hợp sau tất cả các thuộc tính hiển nhiên của từng lớp cha được kế thừa bởi lớp con Do đó một lớp cụ thể của lớp thú (HouseCat) có thể là một con của lớp Cat và cũng là một con của lớp Pet
1.2.4.4.3 Thuộc tính
Các đối tượng trong một ontology có thể được mô tả bằng cách liên hệ chúng với những thứ khác, thường là các mặt hay bộ phận Những thứ được liên hệ này thường được gọi là thuộc tính, mặc dù chúng có thể là những thứ độc lập Một thuộc tính có thể là một lớp hay một cá thể Kiểu của đối tượng và kiểu của thuộc tính xác định kiểu của quan hệ giữa chúng Một quan hệ giữa một đối tượng và một thuộc tính biểu diễn một sự kiện đặc thù cho đối tượng mà nó có liên hệ Ví dụ đối tượng Ford Explorer có các thuộc tính như:
• <có tên> Ford Explorer
• <có bộ phận> door (với số lượng tối thiểu và tối đa: 4)
• <có một trong các bộ phận> {4.0L engine, 4.6L engine}
• <có bộ phận> 6-speed transmission
Giá trị thuộc tính có thể thuộc kiểu dữ liệu phức; trong ví dụ này, động cơ liên
hệ chỉ có thể là một trong số các dạng con của động cơ, chứ không phải là một cái đơn
lẻ
Các ontology chỉ mang đầy đủ ý nghĩa nếu các khái niệm có liên hệ với các khái niệm khác (các khái niệm đều có thuộc tính) Nếu không rơi vào trường hợp này, thì hoặc ta sẽ có một phân loại (nếu các quan hệ bao hàm tồn tại giữa các khái niệm)
Trang 36hoặc một từ điển có kiểm soát Những thứ này đều hữu ích nhưng không được xem là ontology
• Ford Explorer được định nghĩa là một con của: Ford Bronco
Điều này cho ta biết Explorer là mô hình thay thế cho Bronco Ví dụ này cũng minh họa rằng quan hệ có cách phát biểu trực tiếp Phát biểu ngược biểu diễn cùng một sự kiện nhưng bằng một ngữ nghịch đảo trong ngôn ngữ tự nhiên
Phần lớn sức mạnh của ontolgy nằm ở khả năng diễn đạt quan hệ Tập hợp các quan hệ cùng nhau mô tả ngữ nghĩa của domain Tập các dạng quan hệ được sử dụng (lớp quan hệ) và cây phân loại thứ bậc của chúng thể hiện sức mạnh diễn đạt của ngôn ngữ dùng để biểu diễn ontology
Hình 1.15: Một Ontology biểu diễn quan hệ của xe cộ
superclass-of, hay ngược lại, "là dạng con của" – is-a-subtype-of – hay "là lớp con của" – is-a-subclass-of) Nó định nghĩa đối tượng nào được phân loại bởi lớp nào
Ví dụ, ta đã thấy lớp Ford Explorer là lớp con của 4-Wheel Drive Car và lớp 4- Wheel Drive Car lại là lớp con của Car
Sự xuất hiện của quan hệ "là lớp con của" tạo ra một cấu trúc phân cấp thứ bậc; dạng cấu trúc cây này (hay tổng quát hơn, là tập có thứ tự từng phần) mô tả rõ ràng cách thức các đối tượng liên hệ với nhau Trong cấu trúc này, mỗi đối tượng là "con" của một "lớp cha" (Một số ngôn ngữ giới hạn quan hệ là lớp con của trong phạm vi một cha cho mọi nút, nhưng đa số thì không như thế)
Một dạng quan hệ phổ biến khác là quan hệ meronymy, gọi là "bộ phận của", biểu diễn làm thế nào các đối tượng kết hợp với nhau đề tạo nên đối tượng tổng hợp
Ví dụ, nếu ta mở rộng ontology trong ví dụ để chứa thêm một số khái niệm như Steering Wheel (vô lăng), ta sẽ nói rằng "Vô lăng được định nghĩa là một bộ phận của Ford Explorer" vì vô lăng luôn luôn là một trong những bộ phận của xe Ford Explorer Nếu đưa quan hệ meronymy vào ontology này, ta sẽ thấy rằng cấu trúc cây đơn giản
Trang 37và nhẹ nhàng trước đó sẽ nhanh chóng trở nên phức tạp và cực kỳ khó hiểu Điều này không khó lý giải; một lớp nào đó được mô tả rằng luôn luôn có một thành viên là bộ phận của một thành viên thuộc lớp khác thì lớp này cũng có thể có một thành viên là
bộ phận của lớp thứ ba Kết quả là các lớp có thể là bộ phận của nhiều hơn một lớp Cấu trúc này được gọi là đồ thị chu trình có hướng
Ngoài những quan hệ chuẩn như "là lớp con của" và "được định nghĩa là bộ phận của", ontology thường chứa thêm một số dạng quan hệ làm trau chuốt hơn ngữ nghĩa mà chúng mô hình hóa Ontology thường phân biệt các nhóm quan hệ khác nhau Ví dụ nhóm các quan hệ về:
Ví dụ, trong lĩnh vực xe ô tô, ta cần quan hệ "được sản xuất tại" để cho biết xe được lắp ráp tại chỗ nào Như vậy, Ford Explorer được sản xuất tại Louisville Ontology có thể cũng biết được Louisville "tọa lạc tại" Kentucky và Kentucky "được định nghĩa là" một bang và "là bộ phận của" Hoa Kỳ Phần mềm sử dụng ontology này
sẽ có thể trả lời một câu hỏi như "những xe hơi nào được sản xuất tại Hoa Kỳ?"
1.2.4.5 Ngôn ngữ OWL
Từ những năm 90, nhiều ngôn ngữ ontology đã ra đời, những ngôn ngữ này xuất phát từ lĩnh vực Trí tuệ nhân tạo Chúng được gọi là những ngôn ngữ truyền thống (Traditional Ontology Language) để phân biệt với những ngôn ngữ mới hơn ra đời sau thuộc về nhóm ngôn ngữ đánh dấu ontology (Ontology Markup Language) CycL là một trong những ngôn ngữ ra đời đầu tiên phục vụ cho việc xây dựng ontology Cyc
Với sự phát triển nhanh chóng của Internet, những ngôn ngữ ontology với nền tảng là ngôn ngữ web ra đời Cú pháp của chúng dựa vào các ngôn ngữ đánh dấu (markup language) đã tồn tại sẵn đó là HTML, hay XML (những ngôn ngữ đánh dấu này vốn ra đời với mục đích không phải là thể hiện ontology mà được dùng để thể hiện
dữ liệu và trao đổi dữ liệu)
Trang 38Hình 1.16: Các ngôn ngữ đánh dấu ontology
SHOE do nhóm tác giả Luke và Hefin đề xuất có thể xem như là ngôn ngữ đánh dấu ontology đầu tiên Ngôn ngữ này được xây dựng dựa trên HTML, nhưng sử dụng các thẻ khác nhờ đó cho phép thêm ontology vào các tài liệu HTML (các thẻ này không được định nghĩa trong ngôn ngữ HTML nên những gì thêm vào sẽ không hiển lên trên trình duyệt web) Sau này SHOE được chuyển qua sử dụng trên nền XML
RDF được đề xuất bởi Lassila và Swick, ngôn ngữ này được phát triển tại W3C (World Wide Web Consortium) Đây là ngôn ngữ tạo ra các siêu dữ liệu (metadata) để
mô tả các tài nguyên web Sau đó, RDF Schema (RDFS) do Brickley và Guha đưa ra như là một bản mở rộng của RDF
Dựa trên RDF, lần lượt ba ngôn ngữ khác xuất hiện như là những ngôn ngữ mở rộng của RDF: OIL, DAML+OIL và OWL OIL ra đời năm 2000 do Horrocks và các đồng sự đề xuất, sau đó Horrocks và van Harmelen đưa ra DAML+OIL vào năm 2001 Cuối cùng là OWL, ra đời vào năm 2003 do Dean và Schreiber đề xuất Đây là kết quả của nhóm nghiên cứu Web-Ontology (WebOnt) do W3C thành lập vào năm 2001, mục tiêu của nhóm là nghiên cứu và phát triển một ngôn ngữ đánh dấu mới dành cho web ngữ nghĩa OWL có hầu hết các chức năng của DAML+OIL
OWL (The Web Ontology Language) là một ngôn ngữ đánh dấu dùng để xuất bản và chia sẻ dữ liệu trên Internet thông qua những mô hình dữ liệu gọi là "ontology" Ontology mô tả một lĩnh vực và diễn tả những đối tượng trong lĩnh vực đó cùng những mối quan hệ giữa các đối tượng này OWL là phần mở rộng về từ vựng của RDF và được kế thừa từ ngôn ngữ DAML+OIL Web ontology – một dự án được hỗ trợ bởi W3C OWL biểu diễn ý nghĩa của các thuật ngữ trong các từ vựng và mối liên hệ giữa các thuật ngữ này để đảm bảo phù hợp với quá trình xử lý bởi các phần mềm
OWL được xem như là một kỹ thuật trọng yếu để cài đặt cho Semantic Web trong tương lai OWL được thiết kế đặc biệt để cung cấp một cách thức thông dụng trong việc xử lý nội dung thông tin của Web Ngôn ngữ này được kỳ vọng rằng sẽ cho phép các hệ thống máy tính có thể đọc được thay thế cho con người Vì OWL được viết bởi XML, các thông tin OWL có thể dễ dàng trao đổi giữa các kiểu hệ thống máy tính khác nhau, sử dụng các hệ điều hành và các ngôn ngữ ứng dụng khác nhau Mục đích chính của OWL là sẽ cung cấp các chuẩn để tạo ra một nền tảng để quản lý tài sản, tích hợp mức danh nghiệp và để chia sẻ cũng như tái sử dụng dữ liệu trên Web OWL được phát triển vì nó có nhiều tiện lợi để biểu diễn ý nghĩa và ngữ nghĩa hơn so
Trang 39với XML, RDF và RDFS, và vì OWL ra đời sau các ngôn ngữ này, nó có khả năng biểu diễn các nội dung mà máy tính có thể biểu diễn được trên Web
OWL cung cấp 3 ngôn ngữ con với cấp độ diễn đạt tăng dần như sau:
OWL Lite hỗ trợ cho những người dùng chủ yếu cần một cây phân cấp và một
số đặc tính ràng buộc cơ bản
OWL DL hỗ trợ cho những người dùng muốn biểu đạt tối đa ngữ nghĩa OWL
DL bao gồm tất cả các cấu trúc của ngôn ngữ OWL với các giới hạn như là phân chia kiểu (một lớp không thể là một thể hiện hay là một thuộc tính)
OWL Full phục vụ cho người dùng muốn biểu đạt tối đa ngữ nghĩa và tính tự
do trong cấu trúc của RDF mà không có bất kỳ sự đảm bảo nào trong tính toán Ví dụ, trong OWL Full, một lớp có thể lớp vừa là một tập các thể hiện lại vừa có thể là một thể hiện
1.2.4.6 Các bước thiết kế một Ontology
Hiện nay chưa có một quy trình phát triển ontology thống nhất trong cộng đồng, để phát triển các ontologies Trong luận văn tôi áp dụng một quy trình được áp dụng tương đối phổ biến hiện nay là quy trình phát triển gồm 7 bước [28] của nhóm tác giả Natalya F Noy and Deborah L McGuinness thuộc tổ chức Stanford Center for Biomedical Informatics Research đưa ra (nhóm phát triển phần mềm Protege để 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 bước này giống như những bước đặc tả khác, đặc tả ontology bắt đầu bằng việc trả lời những câu hỏi mang tính phân tích để nhận diện chính xác các yêu cầu Thông thường, các yêu cầu đối với một hệ thống ontology là mô tả lĩnh vực quan tâm nhằm phục vụ cơ sở tri thức trong việc giải quyết những mục đích chuyên biệt Do
đó những câu hỏi này thường là:
Ontology cần mô tả lĩnh vực, phạm vi nào?
Ontology phục vụ cho mục đích chuyên 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ụ cho đối tượng nào?
Ai sẽ là người xây dựng, quản trị ontology?
Bước 2: Xem xét việc kế thừa (sử dụng lại) các ontology có sẵn
Đây là bước thường được sử dụng để giảm thiểu công sức xây dựng một ontology Bằng cách kế thừa các ontology tương tự có sẵn, người xây dựng có thể thêm hoặc bớt các lớp, quan hệ giữa các lớp, thực thể…để chỉnh sửa tuỳ theo mục đích của mình Ngoài ra việc sử dụng lại các ontology có sẵn cũng rất quan trọng khi cần sự tương tác giữa các ứng dụng khác nhau Vì các ứng dụng sẽ 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 hoặc thống nhất thông tin
Để xây dựng được một ontology mới bằng cách kế thừa các hệ thống có sẵn sẽ
là một bài toán rất phức tạp, đó là trộn các ontology Như chúng ta biết, tên các khái niệm được định nghĩa trong các ontology này có thể giống nhau trong khi chúng được