Thứ Năm, 22 tháng 9, 2011

free, open-source ontology editor

http://protege.stanford.edu/

Ontology là gì?

Có một thực tế là chúng ta đang ngập lụt dần trong kho dữ liệu khổng lồ mà vẫn đang phình to, lớn dần lên theo từng giây trên internet. Và trong bối cảnh như vậy thì triết lý của Google “mang lại những thông tin đáp ứng tốt nhất đối với người dùng bằng những công cụ tìm kiếm rất mạnh” như một vị cứu tinh khi nước lũ tràn về. Phải công nhận rằng triết lý ấy đã làm nên một gã khổng lồ trong công nghệ tìm kiếm thông tin trên mạng và thật khó có thể tưởng tượng nếu không có một công cụ Search như vậy thì liệu internet có phát triển được thể này.

Nhưng cũng cần nhận ra rằng, gã khổng lồ này cũng không thể đáp ứng được hết nhu cầu của cư dân trên mạng. Chắc chắn bạn đã từng tìm những thông tin trên mạng bằng những công cụ Search và nhận được những kết quả không sát thực với nhu cầu tìm kiếm và đến một lúc nào đó bạn lại nhờ bạn bè hay tình cờ tìm được một trang tuyệt vời, đáp ứng đầy đủ những gì bạn cần.

Vì sao vậy? Vấn đề cơ bản nằm ở cơ chế hoạt động của hệ thống web. Các trang web chứa các thông tin đa phương tiện: text, hình ảnh, âm thanh…dù ở dạng tĩnh hay động thì cũng là những thông tin chỉ có tác dụng hiển thị cho người dùng chứ không để cho máy tính hiểu và xử lý. Vì vậy, với hệ thống web như vậy thì chúng ta phải tìm kiếm thông tin trên web bằng cách nào? Đương nhiên là phải phân tích thông tin trên trang web (data mining) và công nghệ xử lý văn bản đã trở thành một để tài nghiên cứu được phát triển rất nhanh chóng. Các công cụ Search với cơ chế hoạt động dùng web spider lùng sục những trang web mới, phân tích dữ liệu trên trang web để “cố gắng” hiểu nội dung của nó, sau đó đánh chỉ số và lưu trữ các thông tin quan trọng và địa chỉ của trang web. Khi người search thông tin, họ sẽ đưa ra những từ khóa, nếu từ khóa khớp với những từ quan trọng của trang web nào đó thì trang đó sẽ là kết quả trả về của phép tìm kiếm.

Nhưng cơ chế này hạn chế ở ngữ nghĩa. Vì nếu chỉ sử dụng những từ khóa để tìm kiếm thì do vấn đề ngôn ngữ (từ đa nghĩa…) mà có nhiều sự nhập nhằng và nhầm lẫn dẫn đến kết quả sai. Hơn nữa, việc hiểu nổi dung của trang web thông qua phân tích text cũng không phải là phương pháp có độ chính xác cao. Vì vậy, mà cộng đồng những nhà nghiên cứu vẫn nung nấu một mong muốn “ngữ nghĩa” hóa hệ thống web. Nghĩa là trang web bây giờ sẽ chứa đựng thông tin chủ đạo trên trang đó và biểu diễn dưới dạng mà máy tính có thể hiểu được, xử lý được. Và nếu viễn cảnh đó thành công thì triết lý “thông tin mọi nơi” sẽ biến thành “thông tin tốt nhất mọi nơi”.

Vấn đề quan trọng nhất ở đây là làm thể nào để các trang web có được những thông tin ngữ nghĩa chủ đạo của nó. Ví dụ như trang web này nói về vấn đề gì? Thuộc lĩnh vực nào…Tất nhiên, câu trả lời dễ nhất sẽ là hãy để người nào cung cấp nội dung cho trang web đó viết thông tin ngữ nghĩa của web vì họ chính là người nắm rõ nhất thông tin quan trọng trên web. Vậy thì giải pháp đã có rồi???

Chúng ta hãy cùng nhau tạo và một công cụ, cụ thể là một ngôn ngữ chuẩn cho web mà có thể biểu diễn được thông tin ngữ nghĩa cho web, có thể tạo một mô hình dữ liệu web mà máy tính có thể “hiểu” được. Và W3C Web Semantic Group đã cho ra đời các ngôn ngữ như RDF (Resource Desciption Framework), RDF shema, và OWL với một hi vọng như thế. Cách thức biểu diễn một cách hình thức các khái niệm nhằm mục đích tạo ngữ nghĩa cho web người ta gọi là ontology trong computer science.

Khái niệm về ontology

Trong khoa học máy tính, một ontology là một mô hình dữ liệu biểu diễn một lĩnh vực và được sử dụng để suy luận về các đối tượng trong lĩnh vực đó và mối quan hệ giữa chúng. Ontology cung cấp một bộ từ vựng chung bao gồm các khái niệm, các thuộc tính quan trọng và các định nghĩa về các khái niệm và các thuộc tính này. Ngoài bộ từ vựng, ontology còn cung cấp các ràng buộc, đôi khi các ràng buộc này được coi như các giả định cơ sở về ý nghĩa mong muốn của bộ từ vựng, nó được sử dụng trong một miền mà có thể được giao tiếp giữa người và các hệ thống ứng dụng phân tán hỗn tạp khác.




Các ontology được sử dụng như là một biểu mẫu trình bày tri thức về thế giới hay một phần của nó. Các ontology thường miêu tả:

* Các cá thể: Các đối tượng cơ bản, nền tảng
* Các lớp: Các tập hợp, hay kiểu của các đối tượng
* Các thuộc tính: Thuộc tính, tính năng, đặc điểm, tính cách, hay các thông số mà các đối tượng có và có thể đem ra chia sẻ.
* Các mối liên hệ: Các con đường mà các đối tượng có thể liên hệ tới một đối tượng khác.

Bộ từ vựng ontology được xây dựng trên cơ sở tầng RDF và RDFS, cung cấp khả năng 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.

Các phần tử trong ontology

Các cá thể (Individuals) - Thể hiện

Các cá thể là các thành phần cơ bản, nền tảng của một ontology. Các cá thể trong một ontology có thể bao gồm các đối tượng cụ thể như con người, động vật, cái bàn… cũng như các cá thể trừu tượng như các thành viên hay các từ. Một ontology có thể không cần bất kỳ một cá thể nào, nhưng một trong những lý do chính của một ontology là để cung cấp một ngữ nghĩa của việc phân lớp các cá thể, mặc dù các cá thể này không thực sự là một phần của ontology.

Các lớp (Classes) - Khái niệm

Các lớp là các nhóm, tập hợp các đối tượng trừu tượng. Chúng có thể chứa các cá thể, các lớp khác, hay là sự phối hợp của cả hai.

Các ontology biến đổi tuỳ thuộc vào cấu trúc và nội dung của nó: Một lớp có thể chứa các lớp con, có thể là một lớp tổng quan (chứa tất cả mọi thứ), có thể là lớp chỉ chứa những cá thể riêng lẻ, Một lớp có thể xếp gộp vào hoặc bị xếp gộp vào bởi các lớp khác. Mối quan hệ xếp gộp này được sử dụng để tạo ra một cấu trúc có thứ bậc các lớp, thường là với một lớp thông dụng nhất kiểu Thing ở trên đỉnh và các lớp rất rõ ràng kiểu 2002, Ford ở phía dưới cùng.

Các thuộc tính (Properties)

Các đối tượng trong ontology có thể được mô tả thông qua việc khai báo các thuộc tính của chúng. Mỗi một thuộc tính đều có tên và giá trị của thuộc tính đó. Các thuộc tính được sử dụng để lưu trữ các thông tin mà đối tượng có thể có. Ví dụ, đối với một cá nhân có thể có các thuộc tính: Họ_tên, ngày_sinh, quê_quán, số_cmnd…
Giá trị của một thuộc tính có thể có các kiểu dữ liệu phức tạp.

Các mối quan hệ (Relation)

Một trong những ứng dụng quan trọng của việc sử dụng các thuộc tính là để mô tả mối liên hệ giữa các đối tượng trong ontology. Một mối quan hệ là một thuộc tính có giá trị là một đối tượng nào đó trong ontology.

Một kiểu quan hệ quan trọng là kiểu quan hệ xếp gộp (subsumption). Kiểu quan hệ này mô tả các đối tượng nào là các thành viên của các lớp nào của các đối tượng.

Hiện tại, việc kết hợp các ontology là một tiến trình được làm phần lớn là thủ công, do vậy rất tốn thời gian và đắt đỏ. Việc sử dụng các ontology là cơ sở để cung cấp một định nghĩa thông dụng của các thuật ngữ cốt lõi có thể làm cho tiến trình này trở nên dễ quản lý hơn. Hiện đang có các nghiên cứu dựa trên các kỹ thuật sản sinh để nối kết các ontology, tuy nhiên lĩnh vực này mới chỉ hiện hữu về mặt lý thuyết.

Ngôn ngữ OWL

OWL (The Web Ontology Language) là một ngôn ngữ gần như XML dùng để mô tả các hệ cơ sở tri thức. OWL 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 (domain) 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 doanh 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 bởi nó có nhiều tiện lợi để biểu diễn ý nghĩa và ngữ nghĩa hơn so vớ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 có thể biểu diễn được trên Web.

Các phiên bản của OWL

Hiện nay có ba loại OWL : OWL Lite, OWL DL (description logic), và OWL Full.
OWL Lite: hỗ trợ cho những người dùng chủ yếu cần sự phân lớp theo thứ bậc và các ràng buộc đơn giản. Ví dụ: Trong khi nó hỗ trợ các ràng buộc về tập hợp, nó chỉ cho phép tập hợp giá trị của 0 hay 1. Điều này cho phép cung cấp các công cụ hỗ trợ OWL Lite dễ dàng hơn so với các bản khác.OWL DL (OWL Description Logic): hỗ trợ cho những người dùng cần sự diễn cảm tối đa trong khi cần duy trình tính tính toán toàn vẹn (tất cả các kết luận phải được đảm bảo để tính toán) và tính quyết định (tất cả các tính toán sẽ kết thúc trong khoảng thời gian hạn chế). OWL DL bao gồm tất cả các cấu trúc của ngôn ngữ OWL, nhưng chúng chỉ có thể được sử dụng với những hạn chế nào đó (Ví dụ: Trong khi một lớp có thể là một lớp con của rất nhiều lớp, một lớp không thể là một thể hiện của một lớp khác).

OWL DL cũng được chỉ định theo sự tương ứng với logic mô tả, một lĩnh vực nghiên cứu trong logic đã tạo nên sự thiết lập chính thức của OWL.OWL Full muốn đề cập tới những người dùng cần sự diễn cảm tối đa và sự tự do của RDF mà không cần đảm bảo sự tính toán của các biểu thức. Ví dụ, trong OWL Full, một lớp có thể được xem xét đồng thời như là một tập của các cá thể và như là một cá thể trong chính bản thân nó. OWL Full cho phép một ontology gia cố thêm ý nghiã của các từ vựng được định nghĩa trước (RDF hoặc OWL).
Các phiên bản này tách biệt về các tiện ích khác nhau, OWL Lite là phiên bản dễ hiểu nhất và phức tạp nhất là OWL Full.

Mối liên hệ giữa các ngôn ngữ con của OWL:
- Mọi ontology hợp lệ dựa trên OWL Lite đều là ontology hợp lệ trên OWL DL
- Mọi ontology hợp lệ dựa trên OWL DL đều là ontology hợp lệ trên OWL Full
- Mọi kết luận hợp lệ dựa trên OWL Lite đều là kết luận hợp lệ trên OWL DL
- Mọi kết luận hợp lệ dựa trên OWL DL đều là kết luận hợp lệ trên OWL Full
(Bài viết có tham khảo của nhiều giáo sư )
--------------------------------------------------------------------------------------------------------------------------------------
Bài này sưu tầm tại http://www.aiti-aptech.com.vn/forums/showthread.php?t=2586