CHƢƠNG 1 TỔNG QUAN VỀ ONTOLOGY
1.6. 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: đâ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 chun 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 hồn tồ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. Ngồ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 tố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. Ngồ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
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 tố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.
1.7. Phƣơng Pháp 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.
Ngồ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 (Quy trình phát triển gồm 7 bước do Stanford Center for Biomedical Informatics Research đưa ra, đây là hóm phát triển phần mềm Protégé để trình diễn và xoạn thảo Ontology ):
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.
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 chun 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 chun biệt gì?
Cơ sở tri thức trong Ontology sẽ trả lời những câu hỏi gì?
Ontology nhằm 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 q 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.
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?
Đâ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. Ngồ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 hồn tồ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. 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.
Ontology được xây dựng trên cơ sở các khái niệm trong một lĩnh vực cụ thể, vì vậy khi xây dựng ontology cần bắt đầu từ các thuật ngữ chuyên ngành để xây dựng thành các lớp trong ontology tương ứng. Tất nhiên không phải thuật ngữ nào cũng đưa vào ontology, vì chưa chắc đã định vị được cho thuật ngữ đó. Do đó cần phải liệt kê các thuật ngữ, để xác định ngữ nghĩa cho các thuật ngữ đó, cũng như cân nhắc về phạm vi của ontology. Việc liệt kê các thuật ngữ còn cho thấy được phần nào tổng quan về các khái niệm trong lĩnh vực đó, giúp cho các bước tiếp theo được thuận lợi.
Hình 1.4: Cấu trúc lớp phân cấp
Công việc xác định các lớp không chỉ đơn giản là tiến hành tìm hiểu về ngữ nghĩa của các thuật ngữ đã có để có được các mơ tả cho thuật ngữ đó, mà còn phải định vị cho các lớp mới, loại bỏ ra khỏi ontology nếu nằm ngoài phạm vi của ontology hay hợp nhất với các lớp đã có nếu có nhiều thuật ngữ có ngữ nghĩa như nhau (đồng nghĩa, hay đa ngơn ngữ). Ngồi ra khơng phải thuật ngữ nào cũng mang tính chất như một lớp.
Một công việc cần phải tiến hành song song với việc xác định các lớp là xác định phân cấp của các lớp đó. Việc này giúp định vị các lớp dễ dàng hơn.
Có một số phương pháp tiếp cận trong việc xác định phân cấp của các lớp:
Phương pháp từ trên xuống (top-down): bắt đầu với định nghĩa của các lớp tổng
quát nhất trong lĩnh vực và sau đó chuyên biệt hóa các khái niệm đó. Ví dụ: Trong Ontology về quản lý nhân sự, ta bắt đầu với lớp Người, sau đó chuyên biệt hóa lớp Người đó bằng cách tạo ra các lớp con của lớp Người như : Kỹ sư, Cơng nhân, Bác sỹ,… Lớp Kỹ sư cũng có thể chuyên biệt hóa bằng cách tạo ra các lớp con như Kỹ sư CNTT, Kỹ sư điện, Kỹ sư cơ khí, …
Phương pháp từ dưới lên (bottom-up): bắt đầu với định nghĩa của các lớp cụ thể
nhất, như các lá trong cây phân cấp. Sau đó gộp các lớp đó lại thành các khái tổng quát hơn. Ví dụ: ta bắt đầu với việc định nghĩa các lớp như: nhân viên lễ tân, nhân viên vệ sinh, nhân viên kỹ thuật. Sau đó tạo ra một lớp chung hơn cho các lớp đó là lớp nhân viên.
Phương pháp kết hợp: kết hợp giữa phương pháp từ trên xuống và từ dưới lên:
bắt đầu từ định nghĩa các lớp dễ thấy trước và sau đó tổng quát hóa và chuyên biệt hóa các lớp đó một cách thích hợp. Ví dụ ta bắt đầu với lớp nhân viên trước, là thuật ngữ hay gặp nhất trong quản lý nhân sự. Sau đó chúng ta có thể chuyên biệt hóa thành các lớp con: nhân viên lễ tân, nhân viên vệ sinh,… hoặc tổng quát hóa lên thành lớp Người.
Bƣớc 5: Định nghĩa các thuộc tính và quan hệ cho lớp:. Lớp gốc
Lớp trung gian
Hình 1.5: Ràng buộc
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 ngồ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 ngồ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.
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). 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 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ể.