Đồ thị ý niệm Concept Graph-CG là một mô hình biểu diễn tri thức trực quan có thể dùng làm ngôn ngữ truy vấn thân thiện hơn với người sử dụng.. Với mục tiêu phát triển ngôn ngữ đồ thị ý
Trang 1Lời cám ơn
Trước hết, tôi xin gửi lời cảm ơn sâu sắc đến thầy Cao Hoàng
Trụ, người đã trực tiếp hướng dẫn tôi hoàn thành bản luận văn này
Nếu không nhờ những hướng dẫn chu đáo và tận tình chỉ bảo của thầy
cùng những tài liệu quý giá do thầy cung cấp thì có lẽ luận văn này đã
không được hoàn thành và có kết quả như hôm nay
Tôi xin chân thành cảm ơn tất cả các thầy cô trong Khoa Công
Nghệ Thông Tin, cùng các thầy cô ở Phòng Đào Tạo Sau đại học
trường Đại Học Bách Khoa Tp.Hồ Chí Minh đã giúp đỡ tạo điều kiện
cho tôi hoàn thành khóa học cao học này
Tôi cũng xin gửi lời cảm ơn đến tất cả người thân, bè bạn,
những người đã động viên, khích lệ tinh thần, giúp tôi vượt qua mọi
khó khăn trong cuộc sống để đạt được kết quả như ngày hôm nay
Luận văn này được hoàn thành trong một thời gian hạn hẹp nên
sẽ không tránh khỏi sai sót, tôi rất mong sự góp ý của quí thầy cô và
các bạn
Học viên
Trang 21 Tóm tắt
Resource Desription Framework (RDF) và RDF Schema (RDFS) được thừa nhận là chuẩn biểu diễn thông tin tri thức cho Web ngữ nghĩa SeRQL là một ngôn ngữ truy vấn tri thức biểu diễn bởi RDF&RDFS hiệu quả Tuy nhiên với cú pháp tương tự ngôn ngữ truy vấn dữ liệu SQL truyền thống, SeRQL vẫn phức tạp đối với người sử dụng đầu cuối Đồ thị ý niệm (Concept Graph-CG) là một mô hình biểu diễn tri thức trực quan có thể dùng làm ngôn ngữ truy vấn thân thiện hơn với người
sử dụng Với mục tiêu phát triển ngôn ngữ đồ thị ý niệm truy vấn tri thức biểu diễn bằng RDF&RDFS tương đương với SeRQL, chúng tôi nghiên cứu các thành phần
cơ bản của ngôn ngữ SeRQL kết hợp khai thác sức mạnh diễn đạt và suy luận của
CG, từ đó xây dựng nên các thành phần của ngôn ngữ truy vấn tri thức bằng đồ thị ý niệm tương ứng
Luận văn này nghiên cứu các thành phần cấu trúc trong ngôn ngữ SeRQL, đề nghị cách ánh xạ chúng vào các thành phần của đồ thị ý niệm trong ngữ cảnh của tri thức biểu diễn bằng RDF&RDFS tương ứng và phát triển hướng hiện thực cho ngôn ngữ đồ thị ý niệm truy vấn tri thức biểu diễn bằng RDF&RDFS
Trang 32 Mục lục
1 Tóm tắt i
2 Mục lục ii
3 DANH MỤC HÌNH iv
1 CHƯƠNG 1: MỞ ĐẦU 1
1.1 Giới thiệu, động cơ và mục tiêu của đề tài 1
1.2 Các công trình liên quan 2
1.2.1 Resource Desription Framework (RDF) 2
1.2.2 Ngôn ngữ truy vấn RDF 4
1.2.3 Ngôn ngữ truy vấn SeRQL 4
1.2.4 Đồ thị ý niệm 6
1.3 Cấu trúc luận văn 8
2 CHƯƠNG 2: ÁNH XẠ CÁC THÀNH PHẦN SERQL VÀO CG 9
2.1 Giới thiệu 9
2.2 Hằng, Biến, Định danh tài nguyên duy nhất và Biểu thức đường dẫn 9
2.2.1 Hằng, Biến, Định danh tài nguyên duy nhất 9
2.2.2 Biểu thức đường dẫn 10
2.2.3 Cây phân cấp lớp và quan hệ trong RDF&RDFS 14
2.3 Mệnh đề điều kiện luận lý WHERE 14
2.3.1 Các toán tử luận lý cơ bản 15
2.3.2 AND, OR, NOT 16
2.3.3 Mệnh đề WHERE lồng trong điều kiện tùy chọn 16
2.3.4 Các hàm kiểm tra luận lý khác của SeRQL 17
2.4 Các tính năng nâng cao và tùy chọn khác 18
2.4.1 Truy vấn lồng nhau – Query Nesting 18
2.4.2 Các phép toán tập hợp 21
Trang 42.4.3 Các mệnh đề OFFSET và LIMIT 22
2.5 Kết luận 23
3 Chương 3: NGÔN NGỮ ĐỒ THỊ Ý NIỆM TRUY VẤN TRI THỨC 25 3.1 Giới thiệu 25
3.2 Đồ thị ý niệm truy vấn tri thức đơn giản - sCGQL 25
3.3 Đồ thị ý niệm truy vấn tri thức - CGQL 27
3.4 Đồ thị ý niệm truy vấn tri thức mở rộng - xCGQL 31
3.5 Kết luận 34
4 CHƯƠNG 4: HIỆN THỰC HỆ THỐNG TRUY VẤN TRI THỨC36 4.1 Giới thiệu 36
4.2 Tổng quan hệ thống truy vấn tri thức bằng xCGQL 37
4.3 Xây dựng công cụ soạn thảo đồ thị ý niệm truy vấn - xCGQL Editor 39 4.3.1 Truy vấn Ontology 40
4.3.2 Soạn thảo đỉnh khái niệm 42
4.3.3 Soạn thảo đỉnh quan hệ: 48
4.3.4 Kiểm tra tính hợp lệ của đồ thị ý niệm truy vấn 49
4.4 Phân tích, chuyển đổi đồ thị ý niệm truy vấn xCGQL thành câu truy vấn SeRQL 53
4.4.1 Cơ chế quản lý đối tượng 53
4.4.2 Phương pháp thực hiện chuyển đổi từ xCGQL thành SeRQL 55
4.4.3 Các thuật toán chuyển đổi chi tiết 59
4.5 Bộ thực thi truy vấn và hiển thị kết quả 66
4.6 Kết luận 67
5 CHƯƠNG 5: KẾT LUẬN 68
5.1 Tổng kết 68
5.2 Phương hướng phát triển 69
6 REFERENCE 70
7 PHỤ LỤC 73
Trang 53 DANH MỤC HÌNH
Hình 1.2.1.1: Ví dụ về RDF 3
Hình 1.2.4.1: Ví dụ CG 6
Hình 1.2.4.2: Ví dụ coreference 7
Hình 2.2.2.1.1 Ví dụ đường dẫn cơ bản 10
Hình 2.2.2.4.1 Ví dụ đường dẫn tùy chọn 13
Hình 2.2.2.4.2 Biểu diễn đường dẫn tùy chọn 13
Hình 2.3.1.1 Ví dụ về câu truy vấn dân số > 1000000 15
Hình 2.3.3.1 Ví dụ truy vấn WHERE trong điều kiện tùy chọn 17
Hình 2.3.4.1 Ví dụ truy vấn các hàm kiểm tra luận lý 18
Hình 2.4.1.1 Truy vấn “Tìm tên của những người là tác giả” 19
Hình 2.4.1.2 Truy vấn “Tìm tên và sở thích của những người có trùng tên với tên tác giả nào đó” 20
Hình 2.4.1.3 Truy vấn “Tìm giá trị lớn nhất trong của các tài nguyên trong cơ sở dữ liệu” 21
Hình 2.4.2.1 Ví dụ truy vấn với các phép toán tập hợp 22
Hình 2.4.3.1 Ví dụ truy vấn với các mệnh đề OFFSET, LIMIT 23
Hình 3.3.1 Ví dụ mở rộng thuộc tính 27
Hình 3.3.2: Biểu diễn chi tiết cho đỉnh khái niệm mở rộng 28
Hình 3.3.3 Truy vấn đỉnh mở rộng có điều kiện 30
Hình 3.4.1 Đỉnh truy vấn con các quan hệ 31
Hình 4.2.1: Hệ thống truy vấn tri thức bằng đồ thị ý niệm 37
Hình 4.2.2: Hệ thống truy vấn tri thức chi tiết 38
Hình 4.3.1: Cấu trúc bộ soạn thảo 40
Hình 4.3.2.1 Soạn thảo Đỉnh khái niệm 43
Trang 6Hình 4.3.2.2 Soạn thảo Kiểu khái niệm 44
Hình 4.3.2.3 Soạn thảo tham chiếu thực thể khái niệm 45
Hình 4.3.2.4 Soạn thảo cây ràng buộc điều kiện 46
Hình 4.3.2.5 Ví dụ giao diện soạn thảo đồ thị ý niệm 47
Hình 4.3.3.1 Soạn thảo đỉnh quan hệ 48
Hình 4.3.3.2 Cây phân cấp kiểu quan hệ 49
Hình 4.3.4.1 Cây ràng buộc điều kiện thuộc tính 51
Hình 4.4.1.1 Các mức truy vấn lồng nhau 54
Hình 4.4.1.2 Cấu trúc quản lý đối tượng 55
Hình 4.4.3.1 Chuyển đổi câu truy vấn sang SeRQL 65
Hình 4.5.1 Giao diện kết quả chuyển đổi 66
Trang 71 CHƯƠNG 1: MỞ ĐẦU
1.1 Giới thiệu, động cơ và mục tiêu của đề tài
Web ngữ nghĩa là hình thức mở rộng web hiện tại với thông tin trên nó được chú thích ngữ nghĩa giúp cho giao tiếp giữa con người và máy tính tốt hơn hay giúp cho máy tính có thể “hiểu” được ngữ nghĩa của thông tin [16] Song song với sự phát triển Web ngữ nghĩa, Resource Desription Framework (RDF) và RDF Schema (RDFS) được thừa nhận là chuẩn biểu diễn thông tin tri thức [12] Cũng theo đó, các ngôn ngữ truy vấn tri thức biểu diễn bởi RDF&RDFS ngày càng phát triển hiệu quả hơn Trong số các ngôn ngữ này, SeRQL là một ứng viên tiêu biểu đáp ứng được các yêu cầu chính yếu khi truy vấn tri thức biểu diễn bằng RDF&RDFS [3] Tuy nhiên với cú pháp tương tự ngôn ngữ truy vấn dữ liệu SQL truyền thống, SeRQL vẫn phức tạp trong việc truy vấn tri thức đối với người sử dụng
Đồ thị ý niệm (CG) mô hình biểu diễn tri thức trực quan Với khả năng ánh xạ vào ngôn ngữ tự nhiên một cách trực tiếp, CG được dùng làm ngôn ngữ trung gian chuyển đổi qua lại giữa ngôn ngữ tự nhiên và ngôn ngữ hình thức sử dụng cho máy tính Với biểu diễn trực quan dạng đồ họa, CG gần gũi với người sử dụng nhưng vẫn không mất đi tính đặc tả hình thức [5] Do đó có thể sử dụng CG làm ngôn ngữ truy vấn thông tin thân thiện hơn với người sử dụng
Việc sử dụng CG để truy vấn cơ sở dữ liệu quan hệ đã được đề cập trong bài viết của Frithjof Dau với mục tiêu xây dựng một ngôn ngữ truy vấn dữ liệu quan hệ phổ dụng và thân thiện hơn với người dùng so với ngôn ngữ SQL truyền thống [2] Hơn nữa, trong lĩnh vực biểu diễn tri thức, với kết luận CG dễ dàng được tích hợp với Web ngữ nghĩa [16], chúng ta hoàn toàn tin tưởng vào việc có thể xây dựng
Trang 8được một ngôn ngữ CG tương ứng với SeRQL – một ngôn ngữ truy vấn tri thức Web ngữ nghĩa biểu diễn bằng RDF&RDFS
Mục tiêu của luận văn là phát triển một ngôn ngữ đồ thị ý niệm truy vấn (CGQL) đủ mạnh, có khả năng diễn đạt gần tương đương với SeRQL khi truy vấn tri thức biểu diễn bằng RDF&RDFS Để thực hiện điều này, chúng tôi nghiên cứu các thành phần cơ bản của ngôn ngữ SeRQL kết hợp với việc khai thác sức mạnh diễn đạt, suy luận của CG, từ đó xây dựng nên các thành phần của ngôn ngữ CG tương ứng Ngôn ngữ CG này cần phải được biểu diễn hình thức ở bước tiếp theo Công việc cuối cùng là thực hiện một hệ thống truy hồi tri thức dùng đồ thị ý niệm
đã xây dựng ở phần giao diện
1.2.1 Resource Desription Framework (RDF)
RDF được xem là chuẩn biểu diễn và chuyển đổi thông tin cho Web ngữ nghĩa Trong RDF, thông tin về một tài nguyên (resource) nào đó được biểu diễn dưới dạng mệnh đề (statement) Mệnh đề là một bộ ba chủ ngữ-vị từ-bổ ngữ (subject-predicate-object triple) Cách thức biểu diễn thông tin của RDF cho phép các máy tính giao tiếp với nhau theo ngữ nghĩa của đối tượng nhưng cú pháp bộ ba của RDF không dễ đọc và hiểu bởi con người RDF Primer tiếp cận theo hướng diễn đạt mô hình RDF một cách trực quan bằng đồ thị [12] Trong đồ thị RDF, các chủ ngữ, bổ ngữ của bộ ba RDF được biểu diễn bằng các đỉnh của một đồ thị, trong khi các vị từ được biểu diễn bằng cung có hướng Các đỉnh và cung này được gán nhãn là các tài nguyên hay giá trị thông tin cụ thể
Dưới đây là ví dụ biểu diễn mô hình RDF trích từ [12]
Trang 9Hình 1.2.1.1: Ví dụ về RDF
RDF trong ví dụ này sử dụng Uniform Resource Identifier (URIs) để xác định:
một cá nhân, Eric Miller, xác định bởi http://www.w3.org/People/EM/contact#me
cá nhân này là một người, Person, người được định nghĩa bởi cohttp://www.w3.org/2000/10/swap /pim/contact #Person
cá nhân này có thuộc tính là địa chỉ thư điện tử (mailbox) xác định bởi http://www.w3.org/2000/10/swap/pim/contact#mailbox
giá trị của thuộc tính thư điện tử là: mailto:em@w3.org
Thực sự cách biểu diễn mô hình RDF thừa kế từ các ý tưởng biểu diễn tri thức bao gồm cả đồ thị ý niệm Sự so sánh giữa mô hình RDF và CG được tác giả Tim Berners Lee nghiên cứu trong [15] chỉ ra rằng hai lĩnh vực này có rất nhiều điểm trùng nhau và do đó dễ dàng kết hợp với nhau trong việc phát triển web ngữ nghĩa
Trang 101.2.2 Ngôn ngữ truy vấn RDF
Cùng với sự phát triển của RDF, nhiều ngôn ngữ truy vấn tài liệu RDF đã được đề nghị [11] Các ngôn ngữ này hầu như khác hẳn nhau về cú pháp và ngữ nghĩa và trải rộng theo nhiều hướng: từ ngôn ngữ khai báo, theo phương pháp truy vấn dữ liệu cổ điển (SQL) cho đến ngôn ngữ luật sinh, theo hướng suy luận dựa trên các luật (rules language)
Các ngôn ngữ truy vấn RDF lại có các chức năng hoặc cách hỗ trợ mở rộng khác nhau Tuy rằng hiện nay vẫn chưa có một ngôn ngữ nào được chấp nhận là chuẩn sử dụng, gần đây W3C đã đưa ra đặc tả và yêu cầu chung cho một ngôn ngữ truy vấn dữ liệu RDF [10]
Các ngôn ngữ truy vấn hầu hết đều được xem xét trên các tính chất chung bao gồm khả năng diễn đạt của ngôn ngữ, tính đóng, tính đầy đủ, tính trực giao và tính
an toàn [4] Hơn nữa, các ngôn ngữ truy vấn này phải đáp ứng được các yêu cầu của
mô hình RDF RDF là mô hình dữ liệu trừu tượng chỉ bao gồm các bộ ba RDF nên các ngôn ngữ sẽ không cung cấp các chức năng truy vấn liên quan đến việc lưu trữ
dự liệu cụ thể Mô hình RDF không chỉ lưu trữ thông tin mà còn hỗ trợ suy luận tri thức [14] Do đó các ngôn ngữ truy vấn cũng phải xem xét khía cạnh này và cung cấp chức năng nhận biết các hệ quả suy luận này Ngôn ngữ truy vấn tri thức còn phải hỗ trợ tính không đầy đủ thông tin của mô hình RDF vì không phải bất cứ tài nguyên nào được lưu trữ cũng có đầy thông tin mô tả về nó
1.2.3 Ngôn ngữ truy vấn SeRQL
SeRQL là ngôn ngữ hiệu quả đáp ứng các yêu cầu truy vấn RDF SeRQL là một phần của Sesame [8], một kiến trúc lưu trữ và truy vấn đa dạng tri thức biểu diễn bằng RDF và RDFS đang được phát triển bởi Aduna Ngôn ngữ này kết hợp các đặc tính của các ngôn ngữ truy vấn khác và thêm các chức năng riêng của mình
để đáp ứng được hầu hết các yêu cầu chính yếu Đồng thời trong quá trình phát
Trang 11triển, SeRQL còn đặt ra thêm các vấn đề thực tiễn mà một ngôn ngữ truy vấn RDF cần đáp ứng [3]
SeRQL hỗ trợ hai loại truy vấn tri thức Loại thứ nhất là tìm kiếm một bảng hay tập các giá trị hoặc là tập các biến ràng buộc giá trị Truy vấn loại này được gọi
là truy vấn tìm kiếm - “select query” Loại truy vấn tri thức thứ hai của SeRQL trả
về một đồ một đồ thị con hay một đồ thị RDF mới chứa thông tin của của mô hình RDF ban đầu Loại thứ hai được gọi là truy vấn xây dựng - “construct query” Mỗi loại truy vấn trong SeRQL thường bao gồm 6 mệnh đề: SELECT (hay CONSTRUCT), FROM, WHERE, LIMIT, OFFSET and USING NAME SPACE Mệnh đề đầu tiên SELECT (hay CONSTRUCT) xác định kết quả cuối cùng được truy vấn Mệnh đề tiếp theo FROM chứa các biểu thức đường dẫn (path-expression) Các biểu thức đường dẫn này xác định các quan hệ hay các liên kết giữa đối tượng trong đồ thị RDF được quan tâm trong câu truy vấn Mệnh đề WHERE dùng để kiểm tra các điều kiện luận lý trên các giá trị của các đối tượng tìm thấy trong đường dẫn Đối tượng là các đỉnh hay cạnh trong đồ thị RDF Các điều kiện luận lý trên các đối tượng này không thể diễn đạt bằng biểu thức đường dẫn sẽ được thực hiện trong mệnh đề WHERE Các mệnh đề LIMIT hay OFFSET
có thể dùng kết hợp hay riêng lẻ cho phép xác định một tập con của tất cả kết quả trở về Mệnh đề NAME SPACE cho phép định nghĩa các không gian tên để có thể dùng các tiếp đầu ngữ viết tắt khi truy vấn
Ở đây chúng tôi quan tâm chủ yếu đến câu truy vấn tìm kiếm - “select query” Trên thực tế, vì hai loại câu truy vấn tìm kiếm và xây dựng của SeRQL chỉ khác nhau về mặt tạo ra kết quả cuối cùng nên vấn đề truy vấn xây dựng sẽ được xem xét này ở phần hiện thực cuối cùng, khi đã có được kết quả truy vấn tìm kiếm
Như vậy có thể thấy SeRQL phát triển theo hướng dựa trên ngôn ngữ truy vấn
dữ liệu quan hệ SQL truyền thống Tuy đã có những cải tiến giúp người dùng có thể viết câu truy vấn dễ dàng nhưng với cú pháp tương tự ngôn ngữ SQL, SeRQL vẫn còn phức tạp với người dùng bình thường nếu không được học bài bản
Trang 12Bằng cách kết hợp các khái niệm và các quan hệ, mô hình CG có thể dùng để biểu diễn tri thức trực quan thân thiện với người dùng Sau đây là một ví dụ dùng
CG để biểu diễn cho phát biểu “Nam học một môn thuộc khoa CNTT”:
Hình 1.2.4.1: Ví dụ CG
Trong ví dụ trên, [Sinh viên: Nam],[Môn:*] và [Khoa:CNTT] là các khái niệm
có kiểu khái niệm lần lượt là Sinh viên, Môn, Khoa còn (Học) và (Thuộc) là các quan hệ Các tham chiếu –referents- Nam và CNTT của các khái niệm [Sinh viên:Nam] và [Khoa:CNTT] là các kí hiệu cá thể – individual markers chỉ định rõ một đối tượng thuộc về một kiểu khái niệm nào đó Tham chiếu * trong khái niệm [Môn:*] là một kí hiệu chung ám chỉ sự tồn tại của thực thể nào đó Hai khái niệm khác nhau nếu tham chiếu đến hai cá thể khác nhau Như vậy để nói rõ hai tham chiếu * cùng là một đối tượng, CG cho phép sử dụng liên kết coreferent:
Trang 13đồ thị ý niệm Khái niệm biến trong đồ thị ý niệm được biểu diễn bằng tham chiếu
? Nó có ý nghĩa là đối tượng có tham chiếu ? được xác định cụ thể khác hoàn toàn với đối tượng có tham chiếu * (là một đối tượng tồn tại nhưng không cần xác định) [1] Chúng tôi thừa kế ý tưởng này cho việc ánh xạ các biến trong SeRQL với các thành phần của CG ở phần tiếp theo Tuy nhiên, với cách tiếp cận theo hướng phân tích lý thuyết ngữ nghĩa, tác giả đã xây dựng được ngôn ngữ có ý nghĩa lớn về mặt
lý thuyết nhưng vẫn không dễ dàng đối với người sử dụng
Ngôn ngữ CG cũng được ứng dụng nhiều trong lĩnh vực biểu diễn tri thức Trong [7], các tác giả với mục tiêu biểu diễn dữ liệu thân thiện hơn với người sử dụng đã đề cập đến cách chuyển đổi các thông tin biểu diễn bằng RDF sang CG Với cách ánh xạ các thành phần tương ứng giữa RDF&RDFS và CG, các tác giả chỉ mới xây dựng hệ thống lưu trữ dữ liệu bằng CG thông qua việc chuyển đổi tri thức biểu diễn bằng RDF và đề nghị giải quyết vấn đề truy vấn dữ liệu RDF bằng CG trong tương lai
Trang 141.3 Cấu trúc luận văn
Tiếp theo sau chương 1 là phần trình bày chi tiết về ý tưởng và phương pháp của chúng tôi để đạt được mục tiêu đã đề ra Cấu trúc các chương tiếp theo như sau: Chương 2 trình bày chi tiết các thành phần cấu trúc của ngôn ngữ SeRQL Mục 2.2, 2.3 trình bày các thành phần cơ bản nhất của ngôn ngữ SeRQL Các tính năng nâng cao được trình bày ở mục 2.4 Song song với việc trình bày các thành phần của ngôn ngữ SeRQL ở các mục 2.2, 2.3 và 2.4, phương pháp ánh xạ các thành phần này vào các thành phần tương ứng của đồ thị ý niệm trong ngữ cảnh của tri thức biểu diễn bằng RDF&RDFS cũng được đề cập
Chương 3 tiếp theo giới thiệu ngôn ngữ truy vấn tri thức bằng đồ thị ý niệm (CGQL) Chương này tập trung mô tả hình thức cho ngôn ngữ CGQL từ các mức đơn giản ở các mục 3.2 và 3.3 đến mức nâng cao ở mục 3.4
Việc xây dựng hiện thực hệ thống truy vấn tri thức sử dụng ngôn ngữ CGQL
ở phần giao diện được trình bày ở chương 4 Mục 4.2 trình bày tổng quan hệ thống truy vấn tri thức bằng đồ thị ý niệm trong khi các mục 4.3, 4.4, 4.5 đi vào chi tiết các thành phần chức năng chính của hệ thống
Mỗi chương 2,3 và 4 được trình bày đều có phần giới thiệu và kết luận riêng Chương 5 tổng kết lại những kết quả đạt được và đề nghị hướng phát triển cho tương lai
Phần phụ lục giới thiệu chi tiết giao diện hệ thống đã xây dựng cũng như trình bày chi tiết cú pháp ngôn ngữ SeRQL và một số giải thuật hay mã nguồn liên quan được đề cập trong các chương 2,3 và 4
Trang 152 CHƯƠNG 2: ÁNH XẠ CÁC
THÀNH PHẦN SERQL VÀO CG
2.1 Giới thiệu
SeRQL (“Sesame RDF Query Language”) là ngôn ngữ truy vấn dữ liệu RDF
kết hợp nhiều đặc điểm hay của các ngôn ngữ truy vấn RDF khác nhau (RQL,
RDQL, N-Triple, N3) Các tính chất quan trọng nhất của SeRQL bao gồm việc hỗ
trợ cú pháp biểu thức đường dẫn linh hoạt, hỗ trợ RDF Schema và XML Schema
Với mục tiêu xây dựng ngôn ngữ đồ thị ý niệm có tính diễn đạt gần tương đương đề
ra ở phần trước, chương 2 tập trung xem xét các thành phần cơ bản nhất của ngôn
ngữ SeRQL và cách ánh xạ chúng vào các thành phần tương ứng trong một đồ thị ý
niệm Chúng ta tiếp cận theo hướng bắt đầu từ các thành phần cơ bản nhất và phát
triển dần dần thành câu truy vấn SeRQL đầy đủ Mục 2.2 bắt đầu bằng các thành
phần cơ bản nhất trong ngôn ngữ SeRQL
2.2 Hằng, Biến, Định danh tài nguyên duy nhất
và Biểu thức đường dẫn
2.2.1 Hằng, Biến, Định danh tài nguyên duy nhất
Định danh tài nguyên duy nhất (từ đây gọi tắt là tài nguyên) và hằng là các
thành phần cơ bản trong biểu diễn dữ liệu RDF Tài nguyên có thể là vị từ hay bổ
ngữ như hằng nhưng cũng có thể là chủ ngữ của một bộ ba RDF Chính vì vậy, cả
hằng và tài nguyên đều là các thành phần không thể thiếu để thành lập câu truy vấn
SeRQL Ngoài tài nguyên và hằng, trong câu truy vấn SeRQL, biến cũng là một
thành phần chính dùng để trả về kết quả tìm kiếm Biến cũng có thể là chủ ngữ, vị
Trang 16từ hay bổ ngữ được xác định bởi một tên Như vậy, thật sự là hằng, biến hay tài nguyên là các thành phần cơ bản nhất trong câu truy vấn SeRQL sẽ tùy theo ngữ cảnh truy vấn của nó mà được ánh xạ vào thành phần nào trong ngôn ngữ CG tương ứng Nói cách khác hằng, biến hay tài nguyên đều có thể là khái niệm hay quan hệ trong một CG
2.2.2 Biểu thức đường dẫn
Biểu thức đường dẫn là thành phần cơ bản nhất trong SeRQL Biểu thức đường dẫn sẽ được so trùng với một thành phần đồ thị trong RDF khi thực hiện câu truy vấn
2.2.2.1 Đường dẫn cơ bản
Biểu thức đường dẫn cơ bản nhất trong SeRQL thực chất là một bộ ba RDF được biểu diễn {node} edge {node} Một cách tự nhiên để biểu diễn biểu thức đường dẫn cơ bản trong mô hình CG là chuyển đổi bộ ba RDF thành một đồ thị CG: chuyển chủ ngữ hay bổ ngữ của bộ ba RDF thành khái niệm và chuyển vị từ thành quan hệ [7] Câu truy vấn “Ai là người học môn Toán?” có thể biểu diễn bằng SeRQL và CG tương ứng (giả sử kí hiệu <xxx> là một địa chỉ tài nguyên cụ thể) như sau:
Trang 17{Ai}<Làm việc>{Công ty}<thuộc lĩnh vực>{<Tin học>}
tương đương với tập 2 biểu thức đường dẫn cơ bản:
{Ai} <Làm việc> {Công ty}
và {Công ty} <thuộc lĩnh vực> {<Tin học>}
Kết nối nhiều đỉnh đồ thị RDF khác nhau thành đỉnh nhiều giá trị value node) Loại đường dẫn này có thể thực hiện cho các bổ ngữ cùng chủ ngữ và vị từ hay cho các chủ ngữ cùng vị từ và bổ ngữ Biểu thức đường dẫn:
(Multi-{subj} pred { obj1,obj2,obj3 }
tương đương với tập các biểu thức đường dẫn cơ bản sau:
Trang 182.2.2.3 Reification
Biểu diễn RDF cho phép dùng mệnh đề RDF để mô tả một mệnh đề RDF khác Ngôn ngữ SeRQL cho phép biểu diễn cấu trúc cú pháp cho Reification:
{{reifSubj}reifPred{reifObj}} pred {obj}
Trên thực tế, SeRQL hỗ trợ cách viết tắt cho Reification dựa trên RDFS, bao gồm các vị từ cơ bản như rdf:type, rdf:subject, rdf:predicate, rdf:object và rdf:Statement Như vậy biểu thức đường dẫn Reification trên đây sẽ tương đương với tập các biểu thức đường dẫn cơ bản sau:
2.2.2.4 Đường dẫn tùy chọn – (Optional Match)
SeRQL cho phép truy vấn trong điều kiện giá trị dữ liệu không tồn tại đối với một vị từ nào đó Điều này cho phép truy vấn dữ liệu không đầy đủ biểu diễn bằng RDF Phần biểu thức đường dẫn có vị từ chấp nhận truy vấn dữ liệu không tồn tại được gọi là đường dẫn tùy chọn
Ví dụ câu truy vấn: “Chỉ ra những tài liệu và tiêu đề của nó Nếu tài liệu có tên tác giả thì chỉ ra tên tác giả” được biểu diễn bằng ngôn ngữ SeRQL là
Trang 19
Hình 2.2.2.4.2 Biểu diễn đường dẫn tùy chọn
Chú ý: với quan hệ tùy chọn, chiều mũi tên qui ước được dùng để định tầm
vực tùy chọn cho quan hệ Và một khi quan hệ [Property] là tùy chọn thì toàn bộ phần đồ thị ý niệm tiếp theo sau Obj là tùy chọn đối với Subj của quan hệ này Với cách hiện thực như trên, rõ ràng đã cho phép lồng các quan hệ tùy chọn vào nhau theo cách hiểu quan hệ đứng trước bao lấy các quan hệ tùy chọn phía sau mũi tên của nó Đây cũng ưu điểm cho phép trong SeRQL Để minh họa, hãy xem
xét ví dụ sau: “Chỉ ra những tài liệu và tiêu đề tài liệu Nếu tài liệu có tác giả, chỉ
ra tác giả Nếu tác giả có tên thì chỉ ra tên, nếu có email thì chỉ ra email của tác giả đó”
{Tài liệu}<foo:có tiêu đề>{Tiêu đề};
? [foo:author]
Trang 20[<foo:có tác giả>{Tác giả}[<foo:có tên>{Tên}]; [<foo:email>{Email}]]
Như vậy theo cách hiểu đã qui định, Tên và Email lần lượt có vị từ
<foo:có tên> và <foo:email> là tùy chọn đối với Tác giả và Tác giả có vị
từ <foo:có tác giả> là tùy chọn của Tài liệu Hơn nữa cả Tên, Email cũng là tùy chọn đối với Tài liệu
2.2.3 Cây phân cấp lớp và quan hệ trong RDF&RDFS
SeRQL hỗ trợ RDFS thông qua các vị từ Ví dụ vị từ <rdfs:subClassOf> để diễn đạt quan hệ lớp con trong RDF [9] Ngoài ra SeRQL cung cấp thêm các vị từ xây dựng sẵn cho phép truy vấn về sự phân cấp các lớp Các vị từ này được dùng như những vị từ của bộ ba RDF trong các biểu thức đường dẫn hoặc dùng để kiểm tra điều kiện luận lý trên những đối tượng truy vấn trong mệnh đề WHERE [3] Sau đây là một số vị từ được cung cấp trong SeRQL:
2.3 Mệnh đề điều kiện luận lý WHERE
Mệnh đề WHERE chỉ cho phép SeRQL truy vấn các điều kiện luận lý trên các biến sau khi đã so trùng biểu thức đường dẫn Trên quan điểm đồ thị ý niệm, các điều kiện luận lý giữa hai thực thể cũng là một loại quan hệ Từ đó, các điều kiện luận lý trong câu SeRQL sẽ được ánh xạ thành các quan hệ trong ngôn ngữ CG
Trang 212.3.1 Các toán tử luận lý cơ bản
Các toán tử luận lý trong mệnh đề WHERE được phép trong SeRQL bao gồm:
xét khi hiện thực hệ thống Dưới đây là ví dụ minh họa cho câu truy vấn: “Chỉ ra các tỉnh thành có dân số nhỏ hơn 1000000” :
Select TỉnhTP
From {TỉnhTP} <foo:có dân số> {Dânsố}
Where Dânsố > “1000000”^^xsd:Integer
Hình 2.3.1.1 Ví dụ về câu truy vấn dân số > 1000000
Trang 222.3.2 AND, OR, NOT
Trong SeRQL, các toán tử quan hệ luận lý giữa các đối tượng truy vấn có thể kết hợp với nhau qua các ràng buộc luận lý AND, OR, NOT trong mệnh đề WHERE.Trong mô hình CG đơn giản qui tắc ràng buộc AND giữa các quan hệ được hiểu là các mệnh đề viết liền nhau Để phủ định một tập các quan hệ, chúng ta tạo khái niệm mệnh đề bao lấy rồi phủ định [13] Qui tắc OR được thực hiện thông qua phép biến đổi Demorgan: x OR y = NOT((NOT x) AND (NOT y)) Tuy nhiên, điều này quá phức tạp với người sử dụng cuối cùng nên không được sử dụng trong ngôn ngữ CG của chúng tôi
Để mô tả đơn giản hơn cho người sử dụng đầu cuối, ngôn ngữ CG được mở rộng bằng cách ẩn đi các điều kiện luận lý bên trong bản thân các khái niệm hay quan hệ Vấn đề này sẽ được đề cập lại trong phần xây dựng ngôn ngữ và hiện thực
hệ thống
2.3.3 Mệnh đề WHERE lồng trong điều kiện tùy chọn
Như đã thảo luận trong mục trước, ngôn ngữ SeRQL cho phép tùy chọn trong
so trùng đường dẫn Mạnh hơn nữa, SeRQL còn cho phép thực hiện các mệnh đề điều kiện luận lý WHERE cho các thành phần tùy chọn và gọi là Nested WHERE Trong một câu truy vấn tùy theo các điều kiện so trùng tùy chọn mà có thể có nhiều mệnh đề Nested WHERE Tuy nhiên chỉ có thể có nhiều nhất một mệnh đề WHERE chính cho toàn câu truy vấn
Vấn đề này cũng không ảnh hưởng nhiều đến mô hình CG xây dựng theo các ánh xạ như trên Như đã đề cập, khi sử dụng quan hệ tùy chọn đã qui định tầm vực tùy chọn cho một vị từ là toàn bộ phần đồ thị tiếp theo của mũi tên đi ra khỏi vị từ
đó Như vậy mọi quan hệ luận lý trên thành phần tùy chọn này sẽ thuộc mệnh đề Nested WHERE theo một cách tự nhiên Ví dụ: “Chỉ ra tên của tất cả những người trong cơ sở dữ liệu Đồng thời, nếu những người này có địa chỉ mail thì chỉ ra những địa chỉ mail của họ bắt đầu bằng kí tự g”
Trang 23Select Name, EmailAddress
From {Person} name {Name};
[email {EmailAddress}
WHERE EmailAddress LIKE “g*” ]
Hình 2.3.3.1 Ví dụ truy vấn WHERE trong điều kiện tùy chọn
Ở đây điều kiện LIKE “g*” chỉ áp dụng cho các trường hợp có địa chỉ mail
2.3.4 Các hàm kiểm tra luận lý khác của SeRQL
SeRQL hỗ trợ người dùng các hàm tiện ích để xử lý các hằng (literal) và các định danh tài nguyên URIs Các hàm này vừa cho phép trả về giá trị truy vấn vừa cho phép thực hiện chức năng kiểm tra luận lý trong mệnh đề WHERE Các hàm tiện ích trên hằng bao gồm label(), lang() và datatype(), còn các hàm tiện ích trên tài nguyên là namespace() và localName(). Mỗi hàm tương ứng được xây dựng một cặp quan hệ luận lý và khái niệm tương ứng:
Khái niệm là đối tượng chứa kết quả trả về của hàm
Quan hệ giữa đối tượng hàm thực hiện với đối tượng kết quả
Xét ví dụ minh họa sau: “Tìm những tài nguyên trong cơ sở dữ liệu có nhãn là tên hằng bằng tiếng Anh”
Trang 24Where isLiteral(L) AND lang(L) like “en*”
Hình 2.3.4.1 Ví dụ truy vấn các hàm kiểm tra luận lý
Như vậy hàm lang() được mô tả trong CG bằng cặp quan hệ lang() và khái niệm String : ? Về mặt biểu diễn, chúng tôi dùng cặp dấu ngoặc đơn () theo sau tên các hàm trong quan hệ luận lý của CG để phân biệt với các phép toán luận lý bình thường,
2.4.1 Truy vấn lồng nhau – Query Nesting
SeRQL cung cấp nhiều cấu trúc cho các truy vấn lồng nhau Các truy vấn lồng nhau chỉ có thể xuất hiện như là một toán hạng cho các phép toán kiểm tra luận lý Một cách đơn giản, có thể xem một câu truy vấn SeRQL là một khái niệm trong CG
và biểu diễn chúng bằng một khái niệm đặc biệt Các truy vấn con (được lồng trong một câu truy vấn khác) này sẽ có kiểu khái niệm là SubQUERY Khái niệm mới sẽ tham gia vào các quan hệ luận lý hoàn toàn tương tự như đã thảo luận từ trước SeRQL cũng qui định tầm vực cho biến, một tên ở câu truy vấn ngoài cũng được hiểu là biến của câu truy vấn bên trong nếu được sử dụng lại Để thực hiện tương đương, liên kết coreferent được phép kết nối giữa các concept của câu truy vấn bên ngoài và câu truy vấn con trực tiếp của nó với ý nghĩa hai khái niệm cùng trỏ đến một đối tượng chung
isL
String: ? lang()
isLiteral
“ *”
Trang 25Chú ý rằng không phải câu truy vấn con có thể tham gia vào mọi phép toán kiểm tra luận lý SeRQL chỉ giới hạn trong một số toán tử luận lý cụ thể như IN (toán tử kiểm tra đối tượng nằm trong một tập kêt quả trả về) hoặc EXIST (kiểm tra tồn tại kết quả trả về của một câu truy vấn hay không) Các ví dụ sau lần lượt sẽ minh họa cách diễn đạt bằng mô hình CG khi gặp các câu truy vấn lồng nhau
“Tìm tên của những người là tác giả” Một cách viết theo truy vấn con như
sau: “Tìm tên của những người có tên trong các tên tác giả”
Trang 26 “Tìm tên và sở thích của những người có trùng tên với tên tác giả nào đó”
Hình 2.4.1.2 Truy vấn “Tìm tên và sở thích của những người
có trùng tên với tên tác giả nào đó”
SeRQL cho phép sử dụng các ràng buộc tồn tại và phổ dụng bằng ANY và ALL trên các toán hạng là câu truy vấn con của một quan hệ luận lý Tương tự như
n?
ex:name
=Name?
Trang 27các ràng buộc luận lý NOT đã đề cập ở trên, mô hình CG tiếp tục được mở rộng thêm bằng các loại quan hệ ràng buộc ANY và ALL cho các quan hệ luận lý có các toán hạng là khái niệm subQuery Xét ví dụ sau:
“Tìm giá trị lớn nhất trong của các tài nguyên trong cơ sở dữ liệu”?
Select highestValue
From {node} ex:value {highestValue}
Where highestValue >= ALL
( Select value
From {} ex:value {value} )
Hình 2.4.1.3 Truy vấn “Tìm giá trị lớn nhất trong của các tài
nguyên trong cơ sở dữ liệu”
Ví dụ trên đã minh họa cho chúng ta thấy cách áp dụng các quan hệ ràng buộc ANY, ALL trên các toán tử quan hệ có toán hạng là các câu truy vấn con
2.4.2 Các phép toán tập hợp
Hoàn toàn tương tự như truy vấn con, các phép toán tập hợp trên SeRQL bao gồm UNION, MINUS, INTERSECT cũng được chuyển thành các quan hệ trong mô hình ngôn ngữ CG tương ứng Sau đây là một ví dụ về phép toán UNION được minh họa bằng quan hệ trong mô hình CG
Trang 28“Tìm tất cả các tiêu đề sách mà thuộc tính của tiêu đề được mô tả bằng đặc tả dc10 và dc11”
Select title
From {book} dc10:title {title}
UNION
Select title
From {book} dc11:title {title}
Hình 2.4.2.1 Ví dụ truy vấn với các phép toán tập hợp
2.4.3 Các mệnh đề OFFSET và LIMIT
SeRQL cho phép các mệnh đề tùy chọn OFFSET và LIMIT để chọn một phần kết quả trả về của một câu truy vấn Mệnh đề LIMIT để giới hạn số lượng kết quả trả về, mệnh dề OFFSET chỉ ra kết quả trả về đầu tiên trong tất cả kết quả thõa mãn câu truy vấn Hoàn toàn tương tự, chúng ta có thể có thể áp dụng quan hệ luận lý cho các mệnh đề này trong mô hình CG Ví dụ sau minh họa cách chuyển đổi mệnh
đề OFFSET và LIMIT vào CG:
Trang 29“Chỉ ra 50 người có tên và địa chỉ email bắt đầu từ người thứ 100 trong dữ liệu”
Hình 2.4.3.1 Ví dụ truy vấn với các mệnh đề OFFSET, LIMIT
Các ví dụ ở trên được tham khảo trong [9] Ở đây chúng ta không quan tâm nhiều đến mệnh đề NAME SPACE vì thực tế mệnh đề này chỉ để rút gọn cách viết tắt các URIs Việc này hoàn toàn hiện thực được một cách dễ dàng bằng thuộc tính tùy chọn mặc định các name-space trong một hệ thống truy vấn dữ liệu RDF Trong các ví dụ trên, chúng ta đã giả định các name-space đã được khai báo
Interger: 50 Interger: 100
Trang 30truy vấn đồ thị ý niệm Cũng qua việc phân tích các thành phần của SeRQL, có thể hình dung công việc viết câu truy vấn của một người dùng bình thường thực tế không dễ dàng Ngôn ngữ truy vấn đồ thị ý niệm sẽ được chúng tôi giới thiệu và trình bày trong các chương tiếp theo Nguyên tắc “càng đơn giản cho người sử dụng càng tốt” luôn luôn được nhớ đến và đặt lên hàng đầu trong quá trình thiết kế, hiện thực và phát triển
Trang 313 Chương 3: NGÔN NGỮ ĐỒ THỊ
Ý NIỆM TRUY VẤN TRI THỨC
3.1 Giới thiệu
Như đã giới thiệu trong chương 1, ưu điểm của đồ thị ý niệm là tính trực quan,
có thể diễn đạt ý nghĩa chính xác về mặt luận lý nhưng lại thân thiện với người dùng mà máy tính có thể xử lý được Với mục tiêu ưu tiên phát triển ngôn ngữ đơn giản, hỗ trợ tối đa cho người sử dụng, chúng tôi cố gắng mô tả một cách hình thức ngôn ngữ truy vấn bằng đồ thị ý niệm ở mức độ đơn giản nhất có thể trong thời gian hạn hẹp của luận văn Việc phân tích chính xác ngữ nghĩa của tất cả các thành phần ngôn ngữ sẽ là một vấn đề lý thuyết lớn, chưa thật cần thiết và không sẽ được chú trọng trong luận văn này Thay vào đó chúng ta thiết kế, xây dựng và hiện thực hệ thống sử dụng ngôn ngữ truy vấn này
Sau khi đã phân tích các thành phẩn cơ bản của ngôn ngữ truy vấn tri thức RDF là SeRQL cũng như đề nghị các phương pháp ánh xạ thành phần tương ứng sang đồ thị ý niệm, chương này sẽ trình bày chi tiết ngôn ngữ truy vấn đồ thị ý niệm CGQL (Conceptual Graph Query Language) Mục 3.2, 3.3 đặc tả hình thức cho các thành phần cơ bản trong ngôn ngữ, mục 3.4 là phần mở rộng ngôn ngữ theo hướng
hỗ trợ tích cực người sử dụng
sCGQL
Định nghĩa 3.2.1: Một đồ thị ý niệm truy vấn tri thức đơn giản (viết tắt là
sCGQL) là một đồ thị ý niệm bao gồm tập các đỉnh khái niệm C liên kết với tập các đỉnh quan hệ giữa hai khái niệm R Một đỉnh khái niệm bao gồm kiểu khái niệm và tham chiếu đến đối tượng có khái niệm đó Một đỉnh quan hệ phải liên kết và chỉ
Trang 32liên kết với đúng hai khái niệm bằng các cạnh có hướng và xác định kiểu quan hệ
có hướng giữa hai đỉnh khái niệm liên kết với nó
Đỉnh khái niệm được biểu diễn bằng hình chữ nhật bao ngoài Kiểu_khái_niệm:Tham_chiếu gọi là nhãn của nó Một đỉnh quan hệ giữa hai khái niệm được kí hiệu bằng hình elíp bao ngoài nhãn của nó là Kiểu_quan_hệ
Một số ví dụ về sCGQL
Tìm tất cả những người có tên trong cơ sở tri thức (và tên của họ)?
Tìm tất cả nam đã có vợ trong cơ sở tri thức?
Tìm tất cả những gì (ai) sở hữu hoàn toàn Tòa nhà A1
Để truy vấn dữ liệu trong một kho tri thức cụ thể thì các kiểu khái niệm và kiểu quan hệ phải hoặc là xác định trong kho tri thức đó hoặc là đang được truy vấn
Đồ thị truy vấn cũng chỉ được phép khi có thành phần được truy vấn
Định nghĩa 3.2.2: Một sCGQL gọi là hợp lệ trên một Ontology nếu và chỉ
Trang 33 Kiểu quan hệ và kiểu khái niệm của hai khái niệm có quan hệ phải phù hợp với domain, range và relation trong Ontology
Có ít nhất một kiểu quan hệ, kiểu khái niệm hay tham chiếu khái niệm được truy vấn
Thực thể hay khái niệm trong Ontology thường có thuộc tính riêng của mình Các thuộc tính này cũng có thể được coi là khái niệm và có kiểu quan hệ “thuộc tính” với thực thể có thuộc tính đó
Ví dụ, thuộc tính ngày sinh của một người có thể được biểu diễn bằng simple CGQL như sau:
Hình 3.3.1 Ví dụ mở rộng thuộc tính
Để tăng tính đơn giản cho người sử dụng, chúng ta kết hợp các thuộc tính của một khái niệm vào trong đỉnh khái niệm gọi là đỉnh khái niệm mở rộng Chỉ những thuộc tính nào có quan hệ với các khái niệm khác chúng ta mới thể hiện thành khái
Trang 34niệm riêng cho nó Như vậy với đỉnh mở rộng khái niệm người như trên, chúng ta ngầm hiểu có thuộc tính ngày sinh ẩn chứa bên trong
Trong một đồ thị truy vấn, một thực thể khái niệm có thể được tìm kiếm dựa trên nhiều điều kiện thuộc tính khác nhau Để hỗ trợ khả năng này chúng tôi xây dựng cây điều kiện VÀ/HOẶC cho các thuộc tính của khái niệm bên trong nó
Định nghĩa 3.3.1: Một đỉnh khái niệm mở rộng là đỉnh khái niệm chứa bên
trong nó các thuộc tính riêng của mình và cây điều kiện VÀ/HOẶC của các thuộc tính này
Hình 3.3.2: Biểu diễn chi tiết cho đỉnh khái niệm mở rộng
Thực tế thì việc biểu diễn đồ thị ý niệm trên mặt phẳng sẽ thêm phức tạp và rắc rối, nhưng với sự hỗ trợ của máy tính, chúng ta có thể xây dựng các cấu trúc chương trình để hiện thực điều này dễ dàng Chúng ta sẽ trở lại vấn đề này trong phần hiện thực ngôn ngữ Đồng thời, để nhất quán trong thuật ngữ từ đây trở về sau, khi nói đến đỉnh khái niệm có nghĩa là đang đề cập đến đỉnh khái niệm mở rộng theo định nghĩa 3.2.2.1
Kiểu_khái_niệm : Tham _chiếu
Thuộc_tính_1 Thuộc_tính_2
Cây điều kiện VÀ/HOẶC
Thuộc_tính_1 Thuộc_tính_2 Và/Hoặc
Trang 35Định nghĩa 3.3.2: Một đỉnh khái niệm gọi là hợp lệ trên một Ontology nếu và
Định nghĩa 3.3.3: Một đỉnh quan hệ mở rộng là một đỉnh quan hệ giữa hai
khái niệm hoặc là quan hệ được định nghĩa trong Ontology, hoặc là các quan hệ khác do thuộc tính dữ liệu quy định (có thể chưa được mô tả trong dữ liệu nhưng được thừa nhận)
Định nghĩa 3.3.4: Một đỉnh quan hệ mở rộng gọi là hợp lệ trên một Ontology
nếu và chỉ nếu:
Kiểu quan hệ hoặc tồn tại trên ontology hoặc là quan hệ khác do thuộc tính
dữ liệu quy định hoặc đang được truy vấn
Các đỉnh khái niệm liên kết với nó phải phù hợp với kiểu quan hệ tức là phù hợp miển dữ liệu domain và range của nó
Một số ví dụ về đỉnh quan hệ mở rộng hợp lệ:
Quan hệ >= giữa Dân_số và Số_nguyên
Trang 36Quan hệ Bắt_đầu_bằng giữa Tên và Chuỗi_kí_tự
Định nghĩa 3.3.5: Trên một ontology O cho trước, C là tập các đỉnh khái niệm
hợp lệ R và aR lần lượt là tập hợp các kiểu quan hệ được định nghĩa trên O và được thừa nhận trên các kiểu dữ liệu Một đồ thị ý niệm truy vấn tri thức (viết tắt là CGQL) trên một Ontology là một đồ thị ý niệm có các đỉnh khái niệm hợp lệ thuộc
C liên kết với các đỉnh quan hệ mở rộng hợp lệ có kiểu quan hệ thuộc (R U aR) và
Hình 3.3.3 Truy vấn đỉnh mở rộng có điều kiện
Trang 373.4 Đồ thị ý niệm truy vấn tri thức mở rộng
Trong lĩnh vực truy vấn dữ liệu, tri thức thì các truy vấn lồng nhau tăng khả năng diễn đạt cho ngôn ngữ truy vấn, giúp cho người sử dụng có thể biểu diễn các câu truy vấn phức tạp Như đã phân tích ở chương 2 và để hỗ trợ khả năng thực thi các câu truy vấn lồng nhau, chúng tôi đã đề nghị xem các câu truy vấn con như là một khái niệm mới, có kiểu khái niệm riêng (tạm gọi là #subQuery) và tham chiếu đến thực thể của nó chính là toàn bộ nội dung câu truy vấn bên trong nó
Về mặt biểu diễn, khái niệm #subQuery không có ý nghĩa lắm đối với người
sử dụng Người sử dụng chỉ quan tâm đến nội dung truy vấn bên trong tức là đến tham chiếu thực thể của nó Chúng tôi xem các câu truy vấn con như là một đỉnh khái niệm đặc biệt được biểu diễn đặc biệt để phân biệt với các khái niệm còn lại gọi là đỉnh truy vấn con
Hình 3.4.1 Đỉnh truy vấn con các quan hệ
truy vấn con
Trang 38Đỉnh truy vấn con được biểu diễn bằng hình chữ nhật tròn góc bên trong là nội dung một đồ thị ý niệm truy vấn tri thức Một đỉnh truy vấn con là hợp lệ nếu đồ thị CGQL bên trong là hợp lệ
Cùng với việc mở rộng đỉnh khái niệm bằng cách chấp nhận đỉnh truy vấn con, chúng ta mở rộng thêm các đỉnh quan hệ mới Kiểu quan hệ giữa các đỉnh khái niệm của đồ thị truy vấn với đỉnh truy vấn con được xác định tương tự như sự thừa nhận các quan hệ mở rộng do các kiểu dữ liệu Đó chính là các quan hệ IN (thuộc), ABOVE_ALL (lớn hơn tất cả), BELOW_ALL (bé hơn tất cả),… Giữa các đỉnh truy vấn con cũng có thể cho phép các quan hệ tập hợp như UNION (hợp), INTERSECT (giao), hay MINUS (hiệu)…
Ta định nghĩa đồ thị ý niệm truy vấn tri thức mở rộng (viết tắt là xCGQL) một cách đệ qui như sau:
Định nghĩa 3.4.1: Trên một ontology O cho trước có, C là tập các đỉnh khái
niệm hợp lệ R, aR,sR và cR lần lượt là tập hợp các kiểu quan hệ: được định nghĩa trên O; được thừa nhận trên các kiểu dữ liệu; được chấp nhận giữa hai đỉnh truy vấn con và được chấp nhận giữa các đỉnh khái niệm với đỉnh truy vấn con
Đồ thị ý niệm truy vấn tri thức mở rộng được định nghĩa đệ qui như sau:
Nếu X là CGQL thì X là xCGQL
Nếu X, Y là xCGQL, r thuộc sR thì subQuery(X) r subQuery (Y) là một xCGQL nếu r hợp lệ (Kí hiệu subQuery(X) là đỉnh truy vấn con thành lập
từ X)
Nếu X, Y là xCGQL, c là một thành phần của X, c thuộc C, r thuộc cR , và
c r subQuery(Y), r hợp lệ thì X vẫn là xCGQL khi thêm vào X các đỉnh r và subQuery(Y) cùng quan hệ c r subQuery(Y)
Để có thể hiểu rõ về định nghĩa, xét ví dụ sau:
Trang 39Trên Ontology giả sử có tập hợp các kiểu khái niệm {Nam, Nữ, Tên} và các kiểu quan hệ R={Có_vợ, Có_tên}, tập hợp các kiểu quan hệ giữa Tên và kiểu dữ liệu Chuỗi là aR = {Start_with, End_with, Containt}, tập các quan hệ được chấp nhận giữa hai đỉnh truy vấn con là sR={UNION, INTERSECT} và tập hợp các quan hệ được thừa nhận giữa các đỉnh khái niệm với đỉnh truy vấn con cR={IN} Tập các đỉnh khái niệm hợp lệ C được hình thành từ các kiểu khái niệm Các đồ thị
ý niệm truy vấn tri thức sau được gọi là xCGQL (giả sử các đỉnh khái niệm là đỉnh hợp lệ):
1) Tìm các cặp nam nữ là vợ chồng (nam có vợ là nữ) ?
2) Tìm và hiển thị những nam có tên trong dữ liệu
3) Tìm tên của những người là nam hoặc nữ trong cơ sở dữ liệu