Ứng dụng lập luận logic mô tả vào phân tích và thiết kế web

Một phần của tài liệu Biểu diễn tri thức và lập luận trong logic mô tả (Trang 71)

Lập luận dựa trên nền tảng của các ngôn ngữ logic mô tả đã được ứng dụng vào việc phân tích và thiết kế các trang web cho nhiều mục đích khác nhau. Sau đây, một ví dụ của ứng dụng lập luận trong logic mô tả cho việc thiết kế các trang web phục vụ cho lĩnh vực giáo dục.

Rất nhiều trang web trong môi trường giáo dục và những hệ thống tích hợp đa phương tiện có tri thức chuyên gia trong kiến trúc của chúng. Người ta đã sử dụng những kỹ thuật lập luận khác nhau để giúp người thầy cải thiện

- 71 -

việc thiết kế những bài giảng của mình trên web. Đã có một số hệ chuyên gia đã được ứng dụng như một mô tơ suy luận nhưng đã gặp phải một số khó khăn. Ví dụ như hệ chuyên gia Jess không thể nhận ra tài liệu khoá học nếu chúng được chứa trong một tài liệu khác, bắt buộc người học trả lời phải theo mô hình của lĩnh vực tri thức và không thể giúp có những phân tích mang tính thông minh trong các cách trả lời của người học. Ngược lại, khi sử dụng cơ chế lập luận trong logic mô tả chúng ta đã giải quyết được những trường hợp này.

Cơ sở tri thức cho các cơ chế lập luận trong logic mô tả gồm hai phần TBox và ABox. TBox có thể được biểu diễn như một OWL DL và ABox có thể được biểu diễn bằng một cú pháp XML. Mối liên hệ giữa OWL và các ngôn ngữ logic mô tả diễn cảm cung cấp một nguồn thuật toán cho việc giải quyết những bài toán suy diễn, đặc biệt là bài toán thoả. Giả sử có hai ứng dụng cùng muốn chia sẽ, mỗi ứng dụng có thể có những tri thức riêng và những cơ chế lập luận riêng. Mỗi trang web tương ứng với mỗi ứng dụng này phải chứa con trỏ trỏ đến những kịch bản ontology của ứng dụng sử dụng được xem như siêu tri thức của nó.

Hình3.5: Thể hiện những ontology trong 2 ứng dụng

Ontology giống như TBox trong các logic mô tả. Có thể dùng những lập luận trong logic mô tả để kiểm tra những tri thức có phải là một mô hình cho bất kỳ một ontology, như là ABox có nhất quán với TBox hay không. Ontology Oi là một phần của những ontology khác. Lập luận có thể kiểm tra chúng trước khi sử dụng những ontology vào trong thành phần tri thức giảng

O1 O1 O2 O3 On Om App 1 App 2

- 72 -

dạy. Hơn thế, có thể sử dụng những lập luận để kiểm tra tính nhất quán, nếu chúng ta muốn nâng cấp các ontology.

Ở đây phải giải thích những phân tích thông minh trong những trả lời phía người học. Những phân tích thông minh có thể chỉ ra chính xác những trả lời sai hoặc chưa hoàn thành, tri thức còn thiếu, không đúng. Nếu ta cho rằng một hệ thống web phục vụ cho lĩnh vực giáo dục xem tri thức trong lĩnh vực của nó như một ontology, có thể sử dụng lập luận trong logic mô tả để kiểm tra những lỗi xuất hiện. Nếu câu trả lời của người học được diễn đạt như một tài liệu OWL, có thể sử dụng kỹ thuật để tìm tất cả những lớp mâu thuẫn được đề cập trong tài liệu OWL và những lớp này là kết quả của những lỗi thường xảy ra của người học. Các phân tích thông minh có thể cung cấp cho người học một cách tổng quát các lỗi được phản hồi lại và cập nhật lại mô hình người học. Dịch vụ lập luận được sử dụng trong logic mô tả, có thể sử dụng những hình thức khác như logic vị từ hoặc đồ thị khái niệm nhưng dùng logic mô tả có sự tối ưu trong việc cài đặt của những thuật toán này. Chúng thể hiện được công việc phải làm đối với những vấn đề thực tế nếu dùng logic mô tả, mặt dù nếu lập luận với logic mô tả, trong trường hợp xấu nhất có độ phức tạp rất lớn.

Mỗi hệ thống web phục vụ cho lĩnh vực giáo dục cần ít nhất hai loại tri thức được phân biệt rõ ràng: Tri thức về lĩnh vực cần cho người học sử dụng và tri thức của người dạy. Nhiệm vụ chính của hệ thống là so sánh những câu trả lời của người học với tri thức của lĩnh vực được người học quan tâm. Tri thức của người học có thể xem là phần nhỏ trong tri thức lĩnh vực. Vì thế, có thể sử dụng thuật toán subsumption để kiểm tra chúng. Tri thức về lĩnh vực và tri thức của người học được xây dựng trên nền tảng của logic mô tả, chúng có hai phần do vậy chúng ta sử dụng các lập luận để kiểm tra: tri thức do người học cung cấp có phải là một phần của tri thức lĩnh vực không? Việc kiểm tra

- 73 -

tính nhất quán giữa ABox chứa những mô hình tri thức người học với TBox chứa một phần tri thức của lĩnh vực, một TBox trong tri thức người học có được bao hàm bởi TBox của lĩnh vực hay không.

Ta xét ví dụ sau đây để thấy được sự quan trọng của các dịch vụ lập luận trong logic mô tả được ứng dụng vào công việc xem xét các kết quả của người học khi người học sử dụng các dịch vụ đào tạo. Giả sử tri thức lĩnh vực của chúng ta là một khái niệm mô tả về một người cha có những đứa con gái và trong số chúng có ít nhất một đứa là giáo viên hoặc bác sĩ:

Father = Person Male hasChild.Female hasChild.(Teacher Doctor)

Nếu trong tri thức của người học hay trong câu trả lời của người học trả lời : Father = Person Male hasChild.Female

thì bộ phận lập luận của hệ thống phải cho kết luận rằng câu trả lời đó là đúng nhưng chưa đầy đủ bởi vì khái niệm trong tri thức của người học được bao hàm trong khái niệm trong tri thức lĩnh vực. Nhiệm vụ chính của việc giải thích trong hệ thống web phục vụ cho lĩnh vực giáo dục là phải truyền đạt tri thức lĩnh vực cho người học. Một người học mới bắt đầu, những câu trả lời của họ thường có cú pháp sai nhưng ngữ nghĩa thì đúng. Quá trình lập luận có thể đưa ra kết luận là câu trả lời của người học đưa ra là sai, vì thế bộ lập luận phải sử dụng thuật toán bao hàm (subsumption algorithm) để phân loại và tìm những khái niệm bao hàm những khái niệm của người học giúp người học hiểu được sự khác nhau giữa câu trả lời của mình với tri thức trong lĩnh vực.

Chương này mới chỉ đề cập đến các gôn ngữ DL mở rộng được sử dụng trong semantic web, cùng những ý tưởng xây dựng những hệ thống web sử dụng những lập luận trong logic mô tả để phục vụ cho việc thiết kế các web

- 74 -

trong công việc đào tạo. Tuy nhiên, do giới hạn phạm vi một luận văn thạc sĩ, việc cài đặt cụ thể chưa thực hiện được.

Chương 4

Cài đặt thử nghiệm thuật toán lập luận

Trong các chương trước, chúng ta đã lần lượt được tiếp xúc với logic mô tả cơ bản và một số ngôn ngữ mở rộng của chúng phục vụ cho việc nghiên cứu web ngữ nghĩa. Trong chương này, ta sẽ làm rõ hơn vai trò lập luận của logic mô tả trong thực tế bằng việc cài đặt thuật toán thoả để giải quyết bài toán thoả trong logic mô tả. Như đã biết, việc giải bài toán bao hàm có thể chuyển về giải bài toán thoả, vì thế trong chương này thay vì cài đặt cả hai thuật toán ta chỉ cài đặt thuật toán thoả. Việc cài đặt thuật toán thoả cho phép xây dựng chương trình thử nghiệm theo kiểu hệ chuyên gia, hỗ trợ công việc đánh giá và ra quyết định.

4.1 Cài đặt thuật toán lập luận

Như đã đề cập trước đây, việc giải bài toán thoả có thể giải được bài toán bao hàm bằng cách chuyển bài toán bao hàm về bài toán không thoả theo bổ đề 2.3. Vì vậy, thay vì ta đi cài đặt cho hai thuật toán lập luận thì ta chỉ cài đặt cho thuật toán thoả.

Thuật toán làm việc như sau:

Bắt đầu với hệ ràng buộc S ={x:C}, sau đó áp dụng những luật chuyển đổi được giới thiệu trong chương 2 cho đến khi tất cả các ràng buộc thoả hoặc một mâu thuẩn xảy ra được xác định, nghĩa là thuật toán sẽ cho kết luận là không thoả nếu tất cả các hệ ràng buộc có chứa mâu thuẫn (clash) ngoài ra

- 75 -

nếu hệ ràng buộc không còn luật nào được áp dụng nữa và không chứa clash thì thuật toán sẽ cho kết luận là thoả.

Thuật toán thoả cho ngôn ngữ ALC được mô tả như trên có độ phức tạp về thời gian xử lý và bộ nhớ là một hàm mũ[11]. Với một khái niệm đầu vào Cn, thuật toán thoả sẽ dẫn đến một Abox đầy đủ, sự thể hiện của lập luận để khẳng định khái niệm này thoả hay không thoả là một cây nhị phân có chiều sâu n và nó chứa 2n+1

- 1 cá thể. Tuy vậy, thuật toán có thể được cải tiến tốt hơn để chi phí cho bộ nhớ cần cho quá trình xử lý là đa thức. Công việc chính trong việc lập luận ở đây là ta xét một cách riêng biệt trên những nhánh khác nhau của cây mô hình được sinh ra khi sử dụng thuật toán. Vì thế, cây mô hình được xây dựng và tìm kiếm theo chiều sâu. Ta mô tả một thuật toán không đơn định mà chi phí cho bộ nhớ chỉ là đa thức. Tức là, đối với luật không đơn định , ta sẽ giả sử rằng thuật toán chọn lần lượt một trong những ràng buộc sinh ra trong luật . Theo cơ chế này, thuật toán làm việc như sau:

Thuật toán bắt đầu với ràng buộc {C0(x0)} sau đó:

1) Áp dụng những luật và trong khi còn có thể, sau đó kiểm tra clash,

2) Áp dụng luật , phần tử sinh ra trong luật được sử dụng trong khi áp dụng luật , sau đó kiểm tra clash,

3) Lặp lại quá trình trên cho đến khi không còn luật nào để áp dụng. Việc thực hiện thuật toán thoả của ngôn ngữ ALC có thể được mô tả bằng ngôn ngữ tựa Pascal như sau:

Input:- Cơ sở tri thức của lĩnh vực quan tâm,

- 76 -

Output: Kết luận khái niệm đã cho có thoả với cơ sở tri thức trong lĩnh

vực quan tâm hay không.

ALC-SAT(C):=sat(x0,{x0:C})

Sat(x,A):

While (có thể áp dụng luật và luật ) và (A không mâu thuẩn) Do

áp dụng các luật và luật vào A;

IF A chứa mâu thuẩn Thenreturnkhông thỏa” E:={x: R.D | x: R.D A}

While E Do Begin

Chọn tuỳ ý một x: R.D E;

Anew := {(x,y):R, y:D} ở đây y là một cá thể mới;

While (có thể áp dụng luật trong A ANew) Do

áp dụng luật và thêm ràng buộc mới vào ANew ;

IF hệ ràng buộc A ANew clash Thenreturnkhông thoả” E:=E\{x: R.D | y:D ANew}

Xoá bỏ ANew khỏi bộ nhớ;

End;

Returnthoả

Cài đặt chương trình thuật toán:

Thuật toàn được cài đặt bằng ngôn ngữ lập trình Visual C++

thực hiện trên hệ điều hành Windows.

Chú ý:

- Khi sử dụng chương trình chúng ta phải nhập các ký hiệu trong khái niệm cần kiểm tra theo đúng quy định: Các phép toán trong khái niệm đầu vào của chương trình phải được trình bày theo đúng quy tắc (Bảng 4.1). Viết

- 77 -

các phép toán giữa các biểu thức trong khái niệm phải dùng dấu ngoặc để phân cách.

Các ký hiệu đại diện cho các phép toán trong khái niệm mô tả như sau: Các ký hiệu phép toán Các ký tự đại diện

^ $ - # &

Bảng 4.1: Ký hiệu các phép toán trong chương trình. Giao diện của chương trình:

- 78 -

Trong đó hộp Edit Box “Co so tri thuc-KB” vừa thể hiện cơ sở tri thức của lĩnh vực, vừa thể hiện tiến trình làm việc của thuật toán. Khái niệm cần kiểm tra nhập vào ô Edit Box “Khai niem can kiem tra”. Thuật toán chỉ làm việc với các khái niệm đầu vào là tập hợp các khái niệm nguyên thuỷ. Kết quả của thuật toán được thể hiện trong ô Edit Box “Ket qua nhan duoc”, ô này sẽ cho kết quả là một chuỗi thông báo cho biết khái niệm cần kiểm tra có thoả hay không thoả. Nút lệnh “Mo CSTT” khi chọn nút lệnh này cho phép người dùng mở một cơ sở tri thức đã có sẵn, đồng thời cho phép người dùng cập nhật lại cơ sở tri thức. Nút lệnh “CSTT Moi” khi chọn nút lệnh này cho phép người sử dụng tạo một cơ sở tri thức mới. Nút lệnh “Luu CSTT” cho phép người dùng lưu cơ sở tri thức vào một tập tin. Nút lệnh “Kiem Tra” để thi hành lệnh triểm tra tính thoả của khái niệm cần kiểm tra. Nút lệnh “Thoat” để kết thúc chương trình kiểm tra.

Khi ta tạo một cơ sở tri thức mới ta thực hiện nút lệnh “CSTT Moi” lúc đó ta sẽ nhận được một giao diện cho phép ta thực hiện nhập cơ sở tri thức mới như sau:

- 79 -

Trong ô Edit Box “Nhap CSTT Moi”cho phép ta nhập cơ sở tri thức mới. Nút lệnh “Luu” cho phép ta lưu cơ sở tri thức vào một tập tin và nút lệnh “Thoat” cho phép ta thoát khỏi công việc tạo một cơ sở tri thức mà không lưu lại cơ sở tri thức đó.

Một phần của tài liệu Biểu diễn tri thức và lập luận trong logic mô tả (Trang 71)