Để xác định mức độ phù hợp các công dụng đƣợc yêu cầu từ ngƣời dùng dịch vụ với các công dụng đƣợc quảng cáo bởi dịch vụ thông qua dịch vụ OWL-S đã chú giải các công dụng, trƣớc tiên ta cần phải xác định đƣợc mức độ phù hợp giữa một công dụng từ ngƣời dùng dịch vụ (FR) và một công dụng đƣợc quảng cáo bởi nhà cung cấp dịch vụ (FA) trƣớc khi xét các công dụng đƣợc quảng cáo có đáp ứng đƣợc yêu cầu của ngƣời dùng dịch vụ hay không.
Mỗi công dụng (Functionality) bao gồm 2 thành phần: một khái niệm động từ thuộc Ontology động từ và một khái niệm danh từ thuộc Ontology danh từ. Cụ thể
Yêu cầu: FR (VR, NR) .
Quảng cáo: FA (VA, NA).
Nhƣ vậy ta cần phải xác định mức độ phù hợp ngữ nghĩa giữa hai khái niệm VR với VA và giữa hai khái niệm NR và NA . Để xác định mức độ phù hợp ngữ nghĩa giữa hai khái niệm này, chúng tôi tính dựa trên mức độ phù hợp giữa hai khái niệm này phụ thuộc vào mối liên hệ của chúng trong Ontology.
Nhƣ vậy cần phải xác định mức độ phù hợp ngữ nghĩa giữa khái niệm CR và CA . Chức năng này phụ thuộc vào 2 yếu tố sau:
(1) Mức độ phù hợp. Chúng tôi sử dụng bốn mức độ khác nhau đƣợc giới thiệu trong công trình của Paolucci [9].
Exact: nếu CA và CR cùng khái niệm.
Plug-in: nếu CA subsumes CR, hay nói cách khác CA là lớp cơ sở của CR vì vậy CA có thể plug thay thế cho CR.. Tuy nhiên mức độ phù hợp này yếu hơn mức độ phù hợp Exact.
Subsumes: nếu CR subsumes CA, cấp độ khớp này yếu hơn cấp độ khớp Plug-in.
Fail: không có mối quan hệ subsume nào giữa CA và CR. Trong đó: Exact > Plug-in > Subsumes > Fail.
(2) Khoảng cách (số cạnh) giữa CA và CR trong Ontology.
Chúng tôi muốn chia các mức độ phù hợp này thành một số thực trong khoảng [0, 1] để dễ dàng so sánh khi chọn lựa các mức độ phù hợp. Chúng tôi sử dụng phƣơng trình trong công trình [15] của nhóm tác giả Alberto Fernandez. Trong đó các mức độ phù hợp đƣợc chia trong khoảng [0, 1] cụ thể:
Mức độ phù hợp Exact sẽ có giá trị bằng 1.
Mức độ phù hợp plugin đƣợc chia trong khoảng [0.5, 1).
Mức độ phù hợp Subsumes trong khoảng (0, 0.5).
Mức độ phù hợp Fail có giá trị là 0.
Sự phân mịn này đƣợc minh họa bằng phƣơng trình trong hình Hình 5.1, trong đó x là khoảng cách giữa CA và CR trong ontology.
5.2 Các thuật toán liên quan đến tìm kiếm dịch vụ web dựa trên công dụng và Input, Output
5.2.1Thuật toán xác định mức độ phù hợp giữa hai khái niệm trong Ontology
CÔNG DỤNG YÊU CẦU
ĐỘNG TỪ
DANH TỪ
CÔNG DỤNG QUẢNG CÁO
ĐỘNG TỪ
DANH TỪ SO KHỚP
SO KHỚP
Hình 5.2 Xác định mức độ phù hợp từng khái niệm tƣơng ứng giữa hai công dụng
Mỗi công dụng chúng tôi chú giải cho dịch vụ OWL-S bao gồm hai thành phần đó là một khái niệm động từ thuộc Ontology động từ và một khái niệm danh từ trong Ontology danh từ. Do đó trƣớc khi xác định đƣợc mức độ phù hợp giữa hai công dụng, chúng tôi quan tâm đến các mức độ phù hợp giữa khái niệm động từ thuộc công dụng đƣợc quảng cáo từ nhà cung cấp dịch vụ với một khái niệm động từ
đƣợc yêu cầu từ ngƣời dùng dịch vụ và các mức độ phù hợp giữa khái niệm danh từ thuộc công dụng đƣợc quảng cáo từ nhà cung cấp dịch vụ với một khái niệm danh từ đƣợc yêu cầu từ ngƣời dùng dịch vụ cụ thể đƣợc minh họa trong Hình 5.2.
Các mức độ phù hợp giữa hai khái niệm động từ hoặc danh từ, chúng tôi sử dụng các mức độ phù hợp đƣợc trình bày trong 5.1 . Thuật toán xác định mức độ phù hợp giữa hai khái niệm trong Ontology đƣợc minh họa trong Bảng 5.1.
Trong Bảng 5.1, các tham số đáng lƣu ý là:
CR: Một khái niệm đƣợc sử dụng từ ngƣời dùng dịch vụ trong Ontology.
CA: Một khái niệm đƣợc sử dụng từ Profile trong Ontology.
Các khái niệm động từ trong Ontology động từ bất kỳ, các khái niệm danh từ trong Ontology danh từ bất kỳ. Trong thuật toán so khớp này chúng tôi sử dụng các khái niệm động từ trong wordnet [40] và các khái niệm danh từ trong các domain ontology kèm theo tập dữ liệu thử nghiệm [21].
function dom (CR : Concept, CA : Concept) : double begin
d := 0
if hasSubsumes (CR, CA) then begin
depth = getDepth(CR, CA) if depth = 0 then d := 1 if depth > 0 then d ∶= 1
2 + 1
exp (x)
if depth < 0 then d ∶= exp (x)
2 end
dom := d end