Mở đầu Ở chƣơng này chúng em sẽ trình bày chi tiết phần lý thuyết về ontology. Cụ thể là gồm các phần nhƣ định nghĩa, sự cần thiết của ontology, thành phần , cách xây dựng một ontology và ngôn ngữ để xây dựng nó. Ngoài ra, chúng em cũng trình bày về một số nghiên cứu có lên quan đến việc xây dựng và làm giàu ontology mà chúng em đã khảo sát. Đây sẽ là tài liệu tham khảo cho việc đề xuất ra phƣơng pháp làm giàu ontology ở chƣơng sau.
Tổng quan về ontology 2. Định nghĩa Trong triết học, từ “ontology” tạm dịch là “bản thể học” đƣợc xuất phát từ tiếng Hy Lạp có nghĩa là bộ môn nghiên cứu về sự tồn tại (theo wikipedia). Hiện nay ontology đƣợc dùng trong nhiều lĩnh vực nhƣ khoa học máy tính, hệ thống kỹ thuật, kỹ thuật phần mềm, tin sinh học, khoa học thƣ viện, kiến trúc thông tin và các website ngữ nghĩa (Semantic web). Một số định nghĩa về ontology đƣợc sử dụng nhiều hiện nay gồm: Theo quan điểm triết học, “bản thể học” là ngành khoa học nghiên cứu về bản chất của sự vật, sự tồn tại hoặc những sự vật thực tế, cũng nhƣ các loại sự vật cơ bản và các mối quan hệ của chúng (wikipedia).
Theo Gruber trong tài liệu [20], một ontology là một đặc tả rõ ràng của một sự trừu tƣợng hóa (An ontology is an explicit specification of a conceptualization).Sowa [46], một ontology có thể đƣợc đặc tả bởi một danh mục các loại đƣợc xác định hoặc không đƣợc xác định chỉ bằng những câu phát biểu bằng ngôn ngữ tự nhiên. Một ontology chính thức đƣợc xác định bởi một tập GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh 5 hợp các tên khái niệm và loại quan hệ đƣợc tổ chức phân nhóm theo thứ tự cục bộ. Một ontology định nghĩa một tập từ vựng cho những nhà nghiên cứu sử dụng khi cần chia sẻ thông tin trong một lĩnh vực. Nó bao gồm những định nghĩa của các khái niệm cơ bản trong một lĩnh vực và mối quan hệ giữa chúng mà máy có thể hiểu đƣợc [2].
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 [36]. Tóm lại, trong khoa học máy tính có thể hiểu ontology gồm những tri thức khái niệm về một lĩnh vực cụ thể và các mối quan hệ giữa chúng. Một ontology về một lĩnh vực sẽ mô tả rõ ràng những thực thể, khái niệm, ràng buộc, quan hệ ngữ nghĩa thuộc lĩnh vực giúp con ngƣời và máy có thể hiểu và suy luận đƣợc theo ngữ nghĩa trong phạm vi lĩnh vực đó. Vì sao phải xây dựng ontology? Ở phần trên, chúng em đã đề cập đến việc ontology đã và đang đƣợc sử dụng trong nhiều lĩnh vực, vậy ontology đƣợc sử dụng nhiều là vì: Để chia sẻ kiến thức chung giữa con ngƣời hoặc những tác tử phần mềm với nhau [20].
Nếu các hệ thống cùng chia sẻ chung một ontology bên dƣới thì dữ liệu do con ngƣời nhập vào tại hệ thống này sau khi đƣợc xử lý thông qua ontology có thể đƣợc tổng hợp, phân tích tại một hệ thống khác và cung cấp thông tin cho ngƣời sử dụng khác. Cho phép tái sử dụng kiến thức về một lĩnh vực. Sau khi xây dựng một ontology cho một lĩnh vực, những ngƣời khác có thể tái sử dụng và mở rộng, làm giàu GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh 6 thêm cho nó. Hoặc cũng có thể tích hợp những ontology có sẵn để mô tả nhiều khái niệm thuộc một lĩnh vực nhỏ trong một ontology về một lĩnh vực lớn.
Làm rõ ràng những giả định thuộc chuyên ngành. Việc sử dụng một ontology ở bên dƣới thay vì dùng ngôn ngữ lập trình sẽ giúp dễ dàng thay đổi những giả định thuộc chuyên ngành khi kiến thức về lĩnh vực này của chúng ta thay đổi. Nếu những giả định này đƣợc viết bằng ngôn ngữ lập trình thì sẽ gây khó hiểu và khó thay đổi, sửa chữa nhất là đối với những ngƣời không phải là chuyên gia lập trình. Có thể phân tích và suy luận kiến thức chuyên ngành vì những thuật ngữ, khái niệm cũng nhƣ các mối quan hệ giữa chúng đều đƣợc khai báo, đặc tả trong ontology với cấu trúc có thể suy luận đƣợc theo ngữ nghĩa.
Cụ thể là do các khái niệm đƣợc lƣu dƣới cấu trúc cây phân cấp, tên của khái niệm và quan hệ là những từ và cụm từ có nghĩa biểu diễn cho những phát biểu có nghĩa. Thành phần của ontology [37] ● Các lớp (Classes) - Khái niệm Lớp là nhóm, tập hợp các đối tƣợng trừu tƣợng có thể chứa các cá thể, lớp khác hoặc 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ẻ. Các lớp đƣợc sắp xếp theo cấu trúc có thứ bậc, thông thƣờng một ontology có một lớp thông dụng nhất kiểu Thing ở trên đỉnh và các lớp con rất cụ thể ở phía dƣới cùng (theo Protégé 4 Tutorial).
Lớp có thể có các ràng buộc (restrictions) cho các quan hệ của cá thể thuộc lớp đó, ví dụ nhƣ một Tác giả phải viết một hoặc nhiều tác phẩm thì một GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh 7 cá thể của tác giả phải có quan hệ “là tác giả của” với một hoặc nhiều cá thể của tác phẩm. Mỗi cá thể có thể có các thuộc tính của lớp mà nó thể hiện và quan hệ với các cá thể khác theo ràng buộc của lớp. Những cá thể còn có thể đƣợc coi nhƣ là những trƣờng hợp của lớp. Trên thực tế một cá thể có thể có nhiều tên vì vậy có thể có trƣờng hợp nhiều cá thể có tên khác nhau nhƣng thực chất đều tham chiếu đến một cá thể thực sự.
Ví dụ nhƣ lớp Quốc gia có 2 cá thể là Hoa Kì và Mỹ nhƣng thực tế đây là cùng chỉ một quốc gia nên chúng sẽ cùng tham chiếu đến một cá thể. Nói cách khác, 2 tên đó là chỉ cùng một cá thể và chỉ có 1 cá thể đƣợc tạo ra để biểu diễn cho quốc gia đó. ● 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á thể của lớp ngƣời 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ó các kiểu thông thƣờng nhƣ String, int, float, date… và cũng có thể có các kiểu dữ liệu phức tạp nhƣ một cá thể khác chẳng hạn. ● Các mối quan hệ (Relations) Là thuộc tính để 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 đối tƣợng có thể có một hoặc nhiều quan hệ trong ontology bất GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh 8 kể lớp của nó có quan hệ đó hay không, quan hệ của đối tƣợng phải tuân theo ràng buộc của lớp chứa đối tƣợng đó nếu có. Ví dụ nhƣ một lớp Tác giả có quan hệ “nơi công tác hiện tại” với lớp Tổ chức. Quan hệ này có ràng buộc là một tác giả chỉ có một nơi công tác hiện tại, tức là một cá thể Tác giả chỉ có quan hệ với một cá thể của Tổ chức. Làm thế nào để xây dựng một ontology? a.
Phƣơng pháp xây dựng một ontology Hiện nay không có phƣơng pháp chuẩn nào cho việc xây dựng một ontology [2]. Khi xây dựng ontology chúng ta nên dựa vào nhu cầu của ứng dụng sẽ sử dụng nó để thiết kế cho phù hợp. Quá trình xây dựng một ontology là một quá trình lặp, thƣờng bắt đầu bằng một phiên bản thô rồi sao đó xem xét, chỉnh sửa, lọc lại ontology phiên bản trƣớc và thêm vào các chi tiết. Những khái niệm trong ontology là những đối tƣợng thực tế hoặc logic phản ánh thế giới thực và những quan hệ trong ontology thƣờng là những động từ trong câu mô tả khái niệm trong lĩnh vực.
Theo tài liệu [2] thì phƣơng pháp xây dựng ontology gồm các bƣớc: Bước 1: Xác định miền và phạm vi của ontology. Đây là bƣớc chúng ta nên làm trƣớc khi muốn xây dựng một ontology. Trong một hệ thống có sử dụng ontology thì các yêu cầu đối với nó thƣờng là mô tả một lĩnh vực nào đó nhằm cung cấp cơ sở tri thức trong việc giải quyết những mục đích chuyên biệt. Để nhận diện chính x ác những yêu cầu chúng ta cần phải trả lời một số câu hỏi nhƣ: Ontology cần mô tả lĩnh vực nào? Ontology phục vụ cho mục đích chuyên biệt gì? GVHD: Th.S Huỳnh Ngọc Tín SVTH: Trần Công Danh & Nguyễn Ngọc Khánh Linh 9 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? Các câu trả lời có thể thay đổi ở mỗi bƣớc lặp trong quá trình xây dựng ontology tùy mục đích của ứng dụng hoặc có những tính năng cần bổ sung lúc đó.
Trả lời các câu hỏi trên sẽ giúp giới hạn phạm vi thực sự của ontology cần mô tả và dự trù các kỹ thuật sẽ sử dụng trong quá trình phát triển. Ví dụ nhƣ 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ần phải có kỹ thuật xác định từ đồng nghĩa. 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, chúng ta tiếp tục tinh chỉnh lại bằng cách trả lời các 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 hệ thống dựa trên 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.