Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Mục lục
CƠ SỞ LÝ THUYẾT VỀ OPEN AGENT ARCHITECTURE VÀ
INTERFACE AGENT 9
MÔ HÌNH XÂY DỰNG GIAO DIỆN TƯƠNG TÁC VỚI INTERFACE
AGENT 35
PHÁT TRIỂN INTERFACE AGENT TRÊN MÔI TRƯỜNG ỨNG DỤNG
ĐỘC LẬP 63
PHÁT TRIỂN INTERFACE AGENT TRÊN MÔI TRƯỜNG ỨNG DỤNG
PHÂN TÁN ÁP DỤNG CHO HỆ THỐNG BỆNH ÁN SỐ 93
Đánh giá kết quả nghiên cứu và hướng phát triển 118
PHỤ LỤC 122
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 1 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Lời giới thiệu
Sự phát triển của công nghệ phần mềm đã làm thay đổi diện mạo của hầu hết
các lĩnh vực của cuộc sống. Hầu hết các vấn đề của các lĩnh vực như quản lý hay các
vấn đề có đặc thù công việc riêng đều có sự tham gia và trợ giúp của máy tính.
Trên cơ sở đó, các hệ thống phần mềm ngày càng có những yêu cầu cao hơn về
khả năng giải quyết các vấn đề phức tạp, đặc thù, phải xử lý một lượng thông tin lớn,
đa dạng và được thu nhận theo các định dạng khác nhau. Đáp ứng các yêu cầu này là
sự ra đời của các phần mềm máy tính tinh vi hơn, thông minh hơn nhưng cũng phức
tạp và khó vận hành, đòi hỏi những hỗ trợ trong quá trình sử dụng.
Sự ra đời của công nghệ lập trình hướng agent là sự kết hợp giữa các lĩnh vực
nghiên cứu của trí tuệ nhân tạo và công nghệ lập trình hướng đối tượng tạo ra một
hướng phát triển mới cho việc giải quyết các yêu cầu về các hệ thống phần mềm phức
tạp. Công nghệ lập trình hướng agent cho phép tạo ra các hệ thống với một mức độ
thông minh, linh hoạt và có khả năng hoạt động một cách tự chủ trong các môi trường
phân tán.
Ý tưởng việc xây dựng các hệ thống giao diện người dùng với sự tham gia trợ
giúp của các agent được hình thành như một sự kết hợp giữa công nghệ lập trình
hướng agent và các nghiên cứu trong lĩnh vực tương tác người máy. Sự kết hợp này
tận dụng được khả năng hoạt động tự chủ của các agent trong việc xử lý các yêu cầu
của người dùng nhằm nâng cao khả năng cộng tác của hệ thống với người dùng trong
quá trình thực hiện một chương trình.
Mục đích của đồ án này là nghiên cứu khả năng kết hợp xây dựng các agent
trong việc tổ chức và quản lý giao diện của người dùng thông qua các tri thức được thu
nhận trước, nhằm tạo ra một hệ thống giao diện phần mềm có tính hỗ trợ tốt hơn, cộng
tác nhiều hơn nữa trong quá trình thao tác của người dùng
Đây là một lĩnh vực nghiên cứu rộng, kết hợp của nhiều vấn đề thuộc về lý
thuyết tương tác người máy, trí tuệ nhân tạo và công nghệ lập trình hướng agent.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 2 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Trong khoảng thời gian thực hiện giới hạn nên phạm vi nghiên cứu của đồ án này
nhằm tập trung chủ yếu vào khía cạnh chính là nghiên cứu khả năng áp dụng mô hình
agent vào công việc xây dựng giao diện và hỗ trợ cho người dùng hoàn thành công
việc thông qua các mô hình đặc tả giao diện và đặc tả công việc.
Với mục đích đó, nội dung và phạm vi của đồ án này tập trung nghiên cứu các
vấn đề sau:
Nghiên cứu kiến trúc xây dựng hệ thống đa agent trong đó có sự tham gia
của agent giao diện (hay Interface agent) trên giao diện người dùng. Mục
đích là cung cấp một kiến trúc chung cộng tác giữa agent giao diện và các
agent khác trong hệ thống. Nội dung này sẽ được đề cập trong chương 1.
Nghiên cứu mô hình xây dựng giao diện người dùng có sự tham gia của
agent giao diện và các đặc tả. Nội dung này được đề cập trong chương 1 và
chương 2.
Nghiên cứu mô hình xây dựng agent giao diện trên môi trường ứng dụng
độc. Trong mô hình này, các đặc tả được xây dựng theo cấu trúc XML. Nội
dung này được đề cập trong chương 3.
Nghiên cứu mô hình xây dựng agent giao diện trên môi trường ứng dụng
phân tán và khả năng xây dựng mô hình dữ liệu cho các đặc tả theo cấu trúc
ontology. Nội dung này được đề cập trong chương 4.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 3 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Danh mục hình vẽ
Hình 1: Kiến trúc cơ bản của Open Agent Architecture 13
Hình 2: Kiến trúc hệ trợ giúp công tác văn phòng khai triển kiến trúc OAA
16
Hình 3: Hệ thống văn phòng tự động 21
Hình 4: Vị trí của Interface agent trong hệ thống xây dựng giao diện 29
Hình 5: Qui trình tạo giao diện với sự tham gia của agent 33
Hình 6: Qui trình xây dựng giao diện hướng tác vụ truyền thống 35
Hình 7: Qui trình xây dựng và điều khiển giao diện với Interface agent 40
Hình 8: Cộng tác giữa Interface agent và người dùng 47
Hình 9: Các Segment trong một hội thoại hướng chức năng của con người
49
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 4 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Hình 10: Vòng thay đổi trạng thái hội thoại và sinh đáp ứng 51
Hình 11: Biểu diễn trạng thái hội thoại 53
Hình 12: Mô hình xây dựng giao diện với sự tham gia của Interface agent
và các thành phần đặc tả 65
Hình 13: Cây thành phần được cung cấp bởi Swing 81
Hình 14: Mô tả hoạt động của Interface agent 85
Hình 15: Cây công việc của chương trình mô phỏng 90
Hình 16: Mô hình thu nhận một tri thức công việc 91
Hình 17: Cây khái niệm cấu thành khái niệm bệnh án 94
Hình 18: Các pha tương ứng trong hệ thống bệnh án số 95
Hình 19: Kiến trúc hệ agent trong hệ thống bệnh án số 97
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 5 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Hình 20: Ví dụ về mô hình cấu trúc dữ liệu của RDF 102
Hình 21: Mô hình quan hệ OWL với lược đồ RDF và lược đồ XML 104
Hình 22: Mô hình kế thừa của các kiểu thành phần 107
Hình 23: Mô hình xây dựng giao diện người dùng trong hệ thống bệnh án
số 114
Hình 24: Mô hình tiếp nhận yêu cầu của người dùng trong hệ thống bệnh
án số 115
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 6 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Danh mục các từ viết tắt
Viết tắt Từ gốc Ý nghĩa
ACL Agent Communication
Language
Ngôn ngữ truyền thông agent
API Application Programming
Interface
Giao diện lập trình ứng dụng
AWT Abstract Windows Toolkit Bộ thư viện lập trình trên môi trường
Windows của Java
BATS Bridging Agents, Tasks,
and Software
Chương trình sử lý theo lô công việc
tạo giao diện cho Interface agent
COLLAGEN Collaborative Agent Thư viện cho xây dựng và phát triển
hệ agent tương tác
CSS Cascading Style Sheet Bảng định kiểu
FTP File Transfer Protocol Giao thức truyền file
GUI Graphic User Interface Giao diện người dùng đồ họa
HCI Human Computer
Interaction
Tương tác người máy
HTML Hyper Text Markup
Language
Ngôn ngữ định dạng siêu văn bản
HTTP HyperText Transfer
Protocol
Giao thức truyền siêu văn bản
IA Interface Agent Agent giao diện
ICL Inter-agent
Communication Language
Ngôn ngữ truyền thông liên agent
Jade Java Agent Development
Framework
Thư viện hỗ trợ xây dựng agent.
JRE Java Runtime Enviroment Môi trường thực thi Java
OAA Open Agent Architecture Kiến trúc hệ agent mở
OWL Ontology Web Language Ngôn ngữ ontology cho ứng dụng
Web
RDF Resource Description
Framework
Chuẩn mô tả tài nguyên ontology
Task UI
Mapping
Task and User Interface
specification mapping
Ánh xạ công việc và đặc tả giao diện
người dùng.
URI Uniform Resource
Identifier
Đường dẫn xác định nguồn tài
nguyên.
URL Uniform Resource Locator Đường dẫn chỉ định tài nguyên
mạng
VAMPIRE Visual Model-based Pick-
and-place Interface Editor
Trình soạn thảo các đặc tả giao diện
và đặc tả công việc hướng chức
năng.
W3C World Wide Web
Consortium
Tổ chức quốc tế qui định các chuẩn
cho Internet và Web
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 7 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
XML Extensible Markup
Language
Ngôn ngữ định dạng mở rộng
XSL Extension Style Language Ngôn ngữ mô tả định kiểu mở rộng
DOM Document Object Model Mô hình tài liệu XML hướng đối
tượng
SAX Simple API for XML Mô hình API đơn giản cho XML
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 8 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
CƠ SỞ LÝ THUYẾT VỀ OPEN AGENT
ARCHITECTURE VÀ INTERFACE AGENT
1.1 Tổng quan về Open Agent Architecture
1.1.1 Khái niệm Open Agent Architecture
Open Agent Architecture (kiến trúc hệ agent mở, viết tắt là OAA) là một khung
làm việc chung (hay framework) cho hệ liên (hay đa) agent mà trên đó một cộng đồng
các agent phần mềm được phát triển trên nhiều ngôn ngữ, nhiều công cụ khác nhau,
chạy trên các máy phân tán có thể cộng tác với nhau theo các nhiệm vụ đã được xác
định cụ thể cho từng agent.
Ý tưởng cơ bản và bao trùm của OAA là sự uỷ quyền. Sự uỷ quyền được thể
hiện ở điểm là thay vì các agent trong hệ thống phải khai báo và mã hoá một cách
cứng nhắc (hard-code) các khả năng của mình cũng như các tương tác với các agent
khác trong hệ thống, các agent có thể mô tả các khả năng của mình, các tương tác của
mình và khai báo nó với một agent đặc biệt trong hệ thống là Facilitator agent (agent
điều phối). Facilitator agent sẽ phối hợp cộng đồng agent để thực hiện các công việc,
cung cấp các dịch vụ như cơ chế song song, xử lý lỗi và phát hiện xung đột để mỗi
agent ứng dụng không phải tự lo về những vấn đề đó.
Mục tiêu của OAA dựa trên ý tưởng về một cộng đồng chung các agent hoạt
động cùng với nhau để giải quyết các vấn đề của người sử dụng. Mặc dù về nguyên
tắc, có thể tạo ra các agent đơn lẻ đóng vai trò tự thực hiện tất cả các nhiệm vụ được
giao, nhưng điểm mạnh của công nghệ agent tốt nhất khi công việc được thực hiện
thông qua rất nhiều agent “chuyên gia”. Trong framework OAA, phần lớn việc giải
quyết yêu cầu từ phía người dùng được thực hiện bằng cách liên lạc hay kết nối nhiều
agent lại với nhau. Tiếp theo là quá trình thu nhận các kết quả do các agent “chuyên
gia” đó trả việc và điều khiển các giao tiếp trung gian giữa các agent tham gia trong hệ
thống nếu cần.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 9 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.1.2 Các mục đích của thiết kế OAA
Thuật ngữ “lập trình hướng agent” (agent-based programming) đã xuất hiện
trong rất nhiều lĩnh vực kỹ thuật những năm gần đây. Trong framework OAA, các bộ
phận (hay thường gọi là các module) phần mềm được lập trình theo công nghệ hướng
agent. Các agent này được xem như những tiến trình độc lập có khả năng truyền thông
và cộng tác với mỗi tiến trình khác trong một môi trường mạng mạng phân tán. Ta
nhìn nhận các agent như các đối tượng phân tán vì ngôn ngữ truyền thông bậc cao của
chúng và về khả năng hoạt động phân tác và cộng tác để hoàn thành một tính toán trái
ngược lại với các đối tượng tính toán thụ động.
Mặc dù khái niệm và mục đích của OAA đã được phát triển một cách chi tiết ở
một số lĩnh vực khác nhau (như OAA Specification Report, OAA Definition Report),
nhưng việc trình bày một cách tóm tắt một số mục đích thiết kế của kiến trúc này vẫn
có ích cho những nghiên cứu sau này.
Khả năng phân tán (Distributedness):
Cộng đồng các agent có thể gồm nhiều loại. Tính đa dạng về loại hình cho phép
các agent chạy trên bất kì hệ nền nào mà chúng chọn, và bất kì ngôn ngữ lập trình nào
để viết ra chúng. OAA cung cấp một tập các tiêu chuẩn cho phép các agent làm việc
cùng với nhau trong các điều kiện đó. Ngoài ra, tính toán phân tán trên hệ thống mạng
có tính chất mở hơn so với tính toán song song - tại đó có nhiều agent cùng làm việc,
cùng cộng tác một phần hoặc hoàn toàn đến mọi khía cạnh của nhiệm vụ.
Khả năng thích ứng (Adaptability):
Khi một số thành viên mới tham gia vào cộng đồng, hiệu quả chung của các
tương tác giữa cộng đồng có thể thay đổi. Nếu một số agent tham gia các tiến trình
cộng tác như những agent đến sau, các tương tác giữa các agent trong cộng đồng phải
đủ linh hoạt để cho phép các agent mới hoạt động được trong môi trường tính toán.
Một kiến trúc “Plug & Play” cho phép các hệ thống được xây dựng trên các agent đã
tồn tại trêncộng đồng từ trước có thể dễ dàng chấp nhận và tận dụng các ưu điểm, các
chức năng mới được bổ sung vào kiến trúc của một hay nhiều agent mới.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 10 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Nâng cao khả năng truyền thông (Communication):
Từ khi người dùng mong muốn tham gia thử nghiệm sự cộng tác giữa các
agent, ngôn ngữ tích hợp truyền thông ICL (sẽ được đề cập trong các phần tiếp theo
của báo cáo) ra đời. Ngôn ngữ này phải đủ mạnh để biểu diễn ngôn ngữ tự nhiên như
các tham số đầu vào của hệ thống. Nếu ICL có thể biểu diễn đầy đủ các biểu thức ngôn
ngữ tự nhiên, các thủ tục cấu thành các hình thức tương tác của các agent sẽ có khả
năng thực hiện được một cách dễ dàng hơn.
Tính toán chủ động và tương tác (Active and Reactive Computation ):
Các agent có khả năng mạnh hơn hơn so với các đối tượng thao tác dữ liệu thụ
động (là những phần tử thực hiện các hành động hoặc trả về thông tin chỉ khi nào được
yêu cầu). Các agent có khả năng điều phối các hoạt động trong thế giới xung quanh
chúng và quyết định khi nào thực hiện hành động đó, báo hiệu cho một người dùng
hoặc một nhóm agent của các agent khác về một số tình huống thích hợp.
Ngoài ra, các agent có khả năng theo dõi những tương tác của các agent khác và
đưa ra các đề xuất, xem xét thực hiện công việc nào thích hợp với các yêu cầu công
việc và điều kiện hiện tại của môi trường.
Cộng tác nhỏ (Fine-grained Cooperation)
OAA dựa trên ý tưởng về một cộng đồng các agent làm việc cùng nhau giải
quyết một số chức năng của người dùng. Mặc dù về nguyên tắc có thể tạo ra một agent
đơn mà vai trò của nó là hoàn thành tất cả các công việc đó một cách tự trị, nhưng lợi
ích của cách tiếp cận hướng agent là tốt nhất khi tính toán này được trải trên nhiều hệ
agent chuyên gia đặc biệt. Trong framework OAA hầu hết các yêu cầu của người dùng
đều được xử lý bởi các nỗ lực chung của các agent (Ví dụ như các agent tham gia có
thể có khả năng khác nhau về hiểu ngôn ngữ tự nhiên đầu vào, kế hoạch hành động,
truy cập vào cơ sở dữ liệu, hiện thị kết quả,…). Điều này chỉ thực hiện được nếu việc
truyền thông giữa các agent được thực hiện một cách hiệu quả.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 11 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.1.3 Agent trong OAA
Các agent trong OAA được định nghĩa đơn giản là những chương trình được
phân tán trên nhiều máy mà tất cả chia sẻ một số chức năng chung. Các agent này hoạt
động tuân theo các chuẩn truyền thông và chức năng đưa ra bởi OAA. Tại sao lại là
agent chứ không là đối tượng thao tác được lập trình theo hướng khác? Đối với OAA,
agent có thể thể hiện tính chất linh hoạt, tự chủ và có khả năng hành động như con
người thay cho các module phần mềm có thể được thiết kế không mềm dẻo bằng. Điều
này thể hiện thông qua các lý do sau:
Các ứng dụng được tạo thành từ một cộng đồng động các agent xử lý mà có
thể di chuyển trong thời gian thực hiện (runtime) và có thể truyền thông,
phối hợp và cạnh tranh với nhau một cách song song, tương tự như các
nhóm người đang làm việc cùng nhau.
Các agent truyền thông với nhau bằng một ngôn ngữ dựa trên logic mức cao
mà có thể hỗ trợ biểu diễn ngôn ngữ tự nhiên. Ngôn ngữ này làm cho cách
thức mà các agent truyền thông với nhau và với người dùng gần gũi như
cách thức mà con người nói chuyện với nhau.
Các agent có những khả năng tự kích hoạt (trigger) bên trong, cho phép
chúng giám sát các sự kiện trong thế giới và khởi xướng các hành động theo
các sự kiện đó.
Để nhiều agent có thể cùng hoạt động, các agent trong OAA có thể uỷ
quyền và nhận công việc yêu cầu qua một agent Facilitator. Các yêu cầu này
sẽ được diễn giải và mô hình hoá trong một ngôn ngữ chung cho mọi agent.
Ngôn ngữ đó là ICL (Inter-agent Communication Language: ngôn ngữ
truyền thông liên agent). Bên cạnh đó các agent còn sử dụng một tập các
hàm chung được định nghĩa trước như các khả năng cài đặt cục bộ hay khả
năng khởi động agent từ xa bởi một agent khác khi có yêu cầu.
Ngôn ngữ truyền thông liên agent sẽ còn được đề cập chi tiết hơn trong các
phần sau của báo cáo.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 12 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.1.4 Kiến trúc tổng quan của OAA
Hình 1 chỉ ra kiến trúc điển hình của một hệ thống OAA thu nhỏ, hệ thống bao
gồm có một agent giao diện người dùng (user interface agent) đảm nhận việc tổ chức,
xây dựng và điều khiển giao diện người dùng, một số agent ứng dụng (application
agent) và các siêu agent (meta-agent). Các agent này được tổ chức như một cộng đồng
thông qua một mối quan hệ chung với một Facilitator agent (agent điều phối).
Hình 1: Kiến trúc cơ bản của Open Agent Architecture.
Các thành phần của kiến trúc này có thể được tóm tắt như sau:
Agent ứng dụng (Application Agent): cung cấp một tập các dịch vụ
(service) cơ bản phục vụ cho một nhu cầu nào đó. Trên thực tế chúng có thể
là các ứng dụng cụ thể. Điều đáng quan tâm là các ứng dụng đó có thể áp
dụng các công nghệ độc lập (Ví dụ như các ứng dụng xử lý tiếng nói. email
hay các ứng dụng cụ thể nào đó như các ứng dụng về bài toán lập kế hoạch
du lịch).
Siêu agent (Meta-agent): là agent đóng vai trò trợ giúp cho Facilitator trong
việc phối hợp hoạt động của các agent khác. Meta-agent có thể giúp cho
Facilitator agent trong việc hỗ trợ giao tiếp giữa các agent ở các miền nhiệm
vụ độc lập cũng như được xây dựng trên các công nghệ khác nhau. Số lượng
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 13 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
Meta-agent có thể tăng nên khi số lượng miền nhiệm vụ tăng lên cũng như
các tri thức về các miền nhiệm vụ như các luật (rule), các thuật toán tăng.
Agent giao diện người dùng (User Interface Agent): hay gọi tắt là
Interface agent đóng vai trò khá quan trọng và thú vị trong nhiều hệ OAA.
Trong một số hệ, Interface Agent được thực hiện bởi một tập các agent khác
được gọi là các “micro-agent”, trong đó mỗi “micro-agent“ đóng vai trò
giám sát một kiểu đầu vào khác nhau của hệ thống (ví dụ như click chuột,
các tín hiệu từ bút, giọng nói,…) và cộng tác để có thể đưa ra các diễn giải
tốt nhất trợ giúp cho hệ thống giao diện người dùng (user interface).
Facilitator: được đặc tả như một agent phục vụ chính (agent server) có khả
năng hồi đáp để truyền thông giữa các agent có thể thực hiện được nhằm
giải quyết các vấn đề chung. Trong nhiều hệ thống, facilitator cũng được sử
dụng để cung cấp một kho dữ liệu chung cho tất cả các agent khác, cho phép
chúng ghi nhận theo kiểu bảng đen của tương tác.
Một facilitator duy trì một cơ sở tri thức là các bản ghi khả năng về tập
hợp các agent. Nó sử dụng tri thức này để thực hiện các yêu cầu và cung cấp
các dịch vụ trong quá trình thực thi các nhiệm vụ. Chức năng trọng tâm của
facilitator là sự uỷ quyền trong suốt (transparent delegation). Điều này có
nghĩa là khi một yêu cầu phát sinh, facilitator có thể quản lí việc phục vụ để
thoả mãn yêu cầu đó. Như vậy là các yêu cầu được gửi đến facilitator không
cần phải có bất kì một tri thức nào về định danh hay vị trí của các agent có
thể giải quyết các yêu cầu đó. Sự uỷ quyền trong suốt ở đây là có thể bởi vì
khả năng của agent được xem như một mô tả trừu tượng của một dịch vụ.
Mỗi agent trong hệ thống OAA hoặc là một facilitator agent hoặc là một
agent khách (client agent). Sở dĩ có tên gọi như vậy là vì chúng hoạt động
như các khách của các facilitator – là agent cung cấp các dịch vụ truyền
thông và một số dịch vụ cần thiết khác cho agent khách. Khi được gọi, mỗi
agent khách thực hiện một kết nối tới facilitator, được biết đến như một
facilitator cha. Trong kết nối, mỗi agent sẽ gửi thông điệp tới facilitator cha
của nó về những dịch vụ mà nó có thể được cung cấp. Khi cần đến một
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 14 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
agent ứng dụng giải quyết một, facilitator sẽ gửi tới nó một yêu cầu sử dụng
ICL. Agent ứng dụng sẽ phân tích yêu cầu này, xử lí nó và trả về các trả lời
thông báo về trạng thái hay kết quả tới facilitator. Trong khi xử lí một yêu
cầu, agent có thể yêu cầu các dịch vụ của những agent khác, thiết lập các bộ
kích hoạt (trigger) và đọc hoặc ghi dữ liệu chia sẻ trên facilitator (hoặc các
agent khách khác quản lí dữ liệu chia sẻ)
Ngôn ngữ truyền thông liên agent (Inter-agent Communication
Language viết tắt là ICL): Ngôn ngữ truyền thông giữa các agent của OAA
là giao tiếp, là ngôn ngữ truyền thông được dùng cho mọi agent. ICL được
thiết kế như một hình thức mở rộng của ngôn ngữ lập trình Prolog. Nhờ đó
ICL tận dụng được những điểm mạnh về tính nhất quán và một số ưu điểm
khác của ngôn ngữ Prolog. Một số khai báo khoá và các phần tử chương
trình khác được đặc tả sử dụng các biểu thức ICL. Chúng gồm có các khai
báo về khả năng, các sự kiện (truyền thông giữa các agent), các yêu cầu dịch
vụ, các hồi đáp cho yêu cầu, đặc tả trigger và các phần tử dữ liệu chia sẻ.
Đế có một cái nhìn khái quát chung về OAA, ta nghiên cứu một ví dụ được xây
dựng dựa trên mô hình OAA ứng dụng trong hệ trợ giúp công tác văn phòng được mô
tả như hình 2. Kiến trúc hình 2 được xây dựng trên nền kiến trúc cơ sở của OAA trong
đó:
Facilitator agent đóng vai trò agent server có nhiệm vụ trả lời truyền thông
và điều khiển hoạt động của hệ thống agent. Trong nhiều hệ thống,
facilitator cũng được sử dụng để cung cấp một kho dữ liệu chung cho các
agent khách. Lưu ý rằng một cấu hình hệ thống không bị giới hạn với một
facilitator đơn lẻ.
Interface agent quản lý các giao diện người dùng đa hình thức bao gồm các
loại giao diện người dùng được nhập liệu theo kiểu khác nhau như: ngôn
ngữ tự nhiên (natural language), giọng nói (speech), bút (pen). Nhiệm vụ
của Interface agent là quản lý các hình thức nhập liệu khác nhau của người
dùng để tạo một giao tiếp trung gian với hệ thống xử lý. Nhờ đó, hệ thống
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 15 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
xử lý chỉ quan tâm đến dữ liệu nhận được mà không cần biết hình thức nhập
liệu của người dùng là gì.
Các agent ứng dụng bao gồm:
- Agent quản lý thư tín (Mail agent): quản lý công việc thư tín
- Agent cơ sở dữ liệu (Database agent)
- Agent lịch biểu (Calendar agent): quản lý lịch làm việc
- Agent thông báo (Notification agent)
Các agent này sử dụng các chức năng được cài đặt phục vụ cho các công
việc cụ thể. Ví dụ agent thư tín làm việc với bộ thư tín (Mailer) như trình
nhận mail hay làm việc trực tiếp với mail server để nhận mail về và sắp xếp
các mail đó theo yêu cầu.
Truyền thông giữa các agent: các agent có thể truyền thông trực tiếp với
nhau hay truyền thông gián tiếp thông qua Facilitator
Hình 2: Kiến trúc hệ trợ giúp công tác văn phòng khai triển kiến trúc OAA
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 16 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.1.5 Các lợi ích của việc sử dụng OAA
OAA rất hữu ích trong việc xây dựng các hệ thống phức tạp trong đó có nhiều
thành phần không đồng nhất (có thể là được xây dựng trên các ngôn ngữ lập trình, các
thư viện hỗ trợ khác nhau) và đặc biệt là các yêu cầu về tính mềm dẻo và co dãn được
coi trọng. Ta hoàn toàn có thể xây dựng một hệ thống có khả năng tương tự sử dụng
một số thư viện không cần sử dụng kiến trúc agent, tuy nhiên nếu hệ thống đòi hỏi mộ
hệ thống có tính thích nghi tốt, có thể dễ dàng mở rộng thì kiến trúc OAA có thể là
một trong những hướng giải quyết thích hợp để xây dựng kiến trúc cho hệ thống. Sau
đây ta sẽ thảo luận một số lợi ích của OAA:
Cung cấp các kỹ thuật đa năng trong liên tác (inter-operation) và phối hợp
hoạt động.
- Liên tác thể hiện thông qua khả năng truyền thông của các agent.
- Phối hợp hoạt động thể hiện kỹ thuật cho phép các agent trong cộng
đồng có thể cùng phối hợp với nhau để thực hiện công việc chung.
Để thực hiện được khả năng phối hợp, OAA hướng đến các mục tiêu:
- Cung cấp một cách mềm dẻo trong việc lắp ghép cộng đồng các nhà
cung cấp dịch vụ một cách tự động. Phối hợp các agent cùng một
mục đích chung.
- Cung cấp một cách mềm dẻo trong việc cấu trúc các tương tác phối
hợp giữa các agent với nhau trong cộng đồng: cung cấp khả năng
tương tác giữa các agent với nhau mà không phụ thuộc vào cơ sở hạ
tầng hay mức đồ phức tạp của bản thân các agent.
- Thoả mãn được nhiều yêu cầu về kiến trúc trên cùng hệ agent.
Tạo giao diện thân thiện với người dùng và giao diện giữa các bộ phận khác
nhau của hệ thống. Giao diện ở đây không chỉ bó hẹp theo nghĩa là các giao
diện đồ hoạ tương tác người dùng mà nó có thể là các giao diện tương tác
giữa các hệ thống với nhau cũng như là các cách thức giao tiếp của người
dùng và hệ thống. Nó thể hiện ở các đặc điểm:
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 17 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
- Cung cấp các tương tác tự nhiên: có thể bằng các chức năng nhận
dạng tiếng nói, nhận dạng chữ viết,… làm cho giao diện của hệ thống
trở nên dễ sử dụng hơn.
- Phân quyền giữa các người dùng: với sự tồn tại của một agent giao
diện phục vụ cho người dùng trên hệ thống hình thành một sự chuyên
biệt hoá công việc quản lý tương tác của người dùng. Thông qua hình
thức chuyên biệt hoá này, việc phân quyền người dùng có thể được
thực hiện thông qua sự hỗ trợ của agent giao diện và các tri thức mà
agent giao diện thu nhận được từ trước.
- Hỗ trợ cộng tác giữa agent và người dùng: theo nghĩa là các agent có
thể thực hiện theo dõi các hành vi của người dùng với hệ thống từ đó
đưa ra các hướng dẫn hay chuyển tới các giao diện một cách linh
hoạt thông minh. Như vậy là giữa người dùng và hệ thống hình thành
quan hệ cộng tác để cùng thực hiện một chức năng do hệ thống cung
cấp. Điều này đặc biệt có giá trị khi người dùng lần đầu sử dụng hệ
thống và cần có sự trợ giúp từ phía hệ thống hoặc khi hệ thống quá
phức tạp đối với người dùng.
Hiện thực hóa các yêu cầu về phần mềm như khả năng tái sử dụng, tính linh
hoạt trong việc hỗ trợ trên hệ nền (flatform) khác nhau:
- Hạn chế xây dựng các agent mới mà khuyến khích tái sử dụng lại các
agent đã có, các ứng dụng đã tồn tại. Nếu hệ thống đã tập hợp được
một số lượng đủ lớn các ứng dụng thì khi có một công việc mới,
nhiệm vụ mới thay vì đi xây dựng một agent mới thực hiện các công
việc hay nhiệm vụ này ta có thể kiểm tra liệu các ứng dụng hay các
agent đã tồn tại trong hệ thống có thể thực hiện nhiệm vụ đó hay
không (có thể thực hiện một cách riêng lẻ hay cộng tác với nhau để
hoàn thành).
- Hỗ trợ cho các platform một cách linh hoạt, giảm phức tạp: các
platform cài đặt không cần đầy đủ các bộ phận của nó. Điều này cho
phép xây dựng các agent độc lập nhỏ hơn và mức độ vừa phải.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 18 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.1.6 So sánh OAA với các công nghệ tính toán phân tán
Một đặc điểm rất quan trọng phân biệt OAA với các mô hình tính toán phân tán
khác là mô hình tính toán ủy quyền. Mô hình này cho phép người dùng và các agent
phần mềm mô tả những yêu cầu bằng những công việc cần được làm mà không cần
những đặc tả thêm các thông về ai, hệ thống nào sẽ thực hiện công việc đó và cách
thức mà công việc đó được thực hiện. Chẳng hạn một yêu cầu: “Khi một thông điệp về
vấn đề an ninh gửi tới cho tôi, hãy báo cho tôi ngay lập tức”. Bộ tiếp nhận yêu cầu
(Requester) sẽ giao quyền điều khiển để đáp ứng một mục tiêu cho facilitator agent –
một server agent được chuyên môn hóa trong OAA. Facilitator agent phối hợp hoạt
động của cộng đồng agent nhằm thực hiện những mục tiêu giải quyết các vấn đề phức
tạp ở mức cao.
Trong OAA, sự điều khiển cách thức mà tương tác và truyền thông xảy ra giữa
các agent là kết quả sự phối hợp của 4 nguồn tri thức khác nhau:
1. Bộ tiếp nhận yêu cầu chỉ ra một mục tiêu cho facilitator và cung cấp lời
chỉ dẫn về việc mục tiêu đó nên được đáp ứng như thế nào.
2. Các agent cung cấp chức năng đăng ký các khả năng của chúng với
facilitator, biết những dịch vụ nào mà chúng có thể cung cấp và giới hạn của
những khả năng của chúng.
3. Facilitator duy trì một danh sách các agent cung cấp chức năng đang sẵn
sàng và một tập các chiến lược chung để đáp ứng các mục tiêu.
4. Các siêu agent (meta-agent) lưu giữ những tri thức và chiến lược cụ thể
đối với một phạm vi hay mục tiêu, được sử dụng như là một sự trợ giúp cho
facilitator.
Những tri thức này được sử dụng để tạo sự thuận lợi hơn trong việc phối hợp
giữa giữa một tập các OAA agent. Facilitator sẽ khớp (match) một yêu cầu với một
hoặc nhiều agent cung cấp dịch vụ để đáp ứng yêu cầu đó, giao nhiệm vụ cho chúng,
kết hợp các kết quả của chúng, và gửi kết quả lại cho bộ tiếp nhận yêu cầu. Cách phối
hợp giữa các agent theo hình thức này có thể được áp dụng để thực hiện cả hai loại
công việc đơn giản và phức tạp, nhiều bước. Để bổ sung cho sự ủy quyền, OAA cũng
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 19 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
cung cấp khả năng tạo ra những cuộc gọi trực tiếp đến một agent cụ thể, và quảng bá
(broadcast) các yêu cầu.
Những lợi ích của tính toán ủy quyền
Mô hình tính toán ủy quyền của OAA làm nhẹ bớt cho con người và các agent
phần mềm khỏi trách nhiệm giao tiếp, lập kế hoạch công việc, và giám sát việc thực
hiện. Trên thực tế, tính toán uỷ quyền là một khía cạnh của việc phân chia công việc
được thực hiện trong hệ thống. Một hệ thống được phân chia công việc thích hợp sẽ
tạo ra nhiều lợi ích trong việc kiểm soát các kết quả trung gian thực hiện được ở các bộ
phận khác nhau của hệ thống. Nhờ đó việc kiểm soát kết quả chung của hệ thống cũng
được nâng cao.
Ở một góc độ khác, việc phân chia tính toán uỷ quyền giúp hệ thống tránh khỏi
khả năng tập trung một lượng lớn các tính toán phức tạp về một bộ phận nào đó của hệ
thống. Trong khi đó một số bộ phận khác chỉ đảm nhiệm một lượng nhỏ các công việc
gây ra sự mất cân đối trong toàn bộ chức năng của hệ thống.
Các lợi ích của tính toán uỷ quyền có thể được tóm tắt thông qua một số đánh
giá về hiệu quả của hệ thống như sau:
Giảm bớt sự phức tạp cho người dùng và agent. Bộ tiếp nhận yêu cầu chỉ
cần chỉ ra công việc để được làm và chỉ dẫn về sự thực hiện. Các agent sau
đó tập trung vào các công việc được chuyên môn hóa của chúng, có thể cần
phối hợp sự thực hiện cũng như các kết quả.
Thúc đẩy kiểu tính toán có tính mở hơn, có tính co giãn động trong đó các
agent được viết bằng nhiều ngôn ngữ lập trình và nhiều kiểu có thể làm việc
với nhau. Các agent mới hay khác nhau có thể được thêm vào hoặc thay thế
mà không yêu cầu lập trình lại để có thể sử dụng được những khả năng của
chúng.
Khuyến khích tái sử dụng các ứng dụng bởi vì những tương tác giữa các
agent không được định nghĩa trước và các giao diện chung của chúng, tránh
lập trình một cách cứng nhắc. Nói cách khác, OAA có tính “plug and play”.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 20 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.1.7 Ví dụ về ứng dụng của kiến trúc OAA
Ta sẽ tìm hiểu về kiến trúc OAA qua một ví dụ về hệ thống văn phòng tự động
(Automated Office)
Hình 3: Hệ thống văn phòng tự động
Hệ thống văn phòng tự động là một hệ thống hỗ trợ cho các công việc văn
phòng như: lập lịch công tác, kiểm tra email,…từ xa và một cách di động. Hệ thống xử
lý di động với một điện thoại và một máy tính xách tay qua đó có thể truy cập và điều
khiển các công tác văn phòng từ xa. Hình 3 mô tả một hệ thống văn phòng tự động với
khả năng xử lý ngôn ngữ tự nhiên. Các thành phần của hệ thống này bao gồm:
Một Interface agent chạy trên một máy tính xách tay của người dùng, kiểm
soát các thông tin của người dùng nhập vào và gửi các yêu cầu này tới
Facilitator để đến được một agent sẽ thực hiện các công việc. Người dùng
có thể tương tác một cách trực tiếp với các ứng dụng từ xa bằng cách click
vào các khu vực trên giao diện hoặc triệu gọi một màn hình của ứng dụng và
tạo ra các câu hội thoại chuẩn. Ngược lại một người dùng khác cũng có thể
diễn tả một công việc được xử lý bằng cách đánh máy hoặc viết tay hoặc
bằng Tiếng Anh hoặc trên một ngôn ngữ nào đó hay qua điện thoại mà
không cần chỉ rõ agent nào thực hiện công việc đó. Ví dụ như câu hỏi “Lịch
làm việc của tôi như thế nào nhỉ?” được viết trên giao diện thì yêu cầu này
sẽ được gửi đến Facilitator và sau đó Facilitator sẽ chuyển cho agent xử lý
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 21 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
ngôn ngữ tự nhiên (natural language agent) để tiến hành biên dịch câu nói
này ra ngôn ngữ truyền thông liên agent. Để hoàn thành công việc này agent
ngôn ngữ tự nhiên có thể cần tạo ra một yêu cầu giải đáp các từ mà nó
không biết tới cộng đồng các agent. Ví dụ như từ “lịch làm việc” thì agent
lịch biểu (calendar agent) có định nghĩa từ này.
Facilitator: như mô tả trên Facilitator agent đóng vai trò điều phối hoạt động
của hệ thống. Ví dụ khi câu hỏi phức tạp hơn “Khi thư điện tử đến hãy báo
ngay cho tôi” sẽ là một chuỗi các hành động phức tạp bao gồm truyền thông
giữa các agent trong hệ thống. Sau khi dịch câu nói trên ra ngôn ngữ truyền
thông liên agent, Facilitator sẽ cài đặt một bộ tự kích hoạt (trigger) trên
agent thư tín. Khi các thông điệp đến hòm thư, bộ tự kích hoạt sẽ tự động
được kích hoạt và Facilitator sẽ đưa ra các thông báo bởi agent thông báo
(notification agent). Agent thông báo là một ví dụ điển hình của siêu agent
(meta-agent). Nó tạo ra cách sử dụng các luật liên quan đến việc tối ưu sử
dụng các kiểu đầu ra khác nhau (email, fax, sinh tiếng nói qua điện thoại…)
đưa thêm vào các thông tin cá nhân của người gửi xác định cách tốt nhất để
sắp đặt các bản tin qua các agent ứng dụng đa phương tiện có sẵn. Sau một
vài bước song song để định vị người dùng (agent lịch biểu hay agent cơ sở
dữ liệu có thể có các phỏng đoán khác nhau về một vị trí nào đó để tìm user)
và các bước cùng thực hiện để đưa ra các thông tin cần thiết, một agent điện
thoại có thể gọi người dùng, thẩm tra xác thực qua bấm số.
Trong ví dụ trên chứa đựng các ý tưởng quan trọng :
- Khi agent mới kết nối vào Facilitator đăng ký các khả năng và từ vựng của
ngôn ngữ tự nhiên người dùng có thể nói và tạo ra các thay đổi động.
- Sự thông dịch và thực hiện một công việc là một tiến trình phân tán và
không có một agent nào xác định một tập các đầu vào có thể cho hệ thống.
- Một yêu cầu có thể cần sự cộng tác và truyền thông của các agent. Các agent
có thể được xây dựng trên các ngôn ngữ lập trình khác nhau, hoạt động trên
hệ thống máy tính khác nhau.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 22 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.1.8 Phát triển giao diện người dùng theo kiến trúc OAA
Nghiên cứu lý thuyết OAA cho ta một kiến trúc tổng quan về một hệ thống
phần mềm có sự tham gia của các agent. Trong đó ta đặc biệt quan tâm việc xây dựng
hệ thống giao diện người dùng với sự tham gia của agent.
Theo hướng tiến cận của OAA, hệ thống giao diện sẽ có một hay một số agent
tham gia, hình thành mối quan hệ cộng tác giữa các agent trên hệ thống giao diện với
người sử dụng hệ thống. Sự cộng tác này thể hiện ở các khía cạnh:
Giao tiếp của người sử dụng với hệ thống sẽ thông qua một agent làm nhiệm
vụ thu thập thông tin và chuyển giao các thông tin đó cho các xử lý bên
trong của hệ thống các agent. Như vậy agent này (hay còn gọi là agent giao
diện – Interface agent) sẽ đóng vai trò trung gian, làm cầu nối giữa người
dùng và hệ thống các agent hoạt động khác trong hệ thống.
Ở một mức độ nhất định các agent giao diện có thể tham gia nhiều hơn vào
quá trình thao tác của người dùng với toàn bộ hệ thống. Agent giao diện có
thể có các hoạt động hỗ trợ tốt hơn cho người dùng nhằm tạo ra một hệ
thống giao diện tương tác thân thiện và đầy đủ.
Giao tiếp của người dùng với hệ thống agent hoạt động trở thành giao tiếp
của người dùng với agent giao diện. Như vậy sẽ hình thành một hình thức
chuyên biệt hoá các lĩnh vực xử lý giao tiếp giữa người dùng và hệ thống
phần mềm. Agent giao diện có thể thực hiện giao dịch với người dùng theo
các hình thức giao tiếp khác nhau như: bàn phím, bút, giọng nói,…Các
agent hoạt động khác trong hệ thống không cần thiết phải quan tâm đến dữ
liệu được đưa đến cho nó đã được nhập liệu như thế nào mà chỉ quan tâm
đến logic xử lý dữ liệu đó và các kết quả trả ra theo một định dạng xác định
trước.
Agent giao diện thừa kế các thuộc tính cơ bản của agent và nếu được cài đặt
tốt với các mô hình hoạt động hợp lý nó có thể trở thành một agent giao diện
thông minh. Đây là một hướng phát triển cho mô hình xây dựng giao diện
với sự tham gia trợ giúp hiệu quả của agent giao diện đối với người dùng.
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 23 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
1.2 Cơ sở lý thuyết về Interface Agent
1.2.1 Đại cương về giao diện thông minh
1.2.1.1 Giới thiệu chung
Lĩnh vực nghiên cứu về giao diện người dùng thông minh (intelligent user
interface) bao trùm một lớp các đề tài nghiên cứu khả năng ứng dụng trí tuệ nhân tạo
(Artificial Intelligence) và các kỹ thuật dựa trên tri thức (knownledge based) giải quyết
các vấn đề thuộc phạm vi nghiên cứu của tương tác người máy (human - computer
interaction).
Các ứng dụng máy tính phát triển ngày càng nhanh, tính phức tạp của chúng
cũng tăng theo. Việc sử dụng các hệ thống phần mềm trí tuệ nhân tạo đã bắt đầu đạt
được khả năng suy luận và tự đưa ra các quyết định. Các ứng dụng cao cấp thường có
một số lượng lớn các thông tin cần được hiểu và diễn đạt. Bên cạnh đó chúng còn có
các cấu trúc công việc phức tạp, các đặc tính đòi hỏi hiệu suất thời gian thực, kết hợp
khả năng tự trị và bán tự trị vốn là các đặc tính cơ bản của agent. Các đòi hỏi này đặt
ra nhiều yêu cầu đối với hệ thống tương tác người máy. Các yêu cầu này ngày càng
vượt quá khả năng phục vụ của các giao diện truyền thống vốn không thành công
trong việc phản ánh ngữ nghĩa của các chức năng phục vụ người dùng và các vấn đề
công việc. Điều đó có nghĩa là với một công việc, người dùng không phải lúc nào cũng
có thể sử dụng một cách dễ dàng mà không cần những trợ giúp từ hệ thống và các tài
liệu hướng dẫn.
Giao diện người dùng thông minh được phát triển nhằm giải quyết những khó
khăn trên và đặc biệt là với các vấn đề về mặt ngữ nghĩa của các từ vựng được dùng
trong các giao diện. Giao diện thông minh có thể giúp cho người dùng truy cập tới các
thông tin hoặc giải quyết các vấn đề, các công việc phức tạp bằng cách hiểu các tri
thức, các nhận thức sai, mục đích và các kế hoạch của người dùng
1.2.1.2 Phạm vi nghiên cứu
Thông thường, ứng dụng yêu cầu một giao diện thông minh, linh hoạt có thể
được đáp ứng bằng cách sử dụng một số kỹ thuật. Các kỹ thuật được coi là thông minh
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 24 / 132
Báo cáo đồ án tốt nghiệp đại học Thầy giáo hướng dẫn: TS. Huỳnh Quyết
Thắng
khá đa dạng và biến đổi nhanh chóng. Danh sách sau là tập hợp một số kỹ thuật
thường được áp dụng trong giao diện thông minh:
Thích nghi với người dùng (User adaptivity): kỹ thuật này cho phép
tương tác giữa người dùng và hệ thống có khả năng thích nghi với các điều
kiện môi trường người dùng khác nhau và các tình huống sử dụng khác
nhau.
Mô hình hoá người dùng (User modelling): kỹ thuật này cho phép một hệ
thống theo dõi, ghi nhận các hành động, thói quen của người dùng và duy trì
được các tri thức này phục vụ một số tiện ích nhằm nâng cao tương tác, tính
thân thiện của hệ thống giao diện.
Công nghệ ngôn ngữ tự nhiên (Natural language technology): kỹ thuật
cho phép một hệ thống biên dịch và sinh các phát biểu, ngôn từ trên ngôn
ngữ tự nhiên ở dạng văn bản hay lời nói.
Mô hình hoá hội thoại (Dialogue modelling): Kỹ thuật này cho phép một
hệ thống duy trì một hội thoại ngôn ngữ tự nhiên với người dùng, có thể
trong sự kết hợp với các phương tiện tương tác khác (hội thoại đa hình thức
- multimodal dialogue).
Sinh các lời giải thích (Explanation generation): Kỹ thuật cho phép một
hệ thống giải thích kết quả hành động của nó hay các vấn đề có liên quan tới
tri thức cho người dùng.
Từ các lĩnh vực này, ta có thể tham khảo định nghĩa chung về phạm vi của các
nghiên cứu về giao diện thông minh như sau:
Các lĩnh vực nghiên cứu giao diện thông minh kết hợp các nguyên tắc thiết kế
và các công nghệ nhằm nâng cao hiệu quả tương tác người máy và các nguyên cứu
trên giao diện thông minh trợ giúp cho việc mở rộng biên nghiên cứu của cả hai lĩnh
vực này. (Russel and Wefald's - 1998).
Nếu sử dụng định nghĩa về các lĩnh vực nghiên cứu của giao diện thông minh
này, một số thuộc tính đặc trưng của các đề tài nghiên cứu trên lĩnh vực này có thể bao
gồm:
S/v thực hiện: Đỗ Thanh Vũ Lớp Công nghệ phần mềm – K44 – CNTT
Trang 25 / 132