Tải bản đầy đủ (.pdf) (79 trang)

Luận văn thạc sĩ công nghệ thông tin nghiên cứu các thành phần cấu trúc trong ngôn ngữ SeRQL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (822.97 KB, 79 trang )



Lờ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
Võ Hoàng Hải

i

1 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.

ii
2 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

iii
2.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


iv
3 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

v
Hì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


1
1 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


2
đượ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 Các công trình liên quan
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]
.



3
Hì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

 cá nhân này là một người, Person, người được định nghĩa bởi
co /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

 giá trị của thuộc tính thư điện tử là: mailto:
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.


4
1.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


5

triể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.


6
1.2.4 Đồ thị ý niệm
Đồ thị ý niệm (CG) là một hệ thống luận lý dựa trên đồ thị tồn tại của Charles
Sanders Peirce và mạng ngữ nghĩa. Ngôn ngữ CG cho phép sử dụng một hình thức
đồ họa trực quan để 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. Đồ thị ý niệm là một đồ thị phân đôi
(bipartile graph) bao gồm hai loại đỉnh: các
đỉnh khái niệm (concept) và các đỉnh
quan hệ (relation) trong đó các đỉnh khái niệm chỉ liên kết với các đỉnh quan hệ bởi
các cạnh và ngược lại. Phép chiếu (projection) trên một đồ thị ý niệm chuẩn hóa cho
phép chúng ta thực hiện được các suy luận dựa trên cơ sở tri thức [10]
. Tri thức biểu
diễn trong đồ thị khái niệm dựa trên hai dàn phân cấp (hierarchy lattice) là kiểu khái
niệm (concept type) và quan hệ (relation type).
Bằ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:
Sinh viên: Nam Môn: *
Học
Khoa: CNTT
Thuộc


7

Hình 1.2.4.2: Ví dụ coreference

Đồ thị ý niệm trên biểu diễn cho phát biểu “Có người học cùng môn thuộc
khoa CNTT như sinh viên Nam”.
Với mục tiêu xây dựng một ngôn ngữ truy vấn dữ liệu quan hệ truyền thống,
tác giả F.Dau đã sử dụng đồ thị ý niệm là công cụ biểu diễn câu truy vấn [2]
. Trong
ngôn ngữ đồ thị ý niệm của mình, tác giả đề cập đến khái niệm mới: biến (variable)
đồ 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.
Sinh viên:
N
Môn: *
Học
Khoa: CNTT
Thuộc
Người: * Môn: *
Học


8
1.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.


9
2 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ị


10
từ 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:
Hình 2.2.2.1.1: Ví dụ đường dẫn cơ bản
Một phát biểu RDF chỉ là bộ ba (chủ ngữ, vị từ, bổ ngữ) nên quan hệ trong CG

của chúng tôi chỉ có quan hệ với đúng 2 khái niệm với chiều mũi tên tương ứng.
{Ai}<Học>{<Môn:Toán>}
? <Môn:Toán>
<Học>


11
2.2.2.2 Đường dẫn mở rộng
SeRQL hỗ trợ nhiều cách viết rút gọn biểu thức thay vì phải dùng nhiều biểu
thức đường dẫn cơ bản. Các dạng rút gọn được trình bày ngay sau đây:
 Kết nối các biểu thức đường dẫn cơ bản với nhau. Câu truy vấn “Tìm
những người làm việc trong công ty thuộc lĩnh vực tin học?” được biểu
diễn rút gọn trong SeRQL là:
{
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ị (Multi-
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:
{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:
{subj}pred{obj1},{subj}pred{obj2},{subj}pred{obj3}
 Biểu thức rẽ nhánh (Branched-path expression): được ứng dụng khi muốn
truy vấn một chủ ngữ có nhiều vị từ khác nhau. Biểu thức:

{subj}pred1{obj1} ; pred2{obj2}
tương đương với tập các biểu thức đường dẫn cơ bản sau:

{subj}pred1{obj1},{subj}pred2{obj2}
Thực chất các cách viết gọn của SeRQL là sự phát triển dựa trên biểu thức
đường dẫn cơ bản và các quan hệ luận lý. Do đó chỉ cần ánh xạ các chủ ngữ, bổ ngữ
thành khái niệm và vị từ thành quan hệ như trên thì hoàn toàn có thể biểu diễn được
các biểu thức đường dẫn mở rộng tương ứng (sau khi biểu diễn được các quan hệ
luận lý).


12
2.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:
 {_statement}rdf:type{rdf:Statement},

{_statement}rdf:subject {reifSubj},
 {_statement}rdf:predicate{reifPredicate},
 {_statement}rdf:object{reifObj},
 {_statement}pred{obj}
Như vậy chỉ cần định nghĩa bổ sung các kiểu khái niệm và quan hệ tương ứng
với các vị từ, chủ ngữ hay bổ ngữ của RDFS sẽ cho phép biểu diễn được Reification
trong ngôn ngữ CG tương ứng.
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à



13
{Document}<foo:title>{Title};
[<foo:author>{Author}]
Có thể được ánh xạ qua ngôn ngữ CG như sau:
Hình 2.2.2.4.1 Ví dụ đường dẫn tùy chọn
Để có thể thực hiện cho phép truy vấn với biểu thức đường dẫn tùy chọn, mô
hình CG được mở rộng bằng cách định nghĩa thêm loại quan hệ tùy chọn (optional
relation). Ứng với một vị từ truy vấn dữ liệu không đầy đủ là một quan hệ tùy chọn
trên CG. Về mặt biểu diễn chúng tôi dùng kí hiệu [ ] bao lấy tên để mô tả quan hệ
tùy chọn này:
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 đề};
Subj Obj

[Property]
? Title
foo:title
?
[foo:author]


14
[<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:
 <serql:directSubClassOf>
 <serql:directSubPropertyOf>
 <serql:directType>.

Trường hợp các vị từ xây dựng sẵn được sử dụng trong các biểu thức đường
dẫn, chỉ cần định nghĩa thêm các kiểu quan hệ trong ngôn ngữ CG tương ứng.
Trường hợp các vị từ này được sử dụng như là phép toán kiểm tra luận lý sẽ được
xét đến trong phần điều kiện luận lý.
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.


15
2.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:
 Các toán tử so sánh:
=,!=,>,>=,<,<=
 Toán tử LIKE
 Các hàm kiểm tra đối tượng truy vấn: isResource(), isLiteral(),
isURI(), isBNode()
 Các quan hệ so sánh giữa các lớp theo RDFS thông qua các vị từ định nghĩa
sẵn:
<serql:directSubClassOf>,
<serql:directSubPropertyOf>,
<serql:directType>
.
Mỗi loại toán tử luận lý này sẽ tương ứng thành một loại quan hệ định nghĩa
sẵn trong ngôn ngữ CG đề nghị. Chú ý rằng trong SeRQL mỗi loại toán tử chỉ có
thể thực hiện được trên một số các đối tượng nhất định, ví dụ phép toán > (lớn hơn)
chỉ dùng cho các hằng kiểu dữ liệu số, nên các quan hệ trong ngôn ngữ CG cũng chỉ
được phép liên kết với các khái niệm nh

ất định tương ứng. Vấn đề này sẽ được xem
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

TỉnhTP:?
Dân số
Có dân s

Integer:1000000
>


16
2.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”


17
Select 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”
Select label(L)
From {R} rdfs:label {L}
Person:* Name:?
name
EmailAddress:?
[email]
String: g*
LIKE


18
Where 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 Các tính năng nâng cao và tùy chọn khác
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.
R:* L
rdfs:label
isL
String: ?
lang()
isLiteral
LIKE
String:
“*”


19
Chú ý 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ả”.
Select Name
From {} rdf:type {ex:person}; ex:name {Name}
Where Name IN (
Select n
From {} rdf:type {ex:Author};
ex:name {n}
)
Hình 2.4.1.1 Truy vấn “Tìm tên của những người là tác giả”

SubQUERY:



* ex:Autho
r

rdf:type
ex:name
n?
IN
*
ex:Person
rdf:type
ex:name
Name:?

×