Ý tưởng chính để giải quyết bài toán học khái niệm trong logic mô tả với Ngữ cảnh (1) và Ngữ cảnh (2)1 là sử dụng các mô hình của cơ sở tri thức kết hợp với mô phỏng hai chiều để mô hình hóa tính không phân biệt được giữa các đối tượng. Nghĩa là, chúng ta lấy mô hìnhI của cơ sở tri thứcKB cho trước và thực hiện làm mịn miền ∆I của I bằng các bộ chọn nhằm thu được các khái niệm phục vụ cho bài toán học khái niệm trong logic mô tả với Ngữ cảnh (1) và Ngữ cảnh (2). Tương tự như Thuật toán 3.1, chúng tôi mô tả Hàm partition dùng để làm mịn phân hoạch miền ∆I. Trong hàm này, việc quyết định sử dụng các loại bộ chọn nào phụ thuộc vào Bước 2 và 11. Để quá trình làm mịn phân hoạch đạt hiệu quả cao, chúng ta sử dụng độ đo gia lượng thông tin trong việc chọn khối và bộ chọn để ưu tiên phân chia trước thông qua Hàm chooseBlockSelector như đã trình bày trong Chương 3. Kết quả nhận được từ Hàm partition là phân hoạch Y={Yi1, Yi1, . . . , Yik} với các khái niệm đặc trưng tương ứng là Ci1, Ci2, . . . , Cik. Các khái niệm này sau đó được sử dụng để giải quyết các bài toán học khái niệm trong logic mô tả với các Ngữ cảnh (1) và Ngữ cảnh (2).
Sau đây là một số ví dụ minh họa cho quá trình làm mịn miền của diễn dịch bởi Hàmpartitionnhằm đạt được phân hoạch nhất quán với tập các đối tượng cần học. Trong đó, Ví dụ 4.1 chỉ sử dụng các bộ chọn cơ bản và Ví dụ 4.2 sử dụng các bộ chọn đơn giản để thực hiện quá trình phân hoạch. Quá trình làm mịn phân hoạch của các ví dụ này được minh họa thông qua cây quyết định như trong Hình 4.1 và 4.2. Ví dụ 4.1. Xét cơ sở tri thức KB0 và KB00 như đã cho trong Ví dụ 1.9 và diễn dịch I là mô hình của KB và KB00 như sau:
∆I = {P1,P2,P3,P4,P5,P6}, xI =x với x∈ {P1,P2,P3,P4,P5,P6},
PubI = ∆I, AwardedI ={P1,P4,P6}, UsefulPubI ={P2,P3,P4,P5,P6},
citesI = {hP1,P2i,hP1,P3i,hP1,P4i,hP1,P6i,hP2,P3i,hP2,P4i,
hP2,P5i,hP3,P4i,hP3,P5i,hP3,P6i,hP4,P5i,hP4,P6i},
cited_byI = (citesI)−1, hàm từng phần YearI được đặc tả theo từng cá thể. Cho E =hE+, E−ivới E+ ={P4,P6} và E− ={P1,P2,P3,P5}, ngôn ngữ conLΣ†,Φ†, trong đóΣ† ={Awarded,cited_by}vàΦ† =∅. Các bước làm mịn miền∆I của I theo Hàm partition được mô tả như sau:
1. Y1 := ∆I, C1 :=>, Y:={Y1}
Function partition - Làm mịn miền của diễn dịch trong logic mô tả Input : I, Σ†,Φ†,E =hE+, E−i
Output: Y={Yi1, Yi2, . . . , Yik}là một phân hoạch của miền ∆I sao cho Y nhất quán vớiE
1 n:= 1; Y1 := ∆I; C1 :=>; Y:={Y1}; D:=∅;
2 Tạo và thêm các bộ chọn vàoD; /* Định nghĩa 3.4, 3.5 và/hoặc 3.6 */
3 while (Y không nhất quán với E) do
4 Yij, Sij:=chooseBlockSelector(Y, D); 5 if (Yij không bị phân chia bởi SiIj) then
6 break; 7 s:=n+ 1; t:=n+ 2;n :=n+ 2; 8 Ys:=Yij ∩SiI j; Cs:=CijuSij; 9 Yt:=Yij ∩(¬Sij)I; Ct:=Cij u ¬Sij; 10 Y:=Y∪ {Ys, Yt} \ {Yij};
11 Tạo và thêm các bộ chọn vàoD; /* Định nghĩa 3.4, 3.5 và/hoặc 3.6 */
12 if (Y nhất quán với E) then 13 returnY;
14 else
15 returnfailure;
2. Theo độ đo gia lượng thông tin, bộ chọn tốt nhất để phân chia Y1 là Awarded. Tiến hành phân chia khối Y1 bởi Awarded chúng ta thu được:
• Y2 :={P1,P4,P6}, C2 :=Awarded • Y3 :={P2,P3,P5}, C3 :=¬Awarded • Y:={Y2, Y3}
3. Theo độ đo gia lượng thông tin, các bộ chọn tốt nhất để phân chia Y2 là ∃cited_by.>, ∃cited_by.C2 và ∃cited_by.C3. Tất cả các bộ chọn này đều phân chia Y2 giống nhau. Chúng ta sử dụng bộ chọn đơn giản nhất ∃cited_by.> để phân chia Y2 và thu được:
• Y4 :={P4,P6}, C4 :=C2u ∃cited_by.> • Y5 :={P1},C5 :=C2u ¬∃cited_by.> • Y:={Y3, Y4, Y5}
Phân hoạch đạt được là Y ={Y3, Y4, Y5} nhất quán với E, gồm khối Y4 chứaP4, P6 với P4,P6 ∈E+và các khốiY3,Y5 không chứa cá thể nào củaE+nên ta có kết quả trả về là Y={Y3, Y4, Y5}(phân hoạch này không tương ứng với quan hệ ∼Σ†,Φ†,I).
{P1,P2,P3,P4,P5,P6} Awarded ¬Awarded * * {P1,P4,P6} ¬∃cited_by.> u u ∃cited_by.> {P2,P3,P5} {P1} {P4,P6}
Hình 4.1: Quá trình làm mịn phân hoạch của Ví dụ 4.1
Ví dụ 4.2. Xét mô hình I của cơ sở tri thứcKB và E =hE+, E−inhư đã cho trong Ví dụ 4.1 với ngôn ngữ con LΣ†,Φ†, trong đó Σ† ={cited_by, Year} và Φ†={N,Q}. Các bước làm mịn miền ∆I của I theo Hàm partitionđược mô tả như sau:
1. Y1 := ∆I, C1 :=>, Y:={Y1}
2. Theo độ đo gia lượng thông tin, các bộ chọn tốt nhất để phân chia khối Y1 là Year ≥2008(tương đương vớiYear >2007) và≥3cited_by.>(tương đương với ≥3cited_by.C1). Ở đây, chúng ta chọn Year ≥2008 là bộ chọn đơn giản nhất để phân chia Y1 và thu được:
• Y2 :={P1,P2,P3}, C2 := (Year ≥2008) • Y3 :={P4,P5,P6}, C3 := (Year <2008) • Y:={Y2, Y3}
3. Theo độ đo gia lượng thông tin chúng ta tiếp tục phân chia Y3 bằng bộ chọn Year ≥2007 và thu được:2
• Y4 :={P4},C4 :=C3u(Year ≥2007) • Y5 :={P5,P6}, C5 :=C3u(Year <2007) • Y:={Y2, Y4, Y5}
2KhốiY2nhất quán với E và khốiY3 không nhất quán vớiE. Một cách tự nhiên, chúng ta chọn khốiY3để phân chia. Tuy nhiên, nếu chúng ta phân chiaY2 trước bằng bộ chọnYear≥2010sẽ cho kết quả tốt hơn về sau này. Đây chính là một gợi ý cho việc xây dựng các heuristic trong quá trình quyết định khối nào nên được phân chia trước và nên sử dụng bộ chọn nào để phân chia khối đó.
4. Khối Y4, Y5 không thể tiếp tục phân chia. Vì vậy, mặc dầu Y2 nhất quán với E
chúng ta vẫn tiếp tục phân chia nó để sử dụng sau này. Áp dụng độ đo gia lượng thông tin, chúng ta sử dụng bộ chọn Year ≥2010để phân chia Y2 và thu được:
• Y6 :={P1},C6 :=C2u(Year ≥2010) • Y7 :={P2,P3}, C7 :=C2u(Year <2010) • Y:={Y4, Y5, Y6, Y7}
5. Theo độ đo gia lượng thông tin, chúng ta phân chia khối Y5 bằng bộ chọn ∃cited_by.C6 và thu được:
• Y8 :={P6},C8 :=C5u ∃cited_by.C6
• Y9 :={P5},C9 :=C5u ¬∃cited_by.C6
• Y:={Y4, Y6, Y7, Y8, Y9}
Phân hoạch thu được làY={Y4, Y6, Y7, Y8, Y9}nhất quán vớiE gồm khốiY4 chứa P4, khối Y8 chứaP6, vớiP4,P6 ∈E+ và các khối Y6, Y7, Y9 không chứa cá thể nào của
E+ nên ta có kết quả trả về là Y={Y4, Y6, Y7, Y8, Y9}.
Quá trình làm mịn phân hoạch của Ví dụ 4.2 được minh họa thông qua cây quyết định như trong Hình 4.2. {P1,P2,P3,P4,P5,P6} Year≥2008 u u Year<2008 {P1,P2,P3} Year≥2010 y y Year<2010 {P4,P5,P6} Year≥2007 Year<2007 ( ( {P1} {P2,P3} {P4} {P5,P6} ∃cited_by.C6 ¬∃cited_by.C6 $ $ {P6} {P5} Hình 4.2: Quá trình làm mịn phân hoạch của Ví dụ 4.2