2.1.7.1. Ontology xử lý ngôn ngữ tiếng Việt
Là một ontology tổng quát (universal ontology) được thực hiện bởi Nguyễn Tuấn Đăng, Võ Hoài An, Nguyễn Trí Phúc trường Đại học Công nghệ Thông tin. Xây dựng trên phiên bản Protégé 3.4.3. Mục tiêu tác giả xây dựng ontology này là để đóng góp cho những nghiên cứu về xử lý ngôn ngữ tiếng Việt, xây dựng tri thức mở rộng trong nhiều lĩnh vực bằng tiếng Việt.
Dữ liệu của ontology là dữ liệu tổng quát về các lĩnh vực gồm 10 lĩnh vực chính theo các mục được lấy theo VNExpress như: Khoa học, Pháp luật, Chính trị, Kinh doanh, Thể thao, Văn hóa du lịch, Xã hội, Vi tính, Viễn thông, Ô tô xe máy. Ngoài ra còn lấy dữ liệu từ các nguồn như Wikipedia tiếng Việt, Yellow Page và nhiều website khác nhau liên quan đến các lĩnh vực trên.
Kết quả đã tạo ra được ontology gồm số lượng lớp là 2.543, số lượng cá thể là 10.024, với 312 ràng buộc và 87 thuộc tính thuộc nhiều lĩnh vực. Tuy nhiên, dữ liệu của ontology mang tính tổng quát, không tập trung vào một lĩnh vực (domain) cụ thể.
2.1.7.2. Ontology khoa học công nghệ
Được thực hiện bởi bộ môn hệ thống thông tin của trường đại học bách khoa Hà Nội. Hệ thống hỗ trợ tìm kiếm dựa trên từ khóa, cấu trúc dữ liệu lưu trữ, tìm kiếm mở rộng dựa trên ngữ nghĩa và tri thức phục vụ cho việc quản lý tài liệu và thông tin trong lĩnh vực khoa học công nghệ (KHCN). Nhằm giải quyết cho những yêu cầu đó tác giả đã đề xuất phương pháp xây dựng một ontology chuyên ngành khoa học công nghệ để khai thác các suy diễn ngữ nghĩa.
Những khái niệm được xây dựng dựa trên việc khảo sát nhu cầu quản lý thông tin tại phòng KHCN thuộc Đại học Bách Khoa Hà Nội, phòng KHCN thuộc sở Khoa học Công nghệ Thành Phố Hà Nội, sở Bưu chính Viễn thông. Người quản lý có thể là tác giả hoặc những người có quan tâm và có kiến thức về ontology sẽ nâng cấp cập nhật thông tin khi có thay đổi.
Với việc sử dụng ontology này hệ thống ngoài việc dùng để tra cứu các đề tài, sản phẩm công nghệ, chuyên gia, tài liệu, giải pháp, công nghệ… thì còn có thể trả lời được những câu hỏi tổng hơp phân tích như: Những đề tài nào thuộc lĩnh vực mà người dùng quan tâm?; Đề tài nào dành được sự quan tâm nhiều nhất cũng như nhận định về giá trị, khả năng ứng dụng vào thực tiễn?
Ontology này được xây dựng dùng phần mềm soạn thảo cơ sở tri thức được viết dựa trên các API của Protégé. Cơ sở dữ liệu này chứa dữ liệu về khoảng 3000 chuyên gia, 1500 đề tài cùng với hơn 150 lĩnh vực KHCN.
Tuy nhiên ontology này không rút trích được khái niệm hay cá thể từ nội dung tài liệu hay bài báo khoa học. Dữ liệu của ontology KHCN không đi sâu vào chuyên ngành công nghệ thông tin.
2.1.7.3. Ứng dụng web ngữ nghĩa xây dựng hệ thống trợ giúp học tập cho học sinh bậc học phổ thông học sinh bậc học phổ thông
Tác giả Nguyễn Trần Trọng đã bước đầu xây dựng được website hỗ trợ học tập. Tuy nhiên, việc ứng dụng và tính hiệu quả của công trình vẫn chưa được ghi nhận. Đây là công trình nghiên cứu giúp đỡ cho học sinh trong học tập. Tham khảo từ đề tài này cũng giúp ích nhiều trong việc nghiên cứu xây dựng ứng dụng tìm kiếm văn bản hành chính của chúng tôi.
2.1.8 Nhận xét chung về các công trình nghiên cứu semantic web trong nước trong nước
Nhìn chung, các công trình nghiên cứu về web ngữ nghĩa đã đạt được những thành công bước đầu như : xây dựng ontology, xây dựng ứng dụng... Tuy nhiên, những công trình này vẫn chưa được ứng dụng rộng rãi. Có rất ít các công trình web ngữ nghĩa được ứng dụng trong thực tiễn. Đa phần các lĩnh vực áp dụng web ngữ nghĩa đều là những lĩnh vực đang thu hút rất nhiều sự quan tâm và mang lại nhiều lợi nhuận. Vì vậy, hướng phát triển của web ngữ nghĩa trong tương lai chắc chắn sẽ hướng đến phục vụ cho đời sống chứ không mang nặng tính hàn lâm. Chúng tôi hy vọng trong tương lai sẽ có nhiều thêm các công trình hữu ích phục vụ cho xã hội.
2.2. Ý TƯỞNG VỀ HỆ THỐNG TÌM KIẾM VĂN BẢN
Qua những kết quả đã tìm hiểu được, chúng tôi nhận thấy các hệ thống vă bản phục vụ cho ngành giáo dục hiện nay hiện nay còn rất nhiều hạn chế, có thể đơn cử như sau :
- Chưa hỗ trợ tìm kiếm theo ngữ nghĩa (đặc biệt là tiếng Việt) để phục vụ cho việc tìm kiếm chính xác nội dung.
- Các văn bản của từng cấp, từng trường vẫn còn rải rác, chưa được tổng hợp thống nhất nhằm tạo nên kho dữ liệu cho.
- Chưa cho phép người dùng tham gia đóng góp ý kiến và thảo luận về các vấn đề liên quan.
2.3. CÁC NGÔN NGỮ XÂY DỰNG CÁC ONTOLOGY HỖ TRỢ TÌM KIẾM VĂN BẢN
2.3.1 RDF (Resource Description Framework) 2.3.1.1 Tổng quan RDF
RDF là nền tảng cho việc biểu diễn dữ liệu trong lĩnh vực Web 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 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 như số nguyên, chuỗi...hoặc cũng có thể là một tài nguyên.
Ví dụ :
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 nguyên
Đâ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.
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.
2.3.1.2 Chia sẻ dữ liệu RDF
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.
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 (Uniform Resource Identifier)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 bộ ba {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.
2.3.2 RDFS (RDF-Schema)
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. Do đó, 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.
So sánh giữa RDF và RDFS
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…
2.3.2.1 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 :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à số yếu tố... 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).
2.3.2.2 Ví dụ 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: {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} }
{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 so sánh giữa RDF và RDFS ở trên:
{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"} } {rdf:Property { rdf:ID,"involve"} {rdfs:domain, #Course}
} {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.
2.3.3 OWL (Ontology Web Language)
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.[16]
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ì 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).