- Giới thiệu
XML là siêu ngôn ngữ (metalanguage) thông dụng dành cho vệc định nghĩa markup. Nó cung cấp một framework chung và tập các công cụ như parsers dành cho việc trao đổi dữ liệu và các siêu dữ liệu (metadata) giữa các ứng dụng. Tuy nhiên, XML không cung cấp bất kỳ ý nghĩa nào để nói về “ngữ nghĩa” của dữ liệu. Ví dụ, không hề có một định hướng về mặt ngữ nghĩa nào liên quan tới việc lồng các thẻ (tags) với nhau mà hoàn toàn tùy thuộc vào cách mà mỗi ứng dụng thông dịch. Ví dụ, chúng ta có phát biểu:
David Billington is a lecturer of Discrete Mathematics.
Có nhiều cách để biểu diễn phát biểu này trong XML, chẳng hạn
<course name="Discrete Mathematics">
<lecturer>David Billington</lecturer>
</course>
Hoặc
<lecturer name="David Billington">
<teaches>Discrete Mathemtatics</teaches>
</lecturer>
Hoặc:
<teachingOffering>
<lecturer>David Billington</lecturer>
<course>Discrete Mathematics</course>
</teachingOffering>
Hai cách biểu diễn đầu tiên có thứ tự lồng các tags trái ngược nhau song chúng vẫn diễn đạt cùng một thông tin. Vì vậy, không có một tiêu chuẩn nào quy định ý nghĩa đối với việc lồng thẻ.
Mặc dù thường được gọi là “ngôn ngữ” nhưng RDF thực chất là một mô hình dữ liệu (data – model). Nội dung cơ bản của nó chính là bộ ba object-attribute-value hay còn gọi là một statement. Ví dụ như câu ở trên về Billington là một phát biểu. Dĩ nhiên, một mô hình dữ liệu trừu tượng cần một cấu trúc cú pháp để biểu diễn và truyền đạt, do đó RDF có cú pháp hoàn toàn tương tự như XML. Chính vì vậy, nó thừa hưởng mọi ưu thế, lợi ích từ XML. Tuy nhiên, cũng cần biết rằng vẫn tồn tại những cú pháp khác để biểu diễn RDF, do đó cú pháp dựa trên nền XML không phải là thành phần tối cần thiết trong mô hình RDF.
RDF độc lập với miền ứng dụng (domain – independent), tức là không hề có sự giả định trước nào về một miền ứng dụng đặc biệt nào được đưa ra. Nó hoàn toàn tùy thuộc vào người dùng để định nghĩa từ vựng (terminology) trong một lược đồ ngôn ngữ gọi là RDF Schema (RDFS). Gọi là RDF Schema thực sự là không chính xác vì nó gợi lên rằng RDF Schema có mối quan hệ với RDF tương tự như là XML Schema với XML, nhưng thực sự không phải vậy. XML Schema ràng buộc cấu trúc của tài liệu XML trong khi đó RDF Schema định nghĩa từ vựng sử dụng trong các mô hình dữ liệu RDF. Trong RDFS, chúng ta có thể định nghĩa các từ vựng, chỉ ra loại thuộc tính nào được dành cho loại đối tựơng nào và những giá trị nào mà chúng có thể nhận, cũng như mô tả mối quan hệ giữa các objects.Ví dụ:
Lecturer is a subclass of academic staff member.
Câu này có nghĩa là tất cả các “lecturer” đều là “academic staff member”. Điều đáng chú ý ở đây đó là đã có một ý nghĩa mang tính định hướng được gán với “is a subclass of” tức là đã xuất hiện mối quan hệ “có hướng”. Lúc này, nó không còn phụ thuộc vào các ứng dụng khi biên dịch khái niệm này. Ý nghĩa mang tính định hướng này phải được “quan tâm” bởi các phần mềm xử lý RDF. Nhờ khả năng “điều chỉnh” tính ngữ nghĩa của bất kỳ thành phần, RDF/RDFS cho phép chúng ta mô hình hóa một miền ứng dụng riêng.
Ví dụ sau minh họa tính quan trọng của RDF Schema:
<academicStaffMember>Grigoris Antonio</academicStaffMember>
<professor>Michael Maher</professor>
<course name="Discrete Mathematics">
<isTaughtBy>David Billington</isTaughtBy>
</course>
Giả sử chúng ta cần tìm tất cả các “academic staff members”, khi đó, biểu thức XPath sẽ là:
//academicStaffMember
Kết quả chỉ là Grigoris Antoniou. Tuy nhiên trong tình huống này, câu trả lời này không thỏa mãn về mặt ngữ nghĩa. Với con người, kết quả này phải bao gồm cả Michael Maher và David Billington bởi vì:
- Mọi “professor” đều là “academic staff member” (bởi vì “professor is a subclass of academicStaffMember”).
- Các “Courses” chỉ được giảng dạy bởi các “academic staff member”
Loại thông tin này tạo ra việc sử dụng mô hình ngữ nghĩa cho các miền ứng dụng riêng biệt, và không thể được hiện thực với XML hay RDF, tuy nhiên loại ngữ nghĩa điển hình này được khai báo trong RDF Schema. Theo đó, RDFS tạo ra thông tin mang tính ngữ nghĩa mà máy tính có thể truy cập được theo như viễn cảnh mà Semantic Web vạch ra.