Docstoc

ontology

Document Sample
ontology Powered By Docstoc
					  Chương 1

 Giới Thiệu
1.1 Web có Ngữ Nghĩa

Tháng 12/1991, tại hội nghị Hypertext ‟91 ở San Antonio, lần đầu tiên Tim Berners-Lee đưa ra
khái niệm World Wide Web. Phát minh này có thể được xem là cột mốc làm thay đổi cách giao tiếp
của con người với dữ liệu trên Internet, kéo theo sự ra đời của các trình duyệt Web như Mosaic
(1993) hay Netcape (1995).. Thay cho các thao tác phức tạp bằng dòng lệnh, con người đã có thể
truy cập các hình ảnh đồ họa, di chuyển giữa các trang Web chỉ bằng một cú click chuột. World
Wide Web đã bùng nổ ngay sau đó. Từ số lượng khiêm tốn ban đầu, hàng triệu trang Web ra đời
đã làm cho Internet trở thành một kho dữ liệu khổng lồ và hỗn độn. Hệ lụy kéo theo là việc tìm
kiếm thông tin trên Web cũng trở nên khó khăn hơn. Con người thường xuyên phải đối đầu với
một lượng lớn những thông tin không hợp lý hoặc không liên quan được trả về từ kết quả tìm
kiếm. Nguyên nhân lý giải cho thực tế trên xuất phát từ chính sự đơn giản của Web hiện tại, đã cản
trở sự phát triển thông tin của nó. Trong mô hình này, các máy tính chỉ làm nhiệm vụ gởi nhận dữ
liệu và thể hiện thông tin dưới dạng thô mà chỉ con người mới đọc hiểu được. Kết quả tất yếu là
chính con người phải làm nhiệm vụ suy luận, tổng hợp và rút trích mọi thông tin mình cần.

Điều đó đã đặc ra thách thức làm sao để khai thác thông tin trên Web một cách hiệu quả, mà cụ thể
là làm thế nào để máy tính có thể trợ giúp xử lý tự động được chúng. Muốn vậy, Web phải có khả
năng mô tả các sự vật theo cách mà máy tính có thể “hiểu” được. Động từ “hiểu” ở đây có ý nghĩa
hạn chế. Trong điều kiện hiện tại, nó dùng để chỉ khả năng của máy tính có thể phân tích cấu trúc
của dữ liệu, xác định xem dữ liệu đó thuộc loại nào và từ đó có các hành động thích hợp [1]. Lấy ví
dụ, khi có yêu cầu tìm kiếm với từ khóa “Bill Clinton”, máy tính mà cụ thể là ứng dụng chạy trên
máy tính cần thể hiện các kết quả cho biết Clinton là cựu tổng tổng thống Mỹ, chứ không phải tổng
thống Mỹ hiện tại hay một người có tên Bill Clinton nào khác.

Thách thức trên đã thúc đẩy sự ra đời của ý tưởng “Web có ngữ nghĩa”, thế hệ tiếp theo của Web
mà lộ trình của nó đã được Tim Berners-Lee phát thảo từ năm 1998. Theo Lee, “Web có 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” [2]. Theo đó, mục tiêu của Web
ngữ nghĩa là phát triển các chuẩn chung về công nghệ, cải tiến Web hiện tại bằng cách thêm vào
một lớp ngữ nghĩa để máy tính có thể hiểu được thông tin trên Web nhiều hơn, tăng cường khả
năng rút trích thông tin một cách tự động, tích hợp dữ liệu..

Có thể hình dung một số lợi ích của Web ngữ nghĩa so với Web hiện tại qua một số điểm sau:
    Máy tính có thể hiểu được thông tin trên Web: Web ngữ nghĩa định nghĩa các khái niệm và
       bổ sung quan hệ dưới dạng máy tính có thể hiểu được. Do đó, việc tìm kiếm, đánh giá, xử
       lý, tích hợp thông tin có thể được tiến hành một cách tự động.

GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   1
      Thông tin được tìm kiếm nhanh chóng và chính xác hơn: với Web ngữ nghĩa, máy tính có
       thể xác định một thực thể thuộc lớp hay thuộc tính cụ thể nào dựa trên ngữ cảnh chứa nó.
       Do đó thu hẹp không gian tìm kiếm và cho kết quả nhanh, chính xác hơn.
      Khả năng suy luận thông minh: dựa vào các luật suy diễn trên cơ sở tri thức về các thực
       thể, máy tính có khả năng sinh ra những kết luận mới. Ứng dụng Web tương lai có thể sẽ
       trả lời được những câu hỏi kiểu như: “Tổng thống thứ 42 của Hoa Kỳ đã bình thường hóa
       quan hệ với nước nào vào năm 1995?”.
      Dữ liệu liên kết động: thay thế cách liên kết sử dụng hyperlink tĩnh trong Web cũ, Web ngữ
       nghĩa liên kết dữ liệu từ nhiều nguồn khác nhau một cách hiệu quả hơn dựa trên định danh
       của tài nguyên (URI) và quan hệ giữa chúng. Cách liên kết này đôi khi còn được gọi là liên
       kết bằng siêu dữ liệu (meta data).



1.2 Kiến Trúc Web Ngữ Nghĩa

                                                  Để có được những khả năng trên, Web ngữ
                                                  nghĩa cần một hạ tầng chặt chẽ với nhiều lớp hỗ
                                                  trợ bên dưới. Mỗi lớp có vai trò nhất định: ở
                                                  dưới cùng là lớp Unicode và URI nhằm đảm
                                                  bảo việc sử dụng tập ký hiệu quốc tế và xác
                                                  định các tài nguyên trên mạng. Kế đến là lớp
                                                  XML (Extensible Markup Language), cung cấp
                                                  cú pháp chung nhưng không ràng buộc về ngữ
                                                  nghĩa cho các tài liệu có cấu trúc, làm cơ sở cho
                                                  sự trao đổi dữ liệu trên Web. Bên trên, lớp
                                                  XML SCHEMA định nghĩa cấu trúc các tài liệu
                                                  XML, cho phép mở rộng XML bằng các kiểu
                                                  dữ liệu mới. Tiếp theo XML Schema là lớp
       Hình 1.1 Kiến trúc Web ngữ nghĩa           RDF (Resource Description Framework), cung
             (nguồn: www.w3.org)                  cấp cấu trúc mô tả các đối tượng hay tài nguyên
trên mạng và quan hệ giữa chúng. RDF cho phép gán kiểu cho các tài nguyên và làm nền tảng cho
Ontology sẽ được nói trong phần tiếp theo. RDF và Ontology chính là hai thành phần quan trọng
nhất trong kiến trúc Web ngữ nghĩa. Kế đến, lớp RDF SCHEMA cung cấp một phương tiện để đặc
tả các từ vựng mô tả tính chất và quan hệ giữa các tài nguyên RDF. Lớp tiếp theo trong mô hình
phân cấp này là ONTOLOGY định nghĩa các từ vựng dùng để mô tả các thuộc tính, lớp trong một
miền ngữ vựng nhất định. Cuối cùng, Lớp LOGIC cung cấp các luật suy diễn, trong khi PROOF sử
dụng các luật của lớp Logic để kiểm tra tính đúng đắn của một suy diễn nào đó. Hai lớp trên trong
kiến trúc đã thể hiện rõ hơn góc độ ngữ nghĩa và cung cấp cho mô hình này khả năng suy luận
thông minh. Lớp TRUST hiện vẫn đang trong giai đoạn phát triển, nhằm mục đích đánh giá mức
độ tin cậy và quyết định có nên tin tưởng các bằng cớ từ một kết quả suy luận nào đó hay không.
Thông thường Trust chính là một hàm lượng giá áp dụng trên một tập các thông tin, thông tin nào
có giá trị lượng giá cao hơn sẽ được chọn cho một mục đích nào đó, ví dụ để thể hiện trong kết quả
tìm kiếm chẳng hạn.



GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   2
1.3 Thực Thể có Tên

Theo Thomas B. Passin, tác giả cuốn sách “Explorer‟s guide to the Semantic Web”, thì Web ngữ
nghĩa là phạm trù không dễ nắm bắt vì nó liên quan đến nhiều vấn đề phức tạp như logic, ngữ
nghĩa, trí tuệ nhân tạo.. Nhưng sẽ đơn giản hơn nếu chúng ta xuất phát từ khái niệm thực thể có
tên. Thực thể có tên là con người, tổ chức, nơi chốn và những đối tượng khác được tham khảo đến
bằng tên [3]. Thực thể có tên khác về mặt bản chất lẫn ngữ nghĩa với các từ ở chỗ nó được dùng để
chỉ các cá thể riêng biệt còn các từ được dùng để chỉ các khái niệm, quan hệ, thuộc tính nói chung.
Lấy ví dụ trong câu: “Washington là tổng thống đầu tiên của nước Mỹ” thì Washington là thực thể
có tên trong khi “tổng thống”, “nước” là các từ vựng.

Trong một tài liệu, các thực thể có tên tạo nên một phần quan trọng trong ý nghĩa của tài liệu đó.
Do đó, nhúng ngữ nghĩa vào Web ngoài việc phân tích cú pháp các câu, ngữ nghĩa cho từ vựng đòi
hỏi phải có bước xác định ngữ nghĩa cho các thực thể có tên. Từ “ngữ nghĩa” ở đây cũng có ý
nghĩa hạn chế, ám chỉ việc một thực thể thuộc lớp hay thuộc tính cụ thể nào đã được định nghĩa từ
trước. Đây là một việc phức tạp bởi ngữ nghĩa cho các thực thể có tên đòi hỏi tri thức trong thế
giới thực. Nếu một thực thể không có trong cơ sở tri thức thì không thể có kết luận nào khác về
thực thể và xem như nó không có ngữ nghĩa.

Bên cạnh vấn đề có liên quan đến cơ sở tri thức đã nói ở trên, trong thực tế một thực thể có thể có
nhiều tên khác nhau trong khi các thực thể khác nhau lại có thể có cùng tên. Điều này gây nhập
nhằng trong việc suy luận một thực thể chính xác thuộc lớp hay thuộc tính nào. Và do đó, làm ảnh
hưởng lớn đến kết quả suy luận. Trong tình huống này, Web ngữ nghĩa phải có khả năng phân tích
ngữ cảnh chứa thực thể một cách tự động, cần thiết có thêm một vài chỉ dẫn trực tiếp từ con người
để thu giảm không gian tìm kiếm và tăng mức độ tin cậy đối với kết quả suy luận. Trở lại ví dụ
trên, cùng một tên “Washington” nhưng có thể dùng để chỉ tổng thống thứ nhất của Hoa Kỳ, cũng
có thể được dùng để chỉ thủ đô của nước này hoặc một người có cùng tên nào khác. Cách thông
thường nhất là ứng dụng sẽ hỏi người dùng muốn thể hiện kết quả ở trường hợp nào. Đôi khi, cũng
có thể sử dụng các hàm lượng giá để dự đoán thực thể có khả năng rơi vào trường hợp nào mà
người dùng yêu cầu.

1.4 Tài Nguyên trên Web

Thuật ngữ “tài nguyên” hay “resource” trên Web là một phạm trù rộng lớn dùng để chỉ mọi đối
tượng có thể tìm thấy trên Web như khái niệm, từ vựng, thực thể, tính chất và quan hệ giữa các đối
tượng.. Tài nguyên trên Web cũng chính là dữ liệu của trang Web đó, và là mục tiêu nghiên cứu
của Web ngữ nghĩa.

Tài nguyên trên Web là khái niệm rộng hơn thực thể có tên. Và cũng như thực thể có tên, cùng một
tài nguyên nhưng có thể được đặc tên khác nhau trong khi có nhiều tài nguyên bản chất khác nhau
nhưng lại có cùng tên. Điều đó nảy sinh yêu cầu định danh mỗi tài nguyên bằng một định danh duy
nhất. Các tài nguyên khác nhau sẽ có định danh khác nhau. Định danh này được gọi là một URI
(Uniform Resource Identifier). Một ví dụ về URI: www.somesite.com/rdf-syntax-ns#Statement.
Trong đó, Statement là một tài nguyên thuộc lớp rdf-syntax-ns được tìm thấy trên trang Web
www.somesite.com. Ký tự „#‟ được gọi là một identifier fragment (mẩu định danh).

GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   3
  Chương 2

 RDF – Cấu Trúc Biểu Diễn
 Tri Thức
2.1 RDF(Resource Description Framework)

2.1.1 Giới thiệu RDF
RDF (Resource Description Framework) hay khung mô tả tài nguyên, là nền tảng cho việc biểu
diễn dữ liệu trong lĩnh vực Web có ngữ nghĩa. Thông tin biễu diễn theo mô hình RDF là một
phát biểu (statement) ở dạng cấu trúc bộ ba (triple) vì nó gồm ba thành phần cơ bản là:
(subject,predicate,object). Trong đó:
      Subject chỉ đối tượng đang được mô tả đóng vai trò là chủ thể.
      Predicate (còn được gọi là property) là kiểu thuộc tính hay quan hệ.
      Object là giá trị thuộc tính hay đối tượng của chủ thể đã nêu. Object có thể là một giá trị
       nguyên thủy (literal) như số nguyên, chuỗi,..hoặc cũng có thể là một tài nguyên.
Ví dụ sau minh họa cho một triple :

        subject          object
                                       Hình 2.1 - Object có thể là tài nguyên hoặc giá trị nguyên
                                       thủy, nhưng subject và predicate thì bắt buộc phải là các tài
       (person-1 , name , “An” )       nguyên.

                  predicate


Đây là phát biểu mô tả một chủ thể person-1 có kiểu thuộc tính name với giá trị là An.Phát
biểu có thể được tạm hiểu là: person-1 có tên An.

2.1.2 RDF và hệ dữ liệu truyền thống
Trong các hệ cơ sở dữ liệu truyền thống, thông tin được lưu trữ dưới dạng bảng. Trong đó, mỗi
hàng là một bộ (tuple) không có giới hạn về số lượng thành phần. Ví dụ :
         Person ID Name Phone        Email          City District
         Person-1  An   0909 213 456 an@gmail.com   HCM TB
         Person-2  Bình 0979 831 054 binh@gmail.com HCM PN

       Tuple: (Person-2, “An”, “0979213456”, an@gmail.com, “HCM”, “TB”)

Ngược lại, lưu trữ dữ liệu dưới dạng RDF lại đòi hỏi các bảng phải được chia nhỏ để lưu trữ theo
đúng cấu trúc bộ ba. Ví dụ:

GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                           4
          Person ID Name
          Person-1   An
          Person-2   Bình
       Triple : (Person-1,Name,“An”)
          Person ID       Phone
          Person-1        0909 213 456
          Person-2        0979 831 054

       Triple : (Person-1,Phone,“0909213456”)

Có thể liệt kê một số ưu điểm của việc lưu trữ dữ liệu RDF so với dữ liệu truyền thống là:
      Tổ chức dữ liệu đơn giản, đồng nhất nên thông tin dễ dàng thêm bớt chỉnh sửa.
      Cấu trúc bộ ba giúp cho thông tin dễ truy xuất bởi các hệ thống suy luận, tìm kiếm ngữ
       nghĩa. Cũng nhờ vậy mà những bộ xử lí RDF có thể suy luận ra những thông tin mới
       không có trong hệ dữ liệu.
      Chia sẻ dữ liệu trên mạng dễ dàng nhờ sự đồng nhất,..


2.2 Trực Quan Hóa RDF

Đồ thị là cách rất sinh động đễ biểu diễn thông tin RDF. Dùng đồ thị chúng ta cảm thấy thông tin
thể hiện rõ ràng và dễ hình dung hơn. Một đồ thị biểu diễn RDF bao gồm các nút (đỉnh) và các
cung. Mỗi nút có thể là một tài nguyên (resource) hoặc giá trị nguyên thủy (literal), trong khi đó
các cung tượng trưng cho một predicate. Ta có thể ánh xạ một bộ ba trong ví dụ trên sang lược
đồ như sau :
                         Phone
                                                               Hình 2.1 - Person-1 có điện
       Person-1                                0909213456      thoại là 0909213456
  Triple: (Person-1,Phone,“0909213456”)

Khi biễu diễn bằng đồ thị, ta thường dùng hình tròn hoặc eclipse để biểu diễn các tài nguyên, còn
hình chữ nhật biểu diễn cho giá trị nguyên thủy. Ở ví dụ trên, giá trị nguyên thủy là một chuỗi
các kí tự “0909213456”. Bây giờ giả sử thuộc tính Phone của ví dụ trên có giá trị là một tài
nguyên có URI là www.somesite.com/rdf-Phone-ns#phone_1 chẳng hạn và URI này được gán
cho một tên là Phone_1. Ta biểu diễn lại bằng đồ thị như sau

                          Phone
                                                                Hình 2.2 - Biểu diễn
        Person-1                                 Phone_1        RDF bẳng đồ thị



2.2.1 Chủ thể với nhiều thuộc tính
Nếu một một chủ thể được mô tả bởi nhiều phát biểu với các thuộc tính khác nhau. Chẳng hạn
chủ thể Person-1 có các thuộc tính Name, Phone, Mail, City, District… thì ta biểu diễn như sau :


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                    5
                                                                0909213456
                               Phone
                                                                                        Hình 2.3 - Minh họa cho chủ
                                          Name                       An
                                                                                        thể có nhiều thuộc tính.
        Person-1
                                      Email                     an@gmail.com

        District                   City
                                                                     HCM
                    TB

Ở ví dụ trên, ta không thấy City và District có mối quan hệ với nhau. Nhưng trên thực tế thì
ngược lại, một người sống ở một nơi nào đó trong thành phố thì tương ứng phải ở một quận nào
đó. Để khắc phục điều này, ta thêm vào đồ thị một nút nữa có hai thuộc tính City, District.

                                                                           0909213456
                                             Phone
                                                  Name                       An
                    Person-1
                                                    Email
                                                                           an@gmail.com
                         Adrress                                                               Hình 2.4 - Minh họa
                                                                                               về b-node, nút này
                                                              City                             tượng trưng cho địa
                                                                                  HCM
                                                                                               chỉ của person-1.

                                                   District
                                                                             TB

Person-1 có Adrress là một tài nguyên không định danh(nút trống), tài nguyên này lại là chủ thể
của hai phát biểu khác. Bây giờ ta sẽ thêm một thuộc tính nữa cho nút trống này để xác định kiểu
cho tài nguyên đó (xem hình 2.5).

                                                                               HCM
                   Person-1
                                                                                              Hình 2.5 - Gán kiểu
                                                                                              address cho b-node
                                            type                               TB


                                     adrress
2.2.2 Một số nút đặc biệt
Có nhiều trường hợp chúng ta muốn nói về một tài nguyên mà bản thân nó là một tập hợp gồm
nhiều tài nguyên khác. Mô hình RDF có định nghĩa ba kiểu tài nguyên đặc biệt để hỗ trợ những
trường hợp này :
      Bag: chứa đựng tập tài nguyên không cần thứ tự.
      Sequence : chứa đựng tập tài nguyên có thứ tự.
      Alternative : chứa đựng các lựa chọn cho một tài nguyên.
Xét một ví dụ, một hiệu sách có bán các loại sách như lịch sử, toán… ta có thể dùng kiểu tài

GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                                          6
nguyên bag để đại diện cho tập các loại sách, và các loại sách này không cần phải theo thứ tự.
Các thuộc tính của bag được gán các nhãn là rdf :_1, rdf :_2,…


                            sell                    rdf:_1                               Hình 2.6 - Tập
           BookShop                                                          Math        các loại sách
                                            bag                                          trong nhà sách.

                                                    rdf:_2
                                                                             History



Để mô tả một tài nguyên là bóng đèn có thuộc tính là trạng thái mà có thể có một trong hai giá trị
mở hoặc đóng , ta dùng kiểu tài nguyên alternative để biểu diễn.


              Light                                                              On         Hình 2.7 - Hai
                                   state                        rdf:_1                      lựa chọn cho
                                                                                            trạng thái của
                                                  alternative
                                                                                            bóng đèn.

                                                                rdf:_2
                                                                                  Off



Bây giờ chúng ta sẽ đi đến một loại tài nguyên rất đặc biệt rdf:statement. Đây là loại tài
nguyên dùng để mô tả về một bộ ba. Xem các ví dụ trước ta thấy rằng một bộ ba không thể là
chủ thể của một phát biểu cũng như không thể là giá trị của một thuộc tính nào đó bởi vì bộ ba
không phải là một tài nguyên. Để làm điều này ta sẽ tạo ra một tài nguyên có các thuộc tính là
subject, predicate, object. Tài nguyên mới tạo ra sẽ tượng trưng cho một phát biểu, và giờ đây nó
có thể làm chủ thể hoặc giá trị thuộc tính cho bất kì phát biểu nào. Tài nguyên mới được tạo ra sẽ
được gán kiểu rdf :Statement để hệ thống hiểu rằng nó là một phát biểu.

Ta có thể tạm dịch đồ thị hình 2.8 bên dưới sang ngôn ngữ tự nhiên như sau: Có một
thứ gì đó có kiểu là rdf:statement , có chủ thể là Person-1 với thuộc tính Name có
giá trị là ’An’ . Với cách biễu diễn này, từ đây về sau mỗi khi ta muốn có một phát
biểu về bộ ba (person-1,name,An) thì chỉ cần tạo một nút có cung nố i đến nút
trống ở hình trên.


                                                  type                   rdf:statement
           Person-1                                                                        Hình 2.8 - Nút
                                                                                           trống tượng
                      subject                        predicate                             trưng cho một
                                                                          Name             phát biểu.

                                                object

                                           An


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                                7
2.3 Chia sẻ dữ liệu RDF
Như chúng ta đã biết, mô hình RDF đã thể hiện được nhiều ưu điểm trong việc biễu diễn thông
tin. Chính vì vậy cần phải có một cách thức chung để truyền tải dữ liệu RDF trên internet. Đó là
RDF/XML syntax do W3C đưa ra năm 1999. Đây là một ngôn ngữ dựa trên XML, nó bao gồm
một tập các quy tắc và từ vựng để hỗ trợ cho biễu diễn thông tin RDF.

2.3.1 RDF/XML syntax
RDF/XML có thể gây khó khăn cho người học bởi vì nó có thể có nhiều cách khi cùng biểu diễn
một phát biểu, và một phần là do URI dùng để định danh cho một tài nguyên thì tương đối dài và
khó đọc, khó viết. Tuy nhiên vấn đề này có thể được xử lí bằng cách dùng XML namespace.

Khai báo namespace
Việc sử dụng namespace giúp cho tài liệu RDF ngắn gọn và dễ đọc hơn đối với người thiết kế.
Chẳng hạn như ta có một địa chỉ là „http://www.semantic.vn/2009/01/rdf-syntax-ns#‟.
Nếu ta gán nó cho một namespace ví dụ như xmlns:rdf, thì từ nay về sau ta chỉ việc dùng
rdf:phone thay cho http://www.semantic.vn/2009/01/rdf-syntax-ns#phone.

Định danh một chủ thể
Chúng ta dùng cú pháp sau để biểu diễn một triple : {subject,predicate,object}
Ví dụ :

{person-1, name, An}
{person-1, phone, 0909213456}
 Và biểu diễn ví dụ trên trong tài liệu RDF :
<rdf :RDF xmlns:rdf=„http://www.semantic.vn/2009/01/rdf-syntax-ns#‟>
      <rdf :Description rdf:about= „#person-1‟>
            <rdf :Name rdf:literal= „An‟>
            <rdf :Phone rdf:literal= „0909213456‟>
      </rdf :Description>
</rdf :RDF>

 Thuộc tính rdf :about dùng để chỉ định URI của một resource, còn #person-1 cho ta biết rằng
person-1 đã được khai báo trong cùng tài liệu này (trong ví dụ trên chúng ta không chỉ ra person-
1 đã được khai báo ở đâu). Nếu person-1 không được khai báo thì chúng ta phải đưa URI của nó
vào để sử dụng hoặc là dùng namespace để đại diện cho URI đó. Chúng ta dùng thuộc tính
rdf :ID để gán định danh cho một tài nguyên :

<rdf :Description rdf :ID= „person-1‟>
      <rdf :type   rdf :resource=  „http://www.semantic.vn/2009/01/rdf-syntax-
ns#person-1‟/>
</rdf :Description>

Ở đây, tài nguyên http://www.semantic.vn/2009/01/rdf-syntax-ns#person-1 đã được định
danh bởi person-1. Thuộc tính ID giúp cho chúng ta sử dụng tài nguyên person-1 mà không phải
dùng lại URI của nó dài dòng mà phức tạp.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   8
2.4 Ứng dụng của RDF

2.4.1 Trình duyệt Mozilla
Đây là một trình duyệt rất mềm dẻo trong cấu hình hệ thống. Những tập tin cấu hình thường
được lưu trữ ở dạng XML và dùng mô hình RDF để lưu trữ thông tin cấu hình của người dùng.
Mozilla cũng dùng RDF để mô tả thông tin về email và các thành phần của mail.

2.4.2 RSS (Rich Site Summary)
Đây là một công nghệ dùng trong blog. Nó giúp cho các blog được biết đến rất nhanh bởi các
thông tin mới trong blog sẽ luôn được RSS cập nhật và truyền tải nhanh chóng trên mạng. Các
thông tin lưu trữ theo mô hình RDF, các blog liên kết với nhau, mỗi khi có tin tức mới thì bộ xử
lí RDF sẽ suy dẫn ra các tin tức này và truyền tải đi đến các blog khac. Nhờ vậy mà tin tức lan tải
rất nhanh trên blog.

2.4.3 Hệ thống thư mục Dublin Core
Đây là một hệ thống giúp mô tả các thư mục siêu dữ liệu. Nó có ý nghĩa rất thiết thực bởi vì giúp
cho mọi người có thể xây dựng một hệ thống tài liệu cho riêng mình theo cách phân cấp. Dublin
Core có thể được xây dựng theo nhiều cách, một trong số đó là dùng RDF.

2.4.4 Haystack : Quản lí thông tin cá nhân
Đây là một đồ án của phòng nghiên cứu Khoa Học Máy Tính của học viện công nghệ
Massachusets. Nó hỗ trợ cho người dùng xây dựng và quản lí các thông tin cá nhân như là email,
web page, tài liệu, lịch, và nhiều thông tin khác…một cách có phân loại tốt. Giúp cho người dùng
có thể tìm lại tài liệu, thông tin một cách nhanh chóng, hiệu quả. Với cách hoạt động như vậy,
RDF có vẻ là lựa chọn rất tốt. Bởi vì RDF là nền tảng cho việc tìm kiếm ngữ nghĩa, thông tin
nhanh chóng và hiệu quả. Haystack lúc mới phát hành còn hoạt động hơi chậm và vẫn đang được
đầu tư phát triển.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                     9
  Chương 3

 Ontology – Mô Hình Phân Loại
 Tri Thức
3.1 Cơ Bản về Sự Phân Loại

Như đã nói, nhúng ngữ nghĩa vào Web không thể thiếu việc xác định ngữ nghĩa cho các tài
nguyên trên Web, mà cụ thể cần xác định các tài nguyên đó thuộc lớp nào, có những tính chất
phân biệt gì. Do đó, yêu cầu đặc ra là cần có một cơ chế tự động để máy tính có thể phân loại
được các tài nguyên trên. Điều này liên quan đến một ngành khoa gọi là Taxonomy: khoa học về
các nguyên lý chung của phân loại học.

Có hai phương pháp phân loại chính là hình thức và không hình thức. Cách phân loại mà con
người sử dụng hàng ngày có thể được gọi là không hình thức, bởi sự phân loại này đôi khi không
chính xác hoặc không cần sự chính xác. Ví dụ, có thể nói Vũng Tàu là thành phố phía Nam hay
thành phố thuộc Nam Trung Bộ cũng chẳng sao. Trong khi đó, cách phân loại hình thức được sử
dụng khi cần sự chính xác, ví dụ trong các ngành khoa học hoặc phân loại tự động trong các hệ
thống máy tính.. Phương pháp phân loại hình thức sẽ là mục tiêu đề cập chính trong phần này.

Các hệ thống phân loại theo kiểu hình thức cũng có thể được chia làm hai dạng dựa trên cấu trúc
phân loại mà nó sử dụng. Đó là phân loại phân cấp (classification hierarchy) và phân loại phân
nhóm (classification groups). Phân loại phân cấp dựa trên các cấu trúc phân cấp như: danh sách
phân cấp hoặc cây phân cấp.. Trong khi phân loại phân nhóm dựa trên phân mục (categories).
Hiện nay, cả hai hình thức trên đều được sử dụng để phân loại các tài nguyên trong lĩnh vực Web
ngữ nghĩa.


3.2 Phân Loại Phân Cấp

Phân loại phân cấp sử dụng một số cấu trúc phân cấp như danh sách phân cấp hoặc cây phân
cấp. Trong đó, danh sách phân cấp là cách đơn giản và tự nhiên nhất đối với con người lẫn máy
tính. Một danh sách phân cấp thường được bắt đầu với các thực thể lớn và sau đó dẫn ra các thực
thể nhỏ hơn bằng một số cách trực quan đơn giản như viết thụt vào, in nghiêng.. ám chỉ các thực
thể nhỏ là một bộ phận của thực thể lớn. Trong máy tính, danh sách phân cấp thường là các mảng
hoặc danh sách liên kết.. mà các danh sách nhỏ hơn cũng là một phần tử trong danh sách lớn hơn.
Một ví dụ về danh sách phân cấp:
                     Châu Á
                         Việt Nam
                         Nhật Bản


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                10
                     Châu Âu
                         Anh
                         Pháp
                         Tây Ban Nha
                     Châu Mỹ
                         Hoa Kỳ
                         Argentina
Tuy nhiên, do sự đơn giản nên danh sách phân cấp không thể hiện được một số ràng buộc về ngữ
nghĩa khi phân loại sự vật trong thế giới thực. Ví dụ trong danh sách phân cấp trên, khó có thể
xác định Việt Nam là một “dạng” Châu Á hay là một “bộ phận” của Châu Á.

Để tăng thêm sự ràng buộc và khắc phục hạn chế trên của danh sách phân cấp, người ta sử dụng
một cấu trúc phân cấp khác được gọi là cây phân cấp. Trong cấu trúc này, một phần tử chỉ có thể
là một dạng của phần tử cấp cao hơn có đường nối đến nó. Nghĩa là cây phân cấp không xét đến
ý nghĩa bộ phận.

Trong một cây phân cấp, mỗi node biểu diễn một sự vật hay khái niệm nào đó. Các nhánh biểu
diễn một phần tử là một dạng của phần tử trước nó. Một node được gọi là node gốc nếu không có
nhánh nào nối đến nó, có nghĩa nó là phần tử tổng quát nhất trong mô hình phân loại. Node càng
gần node gốc thì có mức độ tổng quát càng cao. Mỗi node có thể có nhiều node con (node có thể
dẫn ra ngay sau node đó) nhưng chỉ có duy nhất một node cha. Ví dụ sau là một cây phân cấp:




                                                       Hình 3.1 - Cây phân cấp
                                                       Thực vật và động vật là các dạng khác
                                                       nhau của sinh vật. Mỗi phần tử, ví dụ thú
                                                       chỉ có một phần tử cha duy nhất.




Tuy nhiên tương tự danh sách phân cấp, cấu trúc cây phân cấp cũng không thể hiện được các
quan hệ phức tạp thường thấy trong thế giới thực. Trong thực tế, một sự vật không chỉ thể hiện
tính chất của một mà là nhiều sự vật khác. Có nghĩa là một node trong cây phân cấp có thể có
nhiều node cha. Ví dụ đối tượng “người cá” trong truyện cổ tích Anderxen có thể sẽ phải vừa
thuộc lớp “người” vừa thuộc lớp “cá”. Điều này đã dẫn tới sự ra đời của một cấu trúc phân loại
phức tạp hơn là Cyc Ontology.

Cyc Ontology là cấu trúc tương tự cây phân cấp nhưng mỗi node trong nó có thể có nhiều cha
(tương ứng việc một sự vật có thể phân loại vào nhiều nhóm). Đây là cấu trúc đủ phức tạp để mô
tả tri thức thế giới thực cũng như phục vụ cho việc suy luận trên dữ liệu Web ngữ nghĩa. Hình
bên dưới là một ví dụ về Cyc Ontology.



GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                       11
                                                           Hình 3.2 – Cyc Ontology
                                                           Cá heo hoặc người cá có thể được phân
                                                           loại vào cả lớp thú lẫn lớp cá.




3.3 Phân Loại Phân Nhóm

Khác với phân loại phân cấp, phân loại phân nhóm phân loại sự vật thành các mục (categories)
khác nhau. Tùy theo ngữ cảnh cụ thể mà mỗi phân mục này có thể được gọi là: kiểu, loại, hạng..
hay lớp mà một sự vật thuộc về. Ví dụ các thành phố có thể được phân thành loại một, hai hay
ba.. trong khi bệnh tiểu đường được chia làm kiểu một (type 1) hoặc kiểu hai (type 2). Có hai
dạng phân loại phân nhóm là phân loại theo cách liệt kê và theo định nghĩa.

Phân nhóm theo cách liệt kê là tiến hành liệt kê mỗi phần tử cụ thể vào từng phân mục mà nó
thuộc về. Ví dụ có thể phân nhóm các thành phố ỡ Mỹ bằng cách liệt kê thành các thành phố ở
bờ Tây như {San Francisco, Los Angeles, San Diego} và các thành phố ở bờ Đông chẳng
hạn {Boston, New York, Philadelphia}. Sau đó, có thể nói Boston là thành phố ở bờ Tây vì
nó thuộc nhóm thứ hai. Đây là cách trực quan và đơn giản nhất của phương pháp phân loại phân
nhóm. Tuy nhiên nó trở nên không hiệu quả khi cần phân nhóm một lượng lớn các phần tử.

Trong khi đó phân loại theo định nghĩa được thực hiện bằng cách chỉ ra các tính chất của mỗi
nhóm. Sau đó, có thể xác định mỗi phần tử thuộc nhóm nào bằng cách xem phần tử đó có thỏa
mãn các tính chất chung của phân nhóm đó hay không. Các tính chất sử dụng trong cách phân
loại này mang ý nghĩa như một sự chọn lọc, loại bỏ các phần tử không thỏa mãn tính chất ra khỏi
phân nhóm. So với cách phân loại theo cách liệt kê thì phương pháp phân loại theo định nghĩa tỏ
ra hiệu quả khi số lượng các phần tử cần phân loại là rất lớn. Ta không cần không gian lưu trữ
các phần tử của mỗi phân nhóm mà có thể tiến hành phân loại động dựa trên tính chất các phần
tử mỗi khi cần thiết. Đây cũng là phương pháp được quan tâm trong lĩnh vực Web ngữ nghĩa.

Một nhóm trong phân loại dựa trên định nghĩa có thể được gọi là một lớp (class) và phần tử
thuộc lớp đó được gọi là thực thể (instance). Quan hệ phổ biến nhất giữa các lớp là quan hệ phân
cấp lớp cha-lớp con. Lớp cha là lớp tổng quát hơn trong mô hình phân cấp, lớp con là lớp được
dẫn xuất ra ngay sau đó. Thực thể thuộc lớp con có thể đóng vai trò là thực thể của lớp cha trong
khi điều ngược lại thường không đúng. Ví dụ, không thể nói một thực thể bất kỳ thuộc lớp xe là
xe đạp hay xe hơi mặc dù xe đạp hay xe hơi là lớp con của xe. Ngoài ra, cũng tồn tại khả năng
một thực thể có thể thuộc nhiều lớp khác nhau. Thực thể dạng này được gọi là thực thể đa lớp..

Những vấn đề trên đây, đặc biệt là phân loại phân nhóm dựa vào định nghĩa các lớp đã làm nền
tảng cho một khái niệm rất quan trọng trong Web ngữ nghĩa là Ontology, sẽ được xét trong phần
tiếp theo.

GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                  12
3.4 Ontology

Thuật ngữ “Ontology” đã xuất hiện từ rất sớm. Trong cuốn sách “Siêu hình” (Metaphysics) của
mình, Aristotle đã định nghĩa: “Ontology là một nhánh của triết học, liên quan đến sự tồn tại và
bản chất các sự vật trong thực tế”. Hay nói cách khác, đối tượng nghiên cứu chủ yếu của
Ontology xoay quanh việc phân loại các sự vật dựa trên các đặc điểm mang tính bản chất của nó.

Trong ngành khoa học máy tính và quản trị thi thức, Ontology mang ý nghĩa là các loại vật và
quan hệ giữa chúng trong một hệ thống hay ngữ cảnh cần quan tâm. Các loại vật này đôi khi còn
được gọi là khái niệm, thuật ngữ hay từ vựng có thể được sử dụng trong một lĩnh vực chuyên
môn nào đó.

Ontology cũng có thể hiểu là một ngôn ngữ hay một tập các quy tắc được dùng để xây dựng một
hệ thống Ontology. Một hệ thống Ontology định nghĩa một tập các từ vựng mang tính phổ biến
trong lĩnh vực chuyên môn nào đó, và quan hệ giữa chúng. Sự định nghĩa này có thể được hiểu
bởi cả con người lẫn máy tính. Một Ontology bao gồm các thành phần sau:
      Lớp (class): là thành phần quan trọng của một Ontology, còn được gọi là khái niệm
       (concept). Hầu hết Ontology đều tập trung xây dựng các lớp được tổ chức theo một cấu
       trúc phân cấp để mô tả các loại vật trong một miền cần quan tâm. Ví dụ “sinh vật” là một
       lớp trong ngữ cảnh sinh vật học. Bên dưới lớp này có thể có các lớp con ví dụ “động vật”
       và “thực vật”..
      Khía cạnh (slot): mô tả các thuộc tính của lớp và thực thể. Khía cạnh là một mặt nào đó
       của sự vật, phân biệt với thuộc tính chỉ là giá trị biểu hiện của nó. Ví dụ khái niệm sinh
       vật có thể được mô tả qua khía cạnh tình trạng chuyển động với các thuộc tính là chuyển
       động hoặc đứng yên. Một cách hình thức ta gọi: khía cạnh là kiểu quan hệ giữa thực thể
       và thuộc tính, giữa thực thể và lớp hoặc giữa các lớp với nhau. Mặc dù vậy, để thuận tiện
       trong một số trường hợp vẫn có thể dùng thuật ngữ thuộc tính (property) hoặc vai trò
       (role) thay cho khía cạnh.
      Ràng buộc (role restriction hay facet): mô tả một số ràng buộc về ý nghĩa của các khái
       niệm và quan hệ với các khái niệm khác. Chẳng hạn tình trạng chuyển động trong ví dụ
       trên chỉ có hai giá trị, không thể có sinh vật vừa chuyển động vừa phải đứng yên được.




                   Lớp

                                           Khía cạnh
                                                          Ràng buộc




                     Hình 3.3: Một Ontology đơn giản trên Protégé 3.4


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                  13
3.5 Vai Trò của Ontology

Với ý nghĩa và cấu trúc như trên, Ontology đã trở thành một công cụ quan trọng trong lĩnh vực
Web ngữ nghĩa. Có thể kể ra một số lợi ích của Ontology như:
      Để chia sẻ những hiểu hiểu biết chung về các khái niệm, cấu trúc thông tin giữa con
       người hoặc giữa các hệ thống phần mềm [4]: đây là vai trò quan trọng nhất của một
       Ontology, không những trong lĩnh vực Web ngữ nghĩa mà còn trong nhiều ngành và lĩnh
       vực khác. Về phương diện này, có thể hình dung Ontology giống như một cuốn từ điển
       chuyên ngành, cung cấp và giải thích các thuật ngữ cho người không có cùng chuyên
       môn khi được yêu cầu. Không chỉ được sử dụng bởi con người, Ontology còn hữu ích khi
       cần sự hợp tác giữa các hệ thống phần mềm. Lấy ví dụ, Open Biological là bộ Ontology
       nổi tiếng được phát triển bởi trường đại học Stanford nhằm cung cấp các thuật ngữ một
       cách đầy đủ trong ngành sinh vật học. Ontology này hiện đã được tích hợp vào một số
       ứng dụng Web trên Internet. Sau đó, một phần mềm tra cứu hoặc dạy sinh học trên máy
       tính có thể kết nối với các ứng dụng Web trên để lấy thông tin cho mục tiêu chú giải.
      Cho phép tái sử dụng tri thức: đây là một vấn đề khó và là mục tiêu nghiên cứu quan
       trọng trong những năm gần đây. Nó liên quan đến bài toán trộn hai hay nhiều Ontology
       thành một Ontology lớn và đầy đủ hơn. Nhưng vấn đề ở đây là 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 dùng để mô
       tả các loại vật hoàn toàn khác nhau. Tuy nhiên cũng có thể có trường hợp ngược lại, khi
       tên các khái niệm khác nhau nhưng cùng mô tả một sự vật. Ngoài ra, làm thế nào để bổ
       sung các quan hệ, thuộc tính có sẵn vào một hệ thống mới càng làm cho vấn đề trở nên
       phức tạp.
      Cho phép tri thức độc lập với ngôn ngữ: đây cũng là vấn đề liên quan đến lĩnh vực tái sử
       dụng tri thức đã nói ở trên, tuy nhiên bài toán của nó là làm thế nào để một hệ thống
       Ontology có thể được dùng bởi các ngôn ngữ của các quốc gia khác nhau mà không phải
       xây dựng lại. Giải pháp mà Ontology mang lại là cho phép tên các khái niệm và quan hệ
       trong Ontology mới tham khảo các khái niệm, định nghĩa của một hệ thống Ontology
       chuẩn thường được xây dựng bằng tiếng Anh. Điều này có thể sẽ phá vỡ phần nào rào
       cản về mặt ngôn ngữ khi mà kết quả tìm kiếm sẽ không bó gọn trong từ khóa và ngôn
       ngữ mà nó sử dụng. Ngoài ra, Ontology có thể sẽ trở thành hướng đi mới cho một lĩnh
       vực đã quen thuộc là dịch tài liệu tự động. Có thể nói như vậy, bởi ngữ nghĩa các từ vựng
       trong văn bản sẽ được dịch chính xác hơn khi được ánh xạ vào đúng ngữ cảnh của nó.
      Cho phép tri thức trở nên nhất quán và tường minh: các khái niệm khác nhau trong một
       hay nhiều lĩnh vực cụ thể có thể cùng tên và gây nhập nhằng về ngữ nghĩa, tuy nhiên khi
       được đưa vào một hệ thống Ontology thì tên mỗi khái niệm là duy nhất. Một giải pháp
       cho vấn đề này là Ontology sẽ sử dụng các tham khảo URI làm định danh thật sự cho
       khái niệm trong khi vẫn sử dụng các nhãn gợi nhớ bên trên để thuận tiện cho người dùng.
      Cung cấp một phương tiện cho công việc mô hình hóa: Ontology là một tập các khái
       niệm phân cấp được liên kết với nhau bởi các quan hệ. Cơ bản mỗi khái niệm có thể xem
       như là một lớp, mà đối tượng của lớp đó cùng các quan hệ đã góp phần tạo nên cấu trúc
       của bài toán hay vấn đề cần giải quyết.
      Cung cấp một phương tiện cho việc suy luận: hiện nay, một số ngôn ngữ Ontology đã
       tích hợp lớp Ontology suy luận (Ontology Inference Layer) bên trong cho mục đích suy
       luận logic trên tập quan hệ giữa các đối tượng trong hệ thống.

GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                 14
3.6 Xây Dựng Ontology

Có nhiều phương pháp khác nhau để xây dựng một Ontology, nhưng nhìn chung các phương
pháp đều thực hiện hai bước cơ bản là: xây dựng cấu trúc lớp phân cấp và định nghĩa các thuộc
tính cho lớp. Trong thực tế, việc phát triển một Ontology để mô tả miền cần quan tâm là một
công việc không đơn giản, phụ thuộc rất nhiều vào công cụ sử dụng, tính chất, quy mô, sự
thường xuyên biến đổi của miền cũng như các quan hệ phức tạp trong đó. Những khó khăn này
đòi hỏi công việc xây dựng Ontology phải là một quá trình lặp đi lặp lại, mỗi lần lặp cải thiện và
tinh chế dần sản phẩm chứ không phải là một quy trình khung với các công đoạn tách rời nhau.

Ngoài ra, công việc xây dựng Ontology cũng cần phải tính đến khả năng mở rộng miền quan tâm
trong tương lai, khả năng kế thừa các hệ thống Ontology có sẵn, cũng như tính linh động để
Ontology có khả năng mô tả tốt nhất các quan hệ phức tạp trong thế giới thực. Nội dung chương
này sẽ đề cập đến một số nguyên tắc cơ bản của việc xây dựng Ontology qua các các công đoạn
cụ thể sau đây [4]:
      Xác định miền quan tâm và phạm vi của Ontology.
      Xem xét việc kế thừa các Ontology có sẵn.
      Liệt kê các thuật ngữ quan trọng trong Ontology.
      Xây dựng các lớp và cấu trúc lớp phân cấp.
      Định nghĩa các thuộc tính và quan hệ cho lớp.
      Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp.
      Tạo các thực thể cho lớp.

Bước 1, Xác định miền quan tâm và phạm vi của Ontology: Giống như mọi công đoạn đặ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ả miền
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ả miền 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 vục vụ đối tượng nào?
      Ai là người sẽ xây dựng, quản trị Ontology?
Nhìn chung, câu trả lời cho các câu hỏi dạng này có thể sẽ thường xuyên thay đổi trong suốt quá
trình lặp xây dựng một Ontology. Nhất là khi có sự thay đổi về mục đích hoặc cần bổ sung tính
năng trong việc sử dụng cơ sở tri thức. Tuy nhiên, việc trả lời chính xác các câu hỏi trên tại mỗi
bước lặp sẽ giúp giới hạn phạm vi thực sự của mô hình cần mô tả và dự trù các kỹ thuật sẽ sử
dụng trong quá trình phát triển. Lấy ví dụ, nếu dự trù khả năng xảy ra sự khác biệt về ngôn ngữ
giữa người phát triển và người sử dụng thì Ontology phải được bổ sung cơ chế ánh xạ (mapping)
qua lại các thuật ngữ giữa các ngôn ngữ khác nhau. Hoặc giả sử Ontology cần xây dựng có chức
năng xử lý ngôn ngữ tự nhiên, ứng dụng dịch tài liệu tự động thì cũng cần thiết phải có kỹ thuật
xác định từ đồng nghĩa chẳng hạn.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   15
Sau khi đã phát thảo phạm vi Ontology dựa trên việc trả lời những câu hỏi trên, người thiết kế sẽ
trả lời các câu hỏi mang tính đánh giá, qua đó tiếp tục tinh chỉnh lại phạm vi của hệ thống cần
xây dựng. Các câu hỏi dạng này thường dựa trên cơ sở tri thức của Ontology và được gọi là câu
hỏi kiểm chứng khả năng (competency question):
      Ontology đã có đủ thông tin để trả lời cho các câu hỏi được quan tâm trên cơ sở tri thức
       hay không?
      Câu trả lời của cơ sở tri thức đã đáp ứng được mức độ, yêu cầu nào của người sử dụng?
      Các ràng buộc và quan hệ phức tạp trong miền quan tâm đã được biểu diễn hợp lý chưa?

Bước 2, Xem xét việc kế thừa các Ontology có sẵn: đây là một công đoạn thường hay 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ể.. để tinh chỉnh
tùy 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. Lý do là 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.

Vấn đề xây dựng một Ontology mới bằng cách kế thừa các hệ thống có sẵn liên quan đến một bài
toán rất phức tạp là trộn (merging) các Ontology. Như đã nói trong mục trước, 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 dùng để mô tả
các loại vật hoàn toàn khác nhau. Trong khi đó, cũng có thể xảy ra trường hợp ngược lại, khi tên
các khái niệm khác nhau nhưng cùng mô tả một sự vật. Và một vấn đề nữa là làm thế nào để bổ
sung các quan hệ, thuộc tính có sẵn vào một hệ thống mới. Tuy nhiên, hầu hết các Ontology sử
dụng trong ngành khoa học máy tính nói chung và Web ngữ nghĩa nói riêng đều được xây dựng
trên các hệ thống xây dựng và quản trị Ontology. Có thể kể tên một số công cụ, chẳng hạn:
Sesame, Protégé, Ontolingua, Chimaera, OntoEdit, OidEd.. Hiện nay, đa số các phần mềm này
đều hỗ trợ chức năng tự động trộn các Ontology cùng hoặc thậm chí khác định dạng với nhau.
Mặc dù vậy, ở mức nào đó, người xây dựng cũng cần phải kiểm tra lại một cách thủ công, nhưng
đây có lẽ cũng không phải là một công việc phức tạp.

Hiện có rất nhiều Ontology được chia sẻ trên Web. Có thể kể ra một số Ontology nổi tiếng như:
UNSPSC (www.unspsc.org) do Chương trình phát triển của Liên Hiệp Quốc hợp tác với tổ chức
Dun & Bradstreet nhằm cung cấp các thuật ngữ của các sản phẩm và dịch vụ thương mại [4]. Các
Ontology trong lĩnh vực thương mại khác như: RosettaNet (www.rosettanet.org), DMOZ
(www.dmoz.org), eClassOwl,.. Open Biological, BioPax trong lĩnh vực sinh vật học, UMLS
trong lĩnh vực mạng ngữ nghĩa, GO (Gene Ontology), WordNet (đại học Princeton)..

Bước 3, Liệt kê các thuật ngữ quan trọng trong Ontology: Đây là bước rất ích hữu, làm tiền đề
cho hai bước tiếp theo là xây dựng cấu trúc lớp phân cấp và định nghĩa các thuộc tính cho lớp.
Công đoạn này bắt đầu bằng việc liệt kê tất cả các thuật ngữ xuất hiện trong miền quan tâm (có
thể đồng nghĩa hoặc chồng nhau) như tên khái niệm, quan hệ, thuộc tính.. Ví dụ, các thuật ngữ
xuất hiện trong ví dụ Ontology về sinh vật trong chương trước là: động vật, thực vật, cây hạt kín,
chim, thú, cộng sinh, cạnh tranh.. Thông thường, các thuật ngữ là danh từ sẽ trở thành các lớp,
tính từ sẽ trở thành thuộc tính, còn động từ sẽ là quan hệ giữa các lớp.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   16
Bước 4, Xây dựng các lớp và cấu trúc lớp phân cấp: Như đã nói, đây là một trong hai bước
                                        quan trọng nhất của công việc xây dựng một
                Lớp gốc
                                        Ontology. Nhiệm vụ của bước này là đị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 trung    lớp con theo các phương pháp phân loại đã đề cập
                           gian         trong chương 2. Lớp ở vị trí càng cao trong cấu trúc
                                        này sẽ có mức độ tổng quát càng cao. Vị trí đầu tiên
                                        thuộc về lớp gốc, tiếp theo là các lớp trung gian, và
                        Lớp lá          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 thực thể của lớp con với lớp cha nó
                                          trong mô hình phân cấp này là quan hệ “is-a”. Nghĩa
                                          là một thực thể của lớp con cũng “là-một” thực thể
Hình 4.1: Cấu trúc lớp phân cấp           của lớp cha.

Nhìn chung, có nhiều hướng tiếp cận khác nhau cho vấn đề xây dựng cấu trúc lớp phân cấp. Có
thể kể ra ba hướng như sau:
      Hướng xây dựng 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á.
      Hướng xây dựng từ dưới lên (bottom-up): Ngược với hướng xây dựng cấu trúc lớp phân
       cấp từ trên xuống, hướng này 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.
      Cách kết hợp (combination): cách này kết hợp cả hai hướng xây dựng trên. Đầu 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.

Bước 5, Định nghĩa các thuộc tính và quan hệ cho lớp: Bản thân các lớp nhận được ở bước
trên chỉ mới là những thuật ngữ phân biệt với nhau bằng tên gọi. Về cơ bản, chúng chưa đủ để
phục vụ cho việc biểu diễn tri thức. Muốn như vậy, các thuộc tính của lớp cần được định nghĩa.
Thuộc tính của lớp là các thông tin bên trong của lớp, mô tả một khía cạnh nào đó của lớp và
được dùng để phân biệt với các lớp khác. Thuộc tính được chia làm nhiều loại khác nhau:
      Về mặt ý nghĩa, các thuộc tính có thể được chia làm hai loại: thuộc tính bên trong
       (intrinsic property) và thuộc tính bên ngoài (extrinsic property). Thuộc tính bên trong
       mô tả các tính chất nội tại bên trong sự vật, ví dụ: chất, lượng, cấu tạo.. Trong khi đó,
       thuộc tính bên ngoài mô tả phần biểu hiện của sự vật, ví dụ: màu sắc, hình dạng..
      Về mặt giá trị, các thuộc tính cũng được chia làm hai loại: thuộc tính đơn (simple
       property) và thuộc tính phức (complex property). Thuộc tính đơn là các giá trị đơn ví dụ:
       chuỗi, số.., còn thuộc tính phức có thể chứa hoặc tham khảo đến một đối tượng khác.

Một chú ý quan trọng nữa trong bước này là việc một lớp sẽ kế thừa toàn bộ các thuộc tính của
tất cả các cha nó. Do đó, cần phải xem xét một thuộc tính đã được định nghĩa ở các lớp thuộc
mức cao hơn hay chưa. Thuộc tính chỉ nên được định nghĩa khi nó là tính chất riêng của lớp đang
xét mà không được biểu hiện ở các lớp cao hơn.


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                 17
Bước 6, Định nghĩa các ràng buộc về thuộc tính và quan hệ của lớp: Các ràng buộc giới hạn
                                                        giá trị mà một thuộc tính có thể nhận. Hai
                                                        ràng buộc quan trọng nhất đối với một
                                                        thuộc tính là lượng số (cardinality) và
                                                        kiểu (type). Ràng buộc lượng số quy định
                                                        số giá trị mà một thuộc tính có thể nhận.
                                                        Hai giá trị thường thấy của ràng buộc này
                                                        là đơn trị (single) và đa trị (multiple).
                                Ràng buộc               Nhưng một số phần mềm còn cho phép
                                                        định nghĩa chính xác khoảng giá trị của
                Hình 4.2: Ràng buộc                    lượng số. Ràng buộc thứ hai là về kiểu. Về
cơ bản, các kiểu mà một thuộc tính có thể nhận là: chuỗi, số, boolean, liệt kê và kiểu thực thể.
Riêng kiểu thực thể có liên quan đến hai khái niệm gọi là: miền (domain) và khoảng (range).
Khái niệm miền được dùng để chỉ lớp (hay các lớp) mà một thuộc tính thuộc về. Trong khi đó,
khoảng chính là lớp (hay các lớp) làm kiểu cho giá trị thuộc tính kiểu thực thể. Lấy ví dụ, lớp
động vật trong hình 4.1 có thuộc tính “loại thức ăn” thuộc kiểu thực thể (cỏ cây, côn trùng..).
Lúc này, miền của loại thức ăn là động vật, sinh vật.. Còn khoảng của nó chính là lớp cỏ, cây,..

Bước 7, Tạo các thực thể cho lớp: Đây là bước cuối cùng khép lại một vòng lặp xây dựng
Ontology. Công việc chính lúc này là tạo thực thể cho mỗi lớp và gán giá trị cho các thuộc tính.
Nhìn chung, 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 Web ngữ nghĩa.


3.7 Tổng Kết

Như vậy nội dung chương 3 đã giới thiệu về các mô hình phân loại thường hay sử dụng, làm
quen với khái niệm Ontology, vai trò của Ontology và quy trình xây dựng một Ontology hoàn
chỉnh theo các chu trình lặp tinh chế sản phẩm. Nhìn chung, hướng tiếp cận của chương này là
phương pháp xây dựng trực quan trên các công cụ. Tuy nhiên, bản thân các công cụ này cũng sẽ
sử dụng một lớp bên dưới để mô tả Ontology theo cách máy tính có thể hiểu được, đó là lớp
ngôn ngữ Ontology.

Trong chương tiếp theo, chúng tôi sẽ giới thiệu một số ngôn ngữ phổ biến trong lĩnh vực
Ontology hiện nay là RDFS, OWL, DAML + OIL,..




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   18
  Chương 4

 Ngôn Ngữ Ontology
4.1 RDFS (RDF-Schema)

 4.1.1 Giới thiệu RDFS
 RDFS hay RDF-Schema, là một ngôn ngữ Ontology cơ bản. Nó được phát triển ở tầng trên của
 RDF cho nên bản thân RDF-Schema cũng chính là RDF, nó được mở rộng từ RDF và bổ sung
 thêm các tập từ vựng để hỗ trợ cho việc xây dựng các Ontology được dễ dàng. Như chúng ta đã
 biết, ngôn ngữ RDF chỉ giúp cho thông tin được thể hiện ở dạng bộ ba theo đúng mô hình RDF
 chứ thông tin vẫn chưa thể hiện gì về mặt ngữ nghĩa. Bởi vậy, xây dựng RDFS là điều cần thiết
 để hình thành nên ngữ nghĩa cho thông tin, là cơ sở để xây dựng các công cụ tìm kiếm ngữ
 nghĩa. RDFS và RDF có mối liên hệ tương đối gần gũi nên đôi lúc ta gọi ngôn ngữ này là
 RDF/RDFS. Hình 4.1 cho chúng ta sự phân biệt giữa RDFS với RDF :



                                                          Literal
                                         range                            range

                                           ID                              Phone

                                          domain
                                                                            domain
                                                         Staff Member                  Hình 4.1 - So
                       involves
                                                                                       sánh giữa RDF
                                           range                                       và RDFS
                                                                    subClassOf
      domain           subPropertyOf


                            isTaughtBy                   Academic Staff
                                                                          subClassOf
                   domain                   subClassOf
     Course
                                                    Lecturer               Assistant



                                                             type                      RDFS

                            isTaughtBy                                                  RDF
              AI                                         Quan Thanh Tho



GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                     19
 Trong hình vẽ chúng ta thấy, ở tầng RDF chỉ biểu diễn được thông tin ở dạng bộ ba. Đến tầng
 RDFS, thông tin đã được phân loại rõ ràng. Chẳng hạn như Quan Thanh Tho có kiểu là Lecturer
 và Lecturer là lớp con của Academic Staff v.v…

 4.1.2 Các lớp và thuộc tính trong RDF/RDFS
 RDF/RDFS định nghĩa 13 lớp cơ bản
       rdfs :Resource        (Chỉ định đây là một tài nguyên)
       rdfs :Class           (Dùng để khởi tạo một lớp)
       rdfs :Literal         (Lớp các giá trị nguyên thủy: chuỗi, số nguyên…)
       rdfs :XMLLiteral
       rdfs :Container
       rdfs :ContainerMembershipProperty
       rdf :Property         (Cho biết tài nguyên thuộc lớp này là một thuộc tính - property)
       rdf :Statement        (Cho biết tài nguyên thuộc lớp này là một phát biểu - statement)
       rdf :Bag
       rdf :Seq
       rdf :Alt
       rdf :list             (Lớp danh sách RDF)
       rdf :Container

Và một số thuộc tính :
       rdf :type              (Xác định kiểu cho một tài nguyên)
       rdfs :subClassOf       (Cho biết là ‘lớp con của’)
       rdfs:subPropertyOf     (‘Thuộc tính con của’ thuộc tính)
       rdfs:domain            (Chỉ định vùng)
       rdfs :range            (Chỉ định tầm vực)
       rdfs:label             (Gán nhãn cho một tài nguyên)
       rdfs:comment           (Chú thích)
       rdf :member            (Thành viên của một lớp chứa - container)
       rdf :first             (Phần tử đầu tiên trong một danh sách RDF)
       rdf :rest              (Danh sách các phần tử còn lại)
       rdfs :seeAlso          (Các thông tin bổ sung)
       rdfs :isDefinedBy      (Được định nghĩa bởi)
       rdf :value             (Gán một giá trị nào đó cho chủ thể)
       rdf :subject           (Chủ thể của một phát biểu)
       rdf :predicate         (Thuộc tính của một phát biểu)
       rdf :object            (Giá trị thuộc tính của một phát biểu)

 Với những lớp và thuộc tính được liệt kê trên đây, RDF/RDFS đủ mạnh để xây dựng các
 ontology. Tuy nhiên bản thân nó còn chứa đựng nhiều hạn chế như là chưa hỗ trợ tốt về mặt suy
 luận, cũng như chưa có ràng buộc về kiểu và lượng số …mà các ngôn ngữ thế hệ sau sẽ khắc
 phục (chúng ta sẽ bàn về điều này trong phần OWL).
 Các lớp và thuộc tính thường dùng trong RDF/RDFS chủ yếu là : Resource, Class, Property,
 type, label, subClassOf, subPropertyOf, domain, và range. Trong đó domain là miền tài nguyên
 sử dụng thuộc tính đó, còn range là phạm vi giá trị có thể gán cho thuộc tính đó. Ví dụ ta có lớp
 thuộc tính là hasChild thì domain của hasChild là lớp Person, còn range là lớp số nguyên dương
 chẳng hạn(số con từ 1 trở lên v.v…).




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                    20
 4.1.3 Ví dụ về xây dựng ontology với RDFS
 Chúng ta sẽ dùng cú pháp cơ bản sau để biễu diễn cho một phát biểu (statement):
       {subject,predicate,object}

 Nếu có nhiều hơn một thuộc tính cho một chủ thể thì:
       {subject,
             {predicate1, object1}
             {predicate2, object2}
       }

 Nếu có nút trống (blank node) thì biểu diễn như sau :
       {subject, predicate,
             {predicate-of-bnode,object-of-bnode}
       }

 Một tài nguyên bắt đầu bởi dấu # chẳng hạn #resource_1 thì có nghĩa là tài nguyên đó đã được
 khai báo trong cùng một tài liệu mà chúng ta đang xây dựng ontology. Sau này muốn sử dụng
 tài nguyên đó thì ta dùng #resource _1 chứ không cần phải lấy URI của nó cho phức tạp, khó
 nhìn.

 Bây giờ chúng ta sẽ đi vào xây dựng một Ontology đơn giản, Ontology này sẽ xây dựng tóm
 gọn sơ đồ như hình 4.1:
       {rdfs:Class
             {rdf:ID,"StaffMember"}
              {rdf:resource, “http://www.semantic.vn/2009/01/rdf-schema#StaffMember"}
       }

       {rdfs:Class
             {rdf:about,"AcademicStaff"}
              {rdfs:subClassOf, "# StaffMember"}
       }
       {rdfs:Class
             {rdf:about,"Lecturer"}
              {rdfs:subClassOf, #AcademicStaff}
       }

       {rdfs:Class
             {rdf:ID,"Course"}
              {rdf:resource, “http://www.semantic.vn/2009/01/rdf-schema#Course"}
       }

       {rdf:Property
             { rdf:ID,"phone"}
              {rdfs:domain, #staffMember}
              {rdfs:range ,"http://www.semantic.vn/
                           2009/01/rdf-schema#Literal"}
       }

       {rdf:Property
             { rdf:ID,"ID"}
              {rdfs:domain, #staffMember}
              {rdfs:range ,"http://www.semantic.vn/
                            2009/01/rdf-schema#Literal"}
       }


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                              21
       {rdf:Property
             { rdf:ID,"involve"}
              {rdfs:domain, #Course}
              {rdfs:range ,#AcademicStaff}
       }

       {rdf:Property
             { rdf:ID,"isTaughtBy"}
              {rdfs:domain, #Course}
              {rdfs:range ,#AcademicStaff}
              {rdf:subPropertyOf, “involve”}
       }
       …

 Từ Ontology được xây dựng như trên ta có thể vẽ ra sơ đồ phân cấp các tài nguyên như sau :
       Staff Member
             Academic Staff
                   Lecturer
       Course

 Nhìn sơ đồ ta thấy có hai tài nguyên là StaffMember và Course. Các lớp AcademicStaff và
 Lecturer chỉ là thừa kế từ StaffMember.


4.2 OWL (Ontology Web Language)

 OWL là ngôn ngữ ontology khá mạnh, nó ra đời sau RDFS nên biết kế thừa những lợi thế của
 ngôn ngữ này đồng thời bổ sung thêm nhiều yếu tố giúp khắc phục được những hạn chế của
 RDFS. OWL giúp tăng thêm yếu tố logic cho thông tin và khả năng phân loại, ràng buộc kiểu
 cũng như lượng số tương đối mạnh.
 Chúng ta hãy tìm hiểu sơ qua các lớp và thuộc tính của OWL để thấy được những ưu điểm của
 OWL so với RDFS

Classes                             Properties

owl:AllDifferent                    owl:allValuesFrom            owl:TransitiveProperty
owl:Class                           owl:backwardCompatibleWith   owl:inverseOf
owl:DataRange                       owl:cardinality              owl:maxCardinality
owl:DataTypeProperty                owl:complementOf             owl:minCardinality
owl:DeprecatedProperty              owl:distinctMembers          owl:oneOf
owl:DeprecatedClass                 owl:differentFrom            owl:onProperty
owl:FunctionalProperty              owl:disjointWith             owl:priorVersion
owl:InverseFunctionalProperty       owl:equivalentClass          owl:sameAs
owl:Nothing                         owl:equivalentProperty       owl:sameIndividualAs
owl:ObjectProperty                  owl:hasValue                 owl:someValuesFrom
owl:Ontology                        owl:imports                  owl:subClassOf
owl:Restriction                     owl:incompatiblewith         owl:unionOf
owl:SymmetricProperty               owl:intersectionOf           owl:versionInfo




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                  22
Trong OWL có thêm một số thuộc tính hỗ trợ suy luận và ràng buộc.
    Hỗ trợ suy luận
        Tính chất bắt cầu
        Nếu như chúng ta có một lớp thuộc tính „contain‟ và gán cho nó thuộc tính
        owl :transitivePropertive thì thuộc tính „contain‟ này sẽ có tính chất bắt cầu. Giả sử ta
        có thông tin A contain B và B contain C, thì hệ thống sẽ tự suy luận ra một thông tin
        khác là A contain C. Và đây là biểu diễn thuộc tính contain trong OWL :

          {owl:TransitiveProperty
             {rdf:ID,"contain"}
          }

          Tính chất đảo ngược
          Nếu A có thuộc tính hasParent là B, thì suy ra B có thuộc tính hasChild là A.

          {owl:OjectProperty
             {Rdf:ID, ‘hasChild’}
             {owl:inverseOf, #hasParent}
          }

    Hỗ trợ ràng buộc
        Ràng buộc kiểu :
        Giả sử ta đã có lớp Human, thừa kế từ hai lớp này là Man và Woman. Ta muốn một
        đối tượng thuộc lớp Man thì không thể thuộc lớp Woman và ngược lại.

          {owl :Class
             {rdf :about, #Man}
             {owl :disjointWith, #Woman}
          }

          Ràng buộc lượng số :
          Ta muốn một người thì chỉ có một cha và một mẹ. Tức thuộc tính hasParent thì luôn
          gán số lượng là 2.

          {owl :Restriction
             {owl :onProperty, #hasParent}
             {owl :cardinality, 2}
          }

Trên đây là một vài ví dụ mà trong RDFS không thể làm được. Rõ ràng OWL có nhiều ưu điểm
hơn trong việc xây dựng hệ thống ontology thông minh và có phân loại tốt. Với những đặc điểm
đó, OWL ngày nay đã trở thành ngôn ngữ ontology chính thức cho việc xây dựng và phát triển
các hệ thống Semantic Web.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                  23
4.3 DAML + OIL

DAML + OIL là kết quả từ hai dự án nghiên cứu độc lập với nhau là DAML (DARPA Agent
Markup Language) và OIL (Ontology Inference Layer) nhằm khắc phục những hạn chế về kiểu
dữ liệu trong các ngôn ngữ Ontology trước đó là RDF, RDFS. DAML + OIL (gọi tắt là DAML)
là ngôn ngữ đánh dấu cho các tài nguyên trên Web, có hỗ trợ suy luận. Ngôn ngữ này được xây
dựng có kế thừa từ các chuẩn của W3C như XML, RDF, RDFS,.. Một số điểm đáng chú ý của
ngôn ngữ này là:
      Cho phép giới hạn các kiểu dữ liệu được định nghĩa trong XML Schema hay bởi người
       dùng. Trong DAML, một thuộc tính có thể nhận giá trị trên nhiều khoảng khác nhau, tạo
       nên tính uyển chuyển trong việc mô tả dữ liệu.
      Cho phép định nghĩa thuộc tính unique để xác định các đối tượng.
      Cho phép mô tả các quan hệ như hoán đổi và bắc cầu.

DAML sau đó tiếp tục trở thành nền tảng cho một ngôn ngữ Ontology khác là OWL. DAML về
cơ bản rất giống với OWL (ngoại trừ tên một số ít thuật ngữ, cú pháp được sửa đổi), tuy nhiên
khả năng mô tả các ràng buộc kém hơn.

Theo thống kê, đã có khoảng 5 triệu phát biểu DAML từ hơn 20,000 Website trên Internet vào
năm 2002 [1].




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                              24
  Chương 5

 Công Cụ Xây Dựng và
 Quản Trị Ontology
5.1 Giới thiệu

Về mặt lý thuyết, người xây dựng và quản trị Ontology có thể không cần các công cụ hỗ trợ, thay
vào đó có thể thực hiện trực tiếp bằng các ngôn ngữ. Tuy nhiên, cách thứ hai sẽ không khả thi
khi Ontology có kích thước lớn và cấu trúc phức tạp. Thêm vào đó, việc xây dựng và quản trị
Ontology không chỉ đòi hỏi việc tạo cấu trúc lớp phân cấp, định nghĩa các thuộc tính, ràng
buộc.., mà còn bao hàm việc giải quyết các bài toán liên quan trên nó. Có rất nhiều bài toán liên
quan đến một hệ thống Ontology như:
       Trộn hai hay nhiều Ontology.
       Chuẩn đoán và phát hiện lỗi.
       Kiểm tra tính đúng đắn và đầy đủ.
       Ánh xạ qua lại giữa các Ontology.
       Suy luận trên Ontology.
       Sao lưu và phục hồi một Ontology.
       Xóa, sửa và tinh chỉnh các thành bên trong Ontology.
       Tách biệt Ontology với ngôn ngữ sử dụng (DAML, OWL,..).
Những khó khăn trên đã khiến các công cụ trở thành một thành phần không thể thiếu, quyết định
đến chất lượng của một hệ thống Ontology. Hiện có rất nhiều công cụ có khả năng hỗ trợ người
thiết kế giải quyết những bài toán liên quan. Có thể kể ra một số như: Sesame, Protégé,
Ontolingua, Chimaera, OntoEdit, OidEd..

Nội dung chương này sẽ đề cập đến hai công cụ là Protégé và Chimaera. Các công cụ còn lại sẽ
được đề cập trong phạm vi của một bài viết khác.


5.2 Protégé

Protégé là bộ phần mềm mã nguồn mở Java nổi tiếng. Protégé được nghiên cứu và phát triển từ
năm 1998 bởi nhóm nghiên cứu của Mark Musen, ĐH. Stanford nhằm quản lý các thông tin
trong lĩnh vực sinh y học. Đây là dự án được nhận được sự quan tâm và tài trợ từ rất nhiều tổ
chức, trong đó có Bộ Quốc Phòng Mỹ. Mã nguồn Protégé có thể được tìm thấy tại website:
http://smi-protege.stanford.edu/repos/protege/owl/trunk.


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                  25
Hiện tại, Protégé đã có phiên bản 3.4. Phiên bản Beta 4.0 đang được phát triển và thử nghiệm
song song bởi sự hợp tác giữa CO-ODE (Cooperative Ontologies Programme) và đại học
Stanford [5]. Các ưu điểm của Protégé là:
      Hỗ trợ đầy đủ ba phiên bản của ngôn ngữ OWL là OWL-Full, OWL-Lite và OWL-DL.
      Nhờ sử dụng mô hình hướng đối tượng của ngôn ngữ Java, Protégé tỏ ra rất hiệu quả
       trong việc mô hình các lớp, thực thể, quan hệ..
      Giao diện thiết kế trực quan có tính tương tác cao. Người sử dụng có thể định nghĩa các
       thành phần của Ontology trực tiếp từ các form.
      Cho phép biểu diễn trực quan Ontology dưới dạng các sơ đồ.
      Cho phép xây dựng Ontology từ nhiều nguồn khác nhau.
      Protégé tự động lưu một bản tạm của Ontology. Nếu có lỗi phát sinh trong quá trình thao
       tác thì Ontology cũ sẽ tự động được phục hồi. Người thiết kế cũng có thể chuyển qua lại
       giữa hai bản Ontology này bằng chức năng Revert to a Previous Version và Active
       Current Version.
      Cung cấp chức năng tìm kiếm lỗi, kiểm tra tính nhất quán và đầy đủ của Ontology. Để sử
       dụng, người thiết kế chọn chức năng Run Ontology Test và Check Consistency.
      Cho phép các lớp và thuộc tính của Ontology này có thể được sử dụng trong một
       Namespace khác mà chỉ cần sử dụng các URL để tham khảo. Để sử dụng, chọn chức
       năng Move Resource to Namespace.
      Hỗ trợ suy luận trực tiếp trên Ontology dựa trên Interface chuẩn DL Implementation
       Group (DIG).
      Hỗ trợ sinh mã tự động. Protégé cho phép chuyển Ontology thành mã nguồn RDF/XML,
       OWL, DIG, Java, EMF Java Interfaces, Java Schema Classes.. Các mã này có thể được
       nhúng trực tiếp vào ứng dụng và là đầu vào cho các thao tác trên Ontology khi cần.
      Cung cấp đầy đủ chuẩn giao tiếp cho các Plug-in.
Tuy nhiên, Protégé cũng thể hiện một số hạn chế như không cho phép truy vấn từng phần một cơ
sở tri thức dẫn tới việc không quản lý hiệu quả các cơ sở tri thức có kích thước lớn, hoặc chưa hỗ
trợ kết nối trực tiếp với một số hệ quản trị cơ sở tri thức phổ biến như Sesame [3],..




                                 Hình 5.1: Giao diện Protégé 3.4


GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   26
5.3 Chimaera

Chimaera cũng là một ứng dụng khác được phát triển bởi đại học Stanford, với mục đích ban đầu
nhằm giải quyết hai vấn đề là: trộn các Ontology và chuẩn đoán lỗi, phân tích tính nhất quán
giữa các Ontology phân tán [6]. Có thể tìm các thông tin liên quan đến Chimaera tại địa chỉ:
www.ksl.stanford.edu/software/chimaera, và sử dụng tại: http://www-ksl-svc.stanford.edu:5915.

Một số điểm đáng chú ý của Chimaera là:
      Chimaera là ứng dụng chạy trên nền Web, hỗ trợ thao tác với hơn 15 định dạng Ontology
       bao gồm: ANSI KIF, Ontolingua, Protégé, CLASSIC, iXOL, OKBC.. Riêng hai chuẩn
       RDF và DAML sẽ được hỗ trợ trong thời gian tới [6].
      Chimaera tích hợp sẵn chức năng chỉnh sửa Ontology, đặc biệt có thêm chức năng kéo
       thả và phím tắt nhờ sử dụng các đoạn mã Javascript nhúng vào các trình duyệt [7]. Tuy
       nhiên, so với các ứng dụng GUI trên Windows/UNIX thì vẫn còn nhiều hạn chế.
      Chimaera có chức năng phân tích, hỗ trợ người dùng chuẩn đoán và kiểm tra các
       Ontology. Việc kiểm tra này bao gồm kiểm tra tính đầy đủ (thuộc tính hoặc thực thể tham
       khảo đến một lớp hoặc quan hệ chưa được định nghĩa trong cơ sở tri thức), kiểm tra cú
       pháp, kiểm tra ngữ nghĩa, phát hiện chu trình (các lớp tham khảo lẫn nhau theo một chu
       trình).. Kết quả sẽ được thể hiện dưới dạng các test log. Hiện Chimaera đang cố gắng tích
       hợp thêm lớp ngôn ngữ dưới dạng luật để cho phép người dùng đặc tả các phương thức
       kiểm tra theo ý muốn.




                                                                         Hình 5.2: Chimaera hỗ
                                                                         trợ hầu hết các định
                                                                         dạng Ontology.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                 27
  Chương 6

 Tổng Kết
6.1 Xu Hướng Phát Triển

Những năm gần đây đã chứng kiến sự xuất hiện của rất nhiều ứng dụng sử dụng các kết quả
nghiên cứu trong lĩnh vực Web ngữ nghĩa và Ontology. Chẳng hạn việc sử dụng cấu trúc bộ ba
của RDF để biểu diễn, lưu trữ dữ liệu và phục vụ cho suy luận. Hay việc sử dụng Ontology cho
các hệ thống phân mục trên Internet, thương mại điện tử, xử lý ngôn ngữ tự nhiên,.. Có thể kể ra
một số ứng dụng tiêu biểu như: [9]
       Tìm kiếm: Swoogle, Hakia, VN-KIM, Falcon, Sindice, Go3R..
       Suy luận: Pellet, RacerPro, FaCT++, Ontobroker, Ontotext, SHER, Oracle 11g,.
       Trình duyệt: Disco, Tabulator, Zitgist, OpenLink Viewer,..
       Thương mại điện tử: Amazon,..
       Web: Youtube, Yahoo News, Wikipedia,..
       Công cụ phát triển: Protégé, Jena, SWI-Prolog, SemanticWorks, RDFLib,..
       Phần mềm chuyển đổi: FlickUrl, Jpeg2Pdf, Triplr, GRDDL,..
Nhìn chung, hướng đi của lĩnh vực Web ngữ nghĩa trong thời gian tới sẽ không có nhiều thay
đổi. Nghĩa là nhiệm vụ của các ứng dụng vẫn sẽ là phân tích cấu trúc dữ liệu, xác định dữ liệu
thuộc kiểu nào và từ đó có các hành động thích hợp. Sự khác biệt của Web ngữ nghĩa trong
tương lai sẽ là khả năng tự động hóa và thông minh, mà kết quả của nó phụ thuộc rất nhiều vào
lĩnh vực trí tuệ nhân tạo: logic, đánh giá (trust), ngữ nghĩa, hình thức,..


6.2 Kết Luận

Như vậy, bài viết này cơ bản đã trình bày những khái niệm được coi là then chốt của lĩnh vực
Web có ngữ nghĩa. Đó là RDF và Ontology. Trong thực tế, còn có muôn vàn vấn đề khác liên
quan đến hướng đi mới này. Song song với những kết quả nghiên cứu trên lý thuyết, các ứng
dụng của nó ngày một rộng rãi, vượt ra ngoài phạm vi của ngành khoa học máy tính. Web ngữ
nghĩa giờ đã được đánh giá là một bước tiến mới làm thay đổi cách thức và đối tượng giao tiếp
với dữ liệu trên Internet. Đằng sau thế hệ của Web ngữ nghĩa là gì thì vẫn chưa có câu trả lời xác
đáng. Tuy nhiên có thể khẳng định những giá trị mà nó mang lại sẽ không kém những gì mà
chúng ta đã được chứng kiến với thế hệ của World Wide Web.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                                   28
6.3 Lời Cảm Tạ

Cuối cùng, xin gởi lời cảm ơn đến thầy – PGS-TS. Cao Hoàng Trụ đã tận tình hướng dẫn trong
quá trình tìm hiểu đề tài này.

Xin cảm ơn hai bạn Viết Nghi và Kim Kha đã chia sẻ những hiểu biết về các vấn đề mà nhóm đã
gặp phải trong khi thực hiện bài viết.



Tháng 5/2009,
Võ Hoàng Nguyên, Hoàng Lê Quân.




GIOI THIEU SEMANTIC WEB & ONTOLOGY | Do An 1                                            29

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:4185
posted:3/14/2010
language:Vietnamese
pages:29