Như đã trình bày trong Chương 2, SeRQL là một ngôn ngữ truy vấn mạnh cho đồ thị RDF, nhưng nó không thích hợp cho người sử dụng đầu cuối với cú pháp phức tạp của ngôn ngữ và cấu trúc RDF. Các mẫu truy vấn cố định thì đơn giản nhưng không cho phép linh hoạt thay đổi tại chỗ các mẫu truy vấn. Với sự biểu diễn bằng đồ thị, đồ thị khái niệm dễ đọc hơn SeRQL và linh hoạt hơn các mẫu truy vấn cố định ([125]). Trong [30] và [139] các tác giả cũng cho thấy có thể ánh xạ dễ dàng giữa đồ thị khái niệm và đồ thị RDF. Để tận dụng cơ sở hạ tầng của Sesame, chúng tôi sử dụng đồ thị khái niệm đơn giản ([26], [38]) mở rộng với tham chiếu truy vấn (Queried Referent) ở mức giao diện, và ánh xạ chúng sang SeRQL để truy hồi tri thức.
Một đồ thị khái niệm truy vấn được định nghĩa là một đồ thị khái niệm không lồng nhau mà các tham chiếu của nó là một tham chiếu cá thể, tham chiếu chung ký hiệu bằng
“*”, hoặc tham chiếu truy vấn ký hiệu bằng “?”. Tham chiếu chung có thể so trùng với bất kỳ tham chiếu cá thể nào. Tham chiếu truy vấn biểu diễn tham chiếu đến thực thể muốn
tìm kiếm. Mỗi đồ thị khái niệm truy vấn kèm theo các ràng buộc về giá trị của các thuộc tính của các khái niệm trong nó.
Ví dụ, giả sử muốn tìm tất cả những người sinh ở Sài Gòn vào ngày 01/05/1980.
Yêu cầu này có thể diễn đạt bằng câu truy vấn SeRQL sau đây, mà mệnh đề FROM của nó có thể được ánh xạ sang đồ thị khái niệm ở Hình 5.1.1:
SELECT x1, z1
FROM [{x1} <rdfs:label> {z1}],
{x1} <rdf:type> {<www.dit.hcmut.edu.vn/vnkim/vnkimo_rdfs#Con_người>}, {x1} <www.dit.hcmut.edu.vn/vnkim/vnkimo_rdfs#nơi_sinh>
{<www.dit.hcmut.edu.vn/vnkim/vnkimkb_rdf#Thành_phố_43>}, {x1} <www.dit.hcmut.edu.vn/vnkim/vnkimo_rdfs#ngày_sinh> {p1}
WHERE p1 = “01/05/1980”
Hình 5.1.1 Một đồ thị khái niệm truy vấn
Trong ví dụ này, khái niệm truy vấn [Con_người: ?]được dịch sang cặp biến (x1, z1) trong mệnh đề của câu truy vấn SeRQL,trong đó x1 biểu diễn định danh và z1 biểu diễn nhãn của thực thể kết quả. Biểu thức đường dẫn trong các dấu ngoặc vuông [{x1}
<rdfs:label> {z1}] là nhiệm ý, để truy hồi và hiển thị nhãn của thực thể kết quả nếu có.
Tham chiếu cá thể Saigonxác định một thực thể đã biết chứ không phải tên của thực thể, và được dịch sang định danh của nó.Các quan hệ, bao gồm cả các thuộc tính ngầm như label, type, và ngày_sinh, trong đồ thị khái niệm truy vấn được dịch sang các phát biểu RDF trong mệnh đề FROM. Ràng buộc về giá trị của chiều cao được đặc tả trong mệnh đề WHERE. Hình 5.1.2 trình bày giải thuật để dịch một đồ thị khái niệm truy vấn sang các mệnh đề SeRQL tương đương.
Chúng tôi đã phát triển một phần mềm soạn thảo truy vấn cho VN-KIM, cho phép truy vấn tri thức và tài liệu đã chú thích bằng các mẫu cố định, đồ thị khái niệm, và phát biểu SeRQL.Nó cung cấp các công cụ vẽ để soạn thảo các đồ thị khái niệm truy vấn đối với Ontology và cơ sở tri thức của VN-KIM. Việc soạn thảo khái niệm được hỗ trợ bởi một công cụ duyệt cây phân cấp các kiểu khái niệm và các thực thể hiện có thuộc một kiểu
Con_người: ? 1 2 nơi_sinh Thành_phố: Saigon
khái niệm cụ thể. Cây phân cấp các kiểu quan hệ cũng có thể được duyệt khi soạn thảo các quan hệ, và sự phù hợp giữa một quan hệ với các khái niệm liên kết sẽ được kiểm tra khi vẽ đồ thị khái niệm. Các điều kiện về các giá trị thuộc tính của một thực thể có thể được đặc tả bằng các quan hệ ràng buộc trên các miền giá trị tương ứng như định nghĩa trong Ontology. Sau đó, các đồ thị khái niệm truy vấn sẽ được ánh xạ sang các phát biểu SeRQL như trình bày ở trên.
For each relation in the query CG do {
Get all domain and range concepts of the current relation // process each concept sequentially
For each concept do {
If the concept is new // i.e. it has not been processed before {
If the concept referent is ‘?’ or ‘*’
{
If the concept referent is ‘?’
{
Assign to it a variable starting with ‘x’ // e.g., x1, x2, x3, … Assign to it a label variable starting with ‘z’ // e.g., z1, z2, z3, … Append these variables to the SELECT clause
Append the “rdfs:label” statement for this concept to the FROM clause }
If the concept referent is ‘*’
{
Assign to it a variable starting with ‘y’ // e.g., y1, y2, y3, … }
Append the “rdf:type” statement for this concept to the FROM clause Append the constrained property statements for this concept to
the FROM clause
Assign to the constrained properties variables starting with ‘p’
// e.g., p1, p2, p3, …
Append the property constraints to the WHERE clause }
If the concept referent is specific, assign to it its identifier as a
dummy variable
Remember this concept having been processed }
}
// end of process concepts
Assign to the current relation its URI
Append the statement for the current relation to the FROM clause // {domain concept variable} <current relation’s URI> {range concept variable}
}
// process the disconnected concept nodes
For each concept that has not been visited yet, process it as above.
Hình 5.1.2 Giải thuật dịch đồ thị khái niệm truy vấn sang SeRQL
Phần mềm soạn thảo truy vấn của VN-KIM còn có các chức năng để lưu một đồ thị khái niệm truy vấn vào một tập tin XML, và nạp một đồ thị khái niệm truy vấn từ một tập tin XML. Một tập tin XML như vậy chứa cả thông tin về luận lý và đồ họa của từng phần tử trong đồ thị. Các thuộc tính luận lý của một phần tử là loại của nó (khái niệm, quan hệ, hay cạnh) và các thuộc tính cụ thể khác (như kiểu và tham chiếu của một khái niệm). Các thuộc tính đồ họa bao gồm các vị trí và màu sắc để hiển thị đồ thị.
Ví dụ, giả sử muốn tìm tất cả các công ty dịch vụ y tế và chăm sóc sắc đẹp có loại hình doanh nghiệp là doanh nghiệp nhà nước (DNNN) định vị ở các thành phố cấp một là một phần của quốc gia Việt Nam. Truy vấn này có thể được diễn đạt bằng một đồ thị khái niệm vẽ bằng phần mềm soạn thảo truy vấn của VN-KIM như minh họa ở Hình 5.1.3, cùng với các công cụ và thông tin trợ giúp. Hình 5.1.4 cho thấy các phát biểu SeRQL tương đương và các kết quả trả về theo cơ sở tri thức của VN-KIM.
Hình 5.1.3 Soạn thảo một đồ thị khái niệm truy vấn
Property constraint Instance Browser
Hình 5.1.4 Các phát biểu SeRQL tương đương và kết quả trả về