4- THIẾT KẾ VÀ HIỆN THỰC GIẢI THUẬT SO TRÙNG MỜ ĐỒ THỊ TRI THỨC
4.1 Kĩ thuật biến đổi truy vấn
Do bản chất của Web có ngữ nghĩa là nó dựa trên ontology, là một mạng phân cấp về
mặt ngữ nghĩa giữa các kiểu ý niệm và kiểu quan hệ, mô tả miền mà cơ sở tri thức sẽ lưu trữ
dữ liệu cũng như những gì mà người sử dụng sẽ tiến hành truy vấn. Điều này có thể dẫn đến việc người sử dụng có thể hiểu không chính xác về sự phân cấp ngữ nghĩa đã được xây dựng trong ontology. Hay nói cách khác, người sử dụng có thể không hiểu được chính xác quan
điểm của người xây dựng ontology hoặc có thể hiểu nhầm lẫn giữa các khái niệm. Điều này có thể làm cho người sử dụng không sử dụng đúng ý niệm cần tìm. Do đó, khi người sử dụng viết truy vấn có thể dẫn đến kết quả trả về là rỗng. Mặt khác, để tăng tính đáp ứng tốt trong việc trả lời truy vấn của ứng dụng, việc rút trích xấp xỉđể trả lời các kết quả gần với kết quả
mong muốn của người sử dụng là cần thiết.
Ví dụ, người sử dụng có thể thực hiện câu truy vấn “Tìm các sinh viên đại học có anh tên là Nguyễn Văn An”. Nếu cơ sở tri thức không có một sinh viên đại học nào thỏa mãn truy vấn trên, nhưng có tồn tại một sinh viên cao học cụ thể có anh là Nguyễn Văn An thì ta nên
đưa vào kết quả với độ sai lệch về mặt ngữ nghĩa giữa hai khái niệm sinh viên đại học và sinh viên cao học.
Việc bắt đầu tiến hành hiện thực toàn bộ giải thuật so trùng mờ đồ thị truy vấn của người sử dụng với các đồ thị tri thức có trong cơ sở tri thức để rút ra được các đồ thị tri thức mà gần với đồ thị truy vấn là một công việc khó khăn, đòi hỏi nhiều thời gian và công sức. Do
đó, ý tưởng chủ đạo của chúng tôi là tận dụng lại khả năng tìm kiếm có sẵn của hệ thống Sesame, đồng thời, kết hợp với kĩ thuật biến đổi truy vấn nhằm tìm được các kết quả tương tự
với kết quả mong muốn để trả về cho người sử dụng.
Dựa vào việc nghiên cứu hệ thống quản lý và truy vấn thông tin tri thức Sesame và ngôn ngữ truy vấn của nó là SeRQL. Chúng tôi nắm được đặc điểm nổi bật của chúng về việc hỗ trợ khả năng bao phủ (subsumption) trong khi thực hiện một truy vấn. Khả năng bao phủở đây có nghĩa là một kiểu ý niệm hoặc kiểu quan hệ trong đồ thị truy vấn có thểđem so trùng và trả về kết quả tất cả các thực thể thuộc các kiểu thực thể con của nó có trong cơ sở tri thức. Ngoài ra, do đồ thị ý niệm bao gồm tập các ý niệm và quan hệ tạo thành, nên ý tưởng của chúng tôi cho việc thực hiện kĩ thuật biến đổi truy vấn là tìm cách thay đổi tất cả các kiểu ý niệm và kiểu quan hệ có trong đồ thị ý niệm truy vấn thành kiểu cha trực tiếp của chúng.
Như vậy, một đồ thị truy vấn nhập vào trước hết được thay đổi các kiểu ý niệm, kiểu quan hệ thành các kiểu cha trực tiếp của chúng. Sau đó, đồ thị truy vấn mới sau khi được sinh ra này sẽđược ánh xạ sang ngôn ngữ truy vấn SeRQL tương đương để rút trích các đồ thị tri thức mà nó bao phủ (subsume) nhờ vào công cụ tìm kiếm và so trùng chính xác là Sesame.
Tuy nhiên, một đồ thị ý niệm cần phải có sựđúng đắn (well-typed) của nó. Do đó, việc tạo ra đồ thị truy vấn mới từ đồ thị ý niệm truy vấn cũ cần phải có sự thỏa mãn tương thích nhau giữa các kiểu ý niệm mới và các kiểu quan hệ mới có trong đồ thị.
Cụ thể, chúng ta xét một ví dụ như ở hình 11, mô tả một đồ thị ý niệm truy vấn có ý nghĩa là “Có những công ty truyền thông nào được giao dịch tại các trung tâm giao dịch chứng khoáng nào?”.
Hình 11: Một trường hợp dùng kĩ thuật biến đổi truy vấn
Trong mạng phân cấp ontology, kiểu ý niệm Trung_tâm_giao_dịch_chứng_khoán và kiểu ý niệm Truyền_thông lần lượt có cha trực tiếp là Tổ_chức và Công_ty, quan hệ
được_giao_dịch_tại_thị_trường_chứng_khoán là một quan hệ không có cha trực tiếp. Tuy nhiên, khi thực hiện việc biến đổi truy vấn, chúng ta không thể tạo thành một đồ thị ý niệm truy vấn mới là [Công_ty:?] (được_giao_dịch_tại_thị_trường_chứng_khoán) [Tổ_chức:?], mà đồ thị ý niệm truy vấn mới chỉ có thể nhưở hình 12. Lý do là quan hệ có kiểu quan hệ được_giao_dịch_tại_thị_trường_chứng_khoán yêu cầu miền đích (range) của nó phải là một kiểu ý niệm Trung_tâm_giao_dịch_chứng_khoán.
Hình 12: Kết quả một trường hợp dùng kĩ thuật biến đổi truy vấn
Nói một cách tổng quát, khi tiến hành thay đổi một kiểu ý niệm hoặc một kiểu quan hệ thành cha của nó, chúng ta cần kiểm tra sự tương thích giữa các kiểu ý niệm mới và các kiểu quan hệ mới để bảo đảm rằng đồ thị ý niệm mới vẫn còn đúng đắn và tương thích.
Dựa vào việc nghiên cứu đặc điểm của mạng phân cấp ontology của hệ thống VNKIM của công trình mà chúng tôi đang nghiên cứu, chúng tôi tìm ra được một trong những quy tắc quan trọng sau: Nếu một bộ ba của đồ thị ý niệm [ C1 ] → ( R) → [ C2 ] là đúng đắn và tương thích nhau thì ta có bộ ba [ C1 ] → ( R’) → [ C2 ] cũng sẽđúng đắn và tương thích nhau với mọi R’ là kiểu quan hệ cha của R. Điều này có nghĩa là, các kiểu ý niệm domain và range của một kiểu quan hệ cha luôn luôn bao phủ các kiểu ý niệm domain và range của kiểu quan hệ
con.
Phát biểu trên cho chúng ta biết rằng cho trước một đồ thị ý niệm truy vấn, tất cả các kiểu quan hệ của nó đều có thểđược thay thế thành kiểu cha trực tiếp của chúng và đồ thị truy vấn mới này vẫn còn đúng đắn và tương thích. Sau đó, ứng với mỗi kiểu quan hệ mới, các kiểu ý niệm láng giềng đi kèm với nó sẽđược thay thế bằng cha trực tiếp của chúng nếu đồ thị
ý niệm truy vấn mới vẫn còn đúng đắn và tương thích.
Từ những nhận định trên, chúng tôi đưa ra được các ý tưởng cho việc hiện thực quá trình biến đổi truy vấn như sau:
+ Nếu một kiểu ý niệm hoặc một kiểu quan hệ không có kiểu cha trực tiếp thì kiểu ý niệm hoặc kiểu quan hệ vẫn được giữ nguyên trong đồ thị ý niệm truy vấn mới.
+ Tất cả các kiểu quan hệ nếu có kiểu cha trực tiếp trong mạng phân cấp ontology đều
được nâng thành kiểu cha trực tiếp của nó.
+ Một kiểu ý niệm trong đồ thị ý niệm truy vấn muốn nâng thành kiểu ý niệm cha trực tiếp của nó khi và chỉ khi kiểu ý niệm cha trực tiếp của nó thỏa mãn tương thích về domain và range của tất cả các kiểu quan hệ cha trực tiếp của các kiểu quan hệ mà kiểu ý niệm đó có tham gia vào trong đồ thị ý niệm truy vấn.
+ Nếu như ý niệm trong đồ thị ý niệm truy vấn có chỉ ra rõ thành phần tham khảo là một giá trị cụ thể nào đó, thì kiểu ý niệm của nó không thay đổi (nghĩa là ta không được nâng thành kiểu ý niệm cha trực tiếp của nó).
+ Các ràng buộc thuộc tính của mỗi ý niệm được xem xét như là các quan hệ và cũng
được nâng lên kiểu cha trực tiếp của chúng (nếu có). Khi đó, ta cũng cần kiểm tra kiểu ý niệm mới có thỏa mãn các ràng buộc thuộc tính mới hay không. Hay nói cách khác, ràng buộc thuộc tính của một ý niệm có thể làm cho chúng ta không thể tiến hành thay đổi một kiểu ý niệm trong đồ thị ý niệm truy vấn thành kiểu ý niệm cha trực tiếp của nó.
Nói tóm lại, quá trình thực hiện kĩ thuật biến đổi truy vấn được thực hiện như sau. Duyệt qua đồ thị ý niệm truy vấn của người dùng để xem xét các kiểu ý niệm, kiểu quan hệ
trong đồ thị ý niệm truy vấn có thểđược nâng lên kiểu cha trực tiếp của nó hay không. Kết quả của quá trình thực hiện kĩ thuật biến đổi truy vấn này là một bảng băm, được đặt tên là NewTypeMapping, lưu trữ sự ánh xạ tương ứng giữa các kiểu thực thể cũ và kiểu thực thể
mới, và cho biết các kiểu ý niệm và kiểu quan hệ trong đồ thị ý niệm truy vấn ban đầu của người sử dụng sẽđược nâng lên thành kiểu ý niệm và kiểu quan hệ nào.
Ởđây, chúng tôi dùng bảng băm để làm cấu trúc lưu trữ bảng ánh xạ giữa kiểu thực thể
cũ và kiểu thực thể mới nhằm tiện lợi trong quá trình thực hiện việc kiểm tra các ràng buộc trên các kiểu ý niệm để xác định xem một kiểu ý niệm mới là kiểu cha của một kiểu ý niệm có thỏa mãn tương thích với tất cả các kiểu quan hệ mới mà kiểu ý niệm đó có tham gia vào trong đồ thị ý niệm truy vấn hay không.
Cụ thể, ứng với từng quan hệ có trong đồ thị ý niệm truy vấn của người sử dụng, ta cần xác định được từng kiểu ý niệm láng giềng của quan hệđang xét đã được nâng lên thành kiểu ý niệm mới hay chưa nhờ vào bảng ánh xạ NewTypeMapping. Nếu kiểu ý niệm đó đã được ánh xạ sang kiểu cha trực tiếp trong bảng NewTypeMapping rồi thì ta phải kiểm tra xem kiểu ý niệm mới đó có tương thích với kiểu quan hệ mới của quan hệ hiện hành không. Vì vậy, bảng băm là một cấu trúc tốt cho việc lưu trữ bảng ánh xạ NewTypeMapping vì trong quá trình thực hiện kĩ thuật biến đổi truy vấn, ta thường xuyên cần phải xác định được kiểu ý niệm mới đã xử lý trước đó tương ứng với các đỉnh ý niệm có trong đồ thị ý niệm truy vấn của người sử dụng.
Nếu một kiểu ý niệm hoặc quan hệ không nâng lên được kiểu cha trực tiếp hoặc không có kiểu cha trực tiếp thì, chúng ta sẽ lưu chính kiểu ý niệm hoặc kiểu quan hệđó vào trong bảng ánh xạ NewTypeMapping. Bảng ánh xạ NewTypeMapping này sẽđược sử dụng kết hợp với đồ thị truy vấn của người sử dụng ở giai đoạn ánh xạ và sinh mã truy vấn SeRQL nhằm truy vấn cơ sở tri thức và lấy kết quả về cho người dùng.
Sau đây là mã giả quá trình thực hiện việc tạo ra bảng ánh xạ NewTypeMapping của kĩ
1. For each relation in the query conceptual graph do 2. {
3. Get RelationType of current relation 4. if (current relation type has direct parent)
5. NewRelationtype = Get direct parent of current RelationType 6. else NewRelationType = RelationType
7. Insert into NewTypeMapping (relation, NewRelationType) 8. Get DomainConcept and RangeConcept of current relation 9. Get DomainConceptType of DomainConcept
10. if (NewTypeMapping contains the key DomainConcept)
11. NewDomainConceptType = NewTypeMapping.Get(DomainConcept) 12. else
13. NewDomainConceptType = Get direct parent of DomainConceptType 14. if ( (DomainConcept doesn’t have specific referent value) &&
(NewDomainConceptType is different from DomainConceptType) && (Constraints of DomainConcept is consistent with DomainConceptType) && (NewDomainConceptType is consistent with NewRelationType) )
15. {
16. Insert into NewTypeMapping (DomainConcept, NewDomainConceptType) 17. } else {
18. Insert into NewTypeMapping (DomainConcept, DomainConceptType) 19. }
20. Do the statements from 9 to 19 for RangeConcept 21. }
22. For each disconnected concept nodes, process it as above
Để dễ hiểu giải thuật tạo bảng ánh xạ giữa kiểu ý niệm cũ và kiểu ý niệm mới, kiểu quan hệ cũ và kiểu quan hệ mới của kĩ thuật biến đổi truy vấn, chúng ta xét một ví dụ cụ thể
như sau. Câu truy vấn cần tìm kiếm của người sử dụng là “Tìm những công ty truyền thông có chuỗi tên giao dịch chứng khoán là “AB” và được đăng kí ở những tỉnh thuộc quốc gia Việt Nam”. Câu truy vấn trên được mô tả bởi một đồ thị ý niệm truy vấn được minh họa ở
Hình 13: Ví dụ minh họa giải thuật biến đổi truy vấn
Trong đồ thị ý niệm được chỉ ra ở hình 13, giá trị thuộc tính chuỗi tên giao dịch chứng khoáng là “AB” được ràng buộc cho đỉnh ý niệm [Truyền_thông:?] mà không được vẽ ra cụ thể. Sau
đây là quá trình tạo ra bảng ánh xạ NewTypeMapping trong bước thực hiện biến đổi truy vấn cho ví dụ vừa nêu trên.
+ Duyệt qua tất cả các quan hệ có trong đồ thị ý niệm truy vấn của người sử dụng. Ứng với mỗi quan hệ, chúng ta đem ra xem xét quan hệđó và các ý niệm láng giềng của nó.
+ Trước tiên, chúng ta xét quan hệđược_đăng_kí_tại có trong đồ thị ý niệm truy vấn của người sử dụng. Quan hệ được_đăng_kí_tại này có các ý niệm láng giềng là [Truyền_thông:?] và [Tỉnh:*]. Quan hệ này có kiểu cha trực tiếp của nó trong ontology là
được_định_vị_ở. Khi đó, kiểu quan hệ được_định_vị_ở được lưu vào trong bảng băm NewTypeMapping.
+ Ý niệm [Truyền_thông:?] trong đồ thị ý niệm truy vấn của người sử dụng có kiểu ý niệm cha trực tiếp là Công_ty. Kiểu ý niệm Công_ty này thỏa mãn tương thích với quan hệ
được_định_vị_ở đã được lưu trong NewTypeMapping nên kiểu ý niệm Công_tyđược lưu vào bảng ánh xạ NewTypeMapping.
+ Ý niệm [Truyền_thông:?] trong đồ thị ý niệm truy vấn có một ràng buộc về giá trị
thuộc tính là tên_giao_dịch_chứng_khoáng. Thuộc tính tên_giao_dịch_chứng_khoáng không có cha trực tiếp nên tên_giao_dịch_chứng_khoángđược lưu vào trong bảng ánh xạ
NewTypeMapping.
+ Xét lại ý niệm chịu ràng buộc thuộc tính tên_giao_dịch_chứng_khoáng là [Truyền_thông:?]. Ý niệm [Truyền_thông:?] đã ánh xạ thành kiểu ý niệm mới được lưu trong bảng ánh xạ NewTypeMapping là kiểu ý niệm Công_ty. Kiểu ý niệm Công_ty này vẫn thỏa mãn tương thích với ràng buộc thuộc tính tên_giao_dịch_chứng_khoáng, nên kiểu ý niệm Công_ty vẫn được giữ nguyên trong bảng ánh xạ NewTypeMapping.
+ Ý niệm [Tỉnh:*] có kiểu ý niệm cha trực tiếp trong ontology là kiểu ý niệm
Đơn_vị_hành_chính_cấp_một. Kiểu ý niệm Đơn_vị_hành_chính_cấp_một này thỏa mãn tương thích với kiểu quan hệ mới của quan hệ được_đăng_kí_tạiđã được lưu trong
bảng ánh xạ NewTypeMapping là kiểu quan hệ được_định_vị_ở. Do đó, kiểu ý niệm
Đơn_vị_hành_chính_cấp_mộtđược lưu vào bảng ánh xạ NewTypeMapping.
+ Sau khi xét xong quan hệđược_đăng_kí_tại, chúng ta tiến hành xét tiếp quan hệ
là_một_phần_của có trong đồ thị ý niệm truy vấn của người sử dụng. Quan hệ này có các ý niệm láng giềng gồm [Tỉnh:*] và [Quốc_gia:Việt Nam].
+ Quan hệlà_một_phần_của có kiểu quan hệ không có cha trực tiếp nên chúng ta lưu kiểu quan hệlà_một_phần_của vào bảng ánh xạ NewTypeMapping.
+ Ý niệm [Tỉnh:*] trước đó đã được nâng thành cha trực tiếp của nó là kiểu
Đơn_vị_hành_chính_cấp_một và được lưu trong bảng ánh xạ NewTypeMapping. Do kiểu ý niệm Đơn_vị_hành_chính_cấp_một thỏa mãn tương thích với kiểu quan hệ
là_một_phần_của nên kiểu ý niệm Đơn_vị_hành_chính_cấp_một vẫn được giữ nguyên trong bảng ánh xạ NewTypeMapping.
+ Ý niệm [Quốc_gia:Việt Nam] có thành phần tham khảo của ý niệm là một giá trị cụ
thể nên không được xét nâng lên thành kiểu ý niệm cha trực tiếp. Do đó, kiểu ý niệm Quốc_giađược lưu vào bảng ánh xạ NewTypeMapping.
Sau quá trình thực hiện kĩ thuật biến đổi truy vấn như trên, ta được bảng ánh xạ
NewTypeMapping ánh xạ tương ứng giữa các kiểu thực thể có trong đồ thị ý niệm truy vấn của người sử dụng và các kiểu thực thể mới sẽđược nâng lên như sau:
Bảng ánh xạ NewTypeMapping
Khóa Giá trị
được_đăng_kí_tại được_định_vị_ở
Truyền_thông Công_ty
tên_giao_dịch_chứng_khoán tên_giao_dịch_chứng_khoán
Tỉnh Đơn_vị_hành_chính_cấp_một
là_một_phần_của là_một_phần_của
Quốc_gia Quốc_gia
Bảng 1: Bảng mô tả sự ánh xạ giữa các kiểu thực thể trong đồ thị ý niệm truy vấn ở hình 13 và các kiểu thực thể mới sau khi thực thi bước biến đổi truy vấn
Nếu ta kết hợp đồ thị ý niệm truy vấn của người sử dụng với bảng ánh xạ giữa các kiểu thực thể trong đồ thị ý niệm truy vấn và các kiểu thực thể mới trong bảng 1, sau đó, biểu diễn lại dưới dạng một đồ thị ý niệm truy vấn, thì đồ thị ý niệm truy vấn mới sẽđược biểu diễn như ở hình 14 sau.
Hình 14: Đồ thị ý niệm truy vấn mới sau khi dùng giải thuật biến đổi truy vấn
Bảng ánh xạ NewTypeMapping chỉ ra sự ánh xạ giữa các ý niệm và quan hệ có trong đồ
thị ý niệm truy vấn của người sử dụng sẽđược nâng lên thành kiểu ý niệm và kiểu quan hệ
nào trong đồ thị ý niệm truy vấn mới. Bảng ánh xạ này sẽđược sử dụng kết hợp với đồ thị
truy vấn gốc ban đầu của người sử dụng để thực hiện việc sinh mã ngôn ngữ truy vấn SeRQL