Tich hop ontology vao mase
TÍCH HỢP ONTOLOGY VÀO TRONG MASE
Nguyễn Thị Vân Anh
Nguyễn Minh Tuấn
1. Giới thiệu
Trong những năm gần đây, sự quan tâm đến các hệ thống đa agent đã tăng rất nhiều bởi
những người thiết kế tìm kiếm phương pháp mới để giải quyết những vấn đề trong các
môi trường phức tạp. Vì công nghệ agent đã được phát triển việc nghiên cứu trong lĩnh
vực kỹ nghệ phần mềm dựa trên agent đã cố gắng phát triển các phương pháp luận để
giúp phát triển các hệ thống đa agent mạnh mẽ và tin cậy.
Việc xây dựng các hệ thống đa agent liên quan đến tất cả những vấn đề của các hệ thống
phân tán cùng với những vấn đề xuất hiện từ hành vi của các cá thể agent. Ví dụ, hành vi
cá thể của các agent có thể kết hợp thành hành vi hệ thống mà là đối nghịch với sự thực
thi đúng đắn của hệ thống. Người thiết kế cần một phương pháp cho việc phát triển các
hệ thống đa agent để đưa ra và tránh được những vấn đề đó.
Việc tích hợp các hệ thống trước đó làm tăng thêm sự khó khăn trong việc thiết kế các hệ
thống đa agent kế thừa nó do các ngữ nghĩa thay đổi trong các hệ thống thông tin khác
nhau. Các hệ thống khác nhau có thể có các thuật ngữ khác nhau nhưng lại cùng biểu
diễn khái niệm như nhau, do vậy càng làm cho việc tích hợp các hệ thống trở nên phức
tạp. Bất kỳ phương pháp luận hoàn chỉnh nào cho việc xây dựng hệ thống đa agent đều
phải đưa ra các mô hình dữ liệu được sử dụng bởi hệ thống và các thành phần riêng biệt
trong hệ thống.
Một số phương pháp luận xây dựng MAS hiện nay, mỗi loại lại khác nhau theo mức độ
phát triển của chúng. MESSAGE là một trong số phương pháp luận đưa ra miền thông tin
trong hệ thống. Tầm quan trọng của việc biểu diễn miền thông tin của hệ thống là khác
nhau đối với cái nhìn miền thông tin của agent khác nhau. Các hệ thống hỗn tạp có thể
chứa các agent với các mô hình dữ liệu phân biệt nhau, ví dụ trường hợp sử dụng lại các
agent đã được xây dựng trước đó hoặc tích hợp các thành phần của hệ thống trwocs đó
vào trong hệ thống. Hầu hết các phương pháp luận thiếu hướng dẫn cụ thể về việc phát
triển đặc tả miền thông tin cho một hệ đa agent và cho các agent trong hệ thống.
Sự thất bại dẫn đến việc kết hợp các đặc tả miền thông tin trong thiết kế không đưa ra đầy
đủ hành vi của hệ thống đa agent. Sự tương tác giữa các agent trong hệ thống thường
xuyên xuất hiện thông qua giao tiếp. Mặc dù sự giao tiếp có thể xuất hiện đơn giản bằng
cách truyền các thông điệp, các hệ thống phức tạp sẽ yêu cầu truyền thông tin giữa các
agent dưới dạng các tham số. Nếu không đặc tả miền thông tin của hệ thống, người thiết
kế không thể đặc tả kiểu dữ liệu nào được truyền đi như là tham số và không thể mô tả
luồng thông tin trong hệ đa agent.
Phương pháp luận MaSE đã được phát triển tại viện công nghệ hàng không Hoa Kỳ
(AFIT) để giúp sự phát triển của các hệ thống đa agent bằng cách dẫn dắt người thiết kế
từ các đặc tả hệ thống ban đầy tới tập các mô hình thiết kế hình thức. Sự chuyển đổi giữa
các bước trong MaSE được định nghĩa một cách hình thức và cung cấp phương pháp cần
thiết cho phát triển hệ thống đa agent. Mặc dù lợi ích của MaSE trong thiết kế các hệ
thống đa agent là như vậy, nhưng MaSE không đưa ra thiết kế miền thông tin, nó dẫn dắt
người phát triển xây dựng tập các tài liệu thiết kế mà không đặc tả một cách đầy đủ ngữ
nghĩa của dữ liệu được truyền giữa các agent.
Trong bài báo này, chúng tôi mở rộng MaSE với việc tích hợp ontology như là một cơ
chế cho việc đặc tả miền thông tin của hệ thống và các agent riêng biệt. Phần tiếp theo
biển diễn cái nhìn tổng quan của MaSE trước khi giới thiệu về tích hợp Ontology. MaSE
được mở rộng dựa trên kinh nghiệm sử dụng nó để thiết kế hệ thống lập lịch khóa học
phân tán.
2. Nền tảng của phương pháp luận MaSE
Phương pháp luận MaSE đã được nghiên cứu tại viện công nghệ hàng không Hoa kỳ
trong vài năm gần đây. Nhà nghiên cứu tập trung vào việc phát triển một phương pháp
luận mạnh mẽ cho việc xây dựng các hệ thống đa agent. MaSE chia sự phát triển các hệ
thống đa agent thành các pha phân tích, thiết kế và cài đặt. Ban đầu, MaSE bao gồm 3
bước trong pha phân tích và 4 bước trong pha thiết kế như được chỉ ra trong hình 1.
Những người phát triển MaSE có dụng ý những pha và những bước này được áp dụng
một cách lặp lại. Quá trình cài đặt các mô hình từ các pha phân tích và thiết kế được sử
dụng để lập trình hệ thống thành code thực sự. Bài báo này bàn luận về sự bổ sung của
bước System Ontology vào phương pháp luận MaSE.
Hình 1: Các pha, các bước và các mô hình của MaSE được mở rộng
Pha phân tích
Pha phân tích liên quan đến việc thiết lập tập các role và gán các task vào những role đó
để mô tả các yêu cầu của hệ thống. Bước Capturing Goal bắt đầu pha này với việc
chuyển đặc tả hệ thống ban đầu thành cây phân cấp goal. Bước này cho phép người thiết
kế tổ chức các goal mà hệ thống cần hoàn thành.
Kịch bản cơ bản (scenario) mà hệ thống phải thực hiện được xây dựng trong bước
Applying Use case. Các UC được tạo ra và sau đó chuyển thành các biểu đồ tuần tự.
Bước cuối cùng của pha phân tích là Refining Role (làm mịn role) sử dụng đầu ra từ hai
bước trước đó để tạo role và gán các task được thực hiện bởi những role đó trong hệ
thống. Các task được kết hợp với mỗi role để mô tả hành vi mà role đó phải hoàn thành
các goal đã được gán cho nó. Hình 2 là một ví dụ mô hình role trong MaSE, chỉ ra các
goal đã được gán cho role, cac task kết hợp với role đó và các giao tiếp giữa các task sử
dụng các giao thức được chỉ ra bởi mũi tên.
Hình 2: Ví dụ mô hình Role
Các task đã được định nghĩa sử dụng máy hữu hạn trạng thái như được chỉ ra trong hình
3. Việc chuyển tiếp trong biểu đồ task đồng thời theo cú pháp sau: trigger [guard] ^
transmission(s). Cú pháp này biểu diễn một chuyển tiếp được cho phép chỉ khi một sự
kiện trigger xuất hiện và guard là đúng. Khi sự chuyển tiếp được thực hiện, đặc tả
transmission(s) sẽ được thực hiện bởi role. Trong một trạng thái, task giữ trạng thái đó
cho đến khi tất cả các hành động được định nghĩa trong trạng thái đó đã được hoàn thiện
và một chuyển tiếp khỏi trạng thái đó được cho phép.
Pha thiết kế
Khi các yêu cầu do hệ thống đã được mô hình hóa trong pha phân tích, việc thiết kế hệ
thống sẽ được bắt đầu. Bước đầu tiên trong pha thiết kế là tạo các lớp agent, trong đó các
role được gán cho các lớp agent cụ thể. Bước này tạo ra biểu đồ lớp agent như được chỉ
ra trong hình 4, chỉ ra các lớp trong hệ thống, các role được thực hiện bởi các lớp agent
(được liệt kê dưới tên của lớp agent), và các cuộc hội thoại giữa các lớp đó (được ghi chú
bởi đường mũi tên từ lớp khởi tạo đến lớp phản hồi).
Hình 4: Ví dụ biểu đồ lớp agent
Chi tiết về các cuộc hội thoại được định nghĩa trong bước xây dựng các cuộc hội thoại
(Constructing Conversation), sử dụng máy hữu hạn trạng thái để chỉ ra các trạng thái
trong một cuộc hội thoại. Mỗi cuộc hội thoại có hai biểu đồ: một cho phía khởi tạo và
một cho phía phản hồi, với hình 5 sẽ giải thích biểu đồ cho phía khởi tạo của hội thoại
RequestNotification của hình 4. Tập các cuộc hội thoại mà một lớp agent tham gi trong
đó được được dẫn xuất từ các giao tiếp của các role mà agent đó thực hiện. Ví dụ, các
role FileNotifier và AdminNotifier được định nghĩa bởi biểu đồ task đồng thời giao tiếp
với các role khác. Vì hai task này là phân tách trong các lớp agent trong hình 4, sự giao
tiếp này trở thành cuộc hội thoại RequestNotifier.
Bước thứ 3 trong thiết kế là Assembling Agent Classes (kết hợp các lớp agent), định
nghĩa các thành phần của kiến trúc agent. Bước cuối cùng là thiết kế hệ thống, tạo ra một
biểu đồ triển khai để chi r ra số lượng và vị trí của mỗi kiểu agent trong hệ thống. Các
đầu ra từ các bước trong pha thiết kế mô tả các hành động và các cuộc hội thoại được sử
dụng trong các hệ thống đa agent. Các ngữ nghĩa của các tham số được truyền đi trong
những cuộc hội thoại này không được định nghĩa trong quy trình MaSE trước đó.
Hình 5: Biểu đồ cuộc hội thoại RequestNotification
agentTool
agentTool là mô trường phát triển tự động hỗ trợ phương pháp luận MaSe bằng cách cho
phép người thiết kế tạo các mô hình MaSE trong môi trường đồ họa. Việc sử dụng các
chuyển tiếp đã được định nghĩa trong [13], agentTool cho phép tự động sinh ra các tài
liệu thiết kế dựa trên mô hình role và các biểu đồ task. Khi người thiết kế đặc tả hệ thống
trong agentTool, chương trình có thể xuất ra code Java cho hệ thống. Vì các đặc tả miền
thông tin không được kết hợp trong phương pháp luận MaSE, code được sinh ra từ
agentTool phân loại tất cả các tham số như là các đối tượng Java. Sau đó, người cài đặt
phải xuyên suốt và thay đổi các khai báo để phù hợp với cấu trúc dữ liệu được sử dụng để
biểu diễn ngữ nghĩa của các khái niệm của các tham số. Việc xây dựng mô hình dữ liệu
hệ thống loại bỏ bước cần thiết này, vì tất cả các tham số có thể được đặc tả một cách tự
động với kiểu chính xác.
3. Tích hợp Ontology vào trong MaSE
Từ ontology đã được đưa ra trong lĩnh vực triết học, biểu diễn nghiên cứu tự nhiên của
con người. Nhiều cuộc tranh luận hiện này về vấn đề định nghĩa chính xác ontology khi
sử dụng tri thức hoặc trí tuệ nhân tạo. Hầu hết các định nghĩa phát biểu rằng ontology là
một đặc tả của một sự khái niệm hóa hoặc ontology là sự hiểu biết được chia sẻ về một
miền quan tâm nào đó. Nghiên cứu này sử dụng định nghĩa sau, đặc tả rằng ontology
định nghĩa các lớp, các chức năng, các hằng đối tượng và các tiên đề (axioms) để ràng
buộc nghĩa của một cái nhìn về một miền đã cho.
Những lớp trong ontology mô tả các đối tượng trong cái nhìn miền thông tin hệ thống.
Các chức năng và các hằng đối tượng định nghĩa các thuộc tính và những mối quan hệ
giữa những đối tượng đó. Người phân tích sử dụng các tiên đề để mô tả bất kỳ quan hệ
hay ràng buộc nào trên các khái niệm trong ontology. Ví dụ, một tiên đề có thể đặc tả
rằng một sinh phải đã được đăng kí hoặc đã đăng nhập để tham gia ít nhất một lớp học.
Với những khái niệm này, ontology mô tả các khái niệm và các quan hệ được sử dụng để
tương tác trong miền này.
Trong nghiên cứu này, chúng tôi sử dụng ontology để đặc tả miền thông tin của hệ thống
đa agent. Tầm quan trọng của ontology là để đặc tả mô hình dữ liệu trong quy trình phát
triển phần mềm truyền thống, mô hình dữ liệu cho một hệ thống đa agent cũng phải được
đặc tả như vậy. Các agent trong hệ thống tương tác bằng cách truyền thông điệp và những
thông điệp này thường xuyên liên quan đến việc truyền các tham số. Những tham số này
là các đối tượng của một số loại nào đó, và không có một đặc tả miền thông tin nào,
phương pháp luận không thể đưa ra thông tin được chứa trong những tham số đó.
Để sử dụng ontolog để mô tả miền thông tin của một hệ thống trong MaSE, nghiên cứu
này giới thiệu một bước mới trong đó người thiết kế xây dựng ontology cho hệ thống
trong pha phân tích của MaSE. Chúng tôi đã quyết định bước này nên xuất hiện sau bước
Applying Use case. Sự sắp xếp này cho phép người thiết kế sử dụng các thuật ngữ từ cây
phân cấp goal, các use case, và các biểu đồ tuần tự như là các khái niệm có thể có trong
ontology. Kết quả của xây dựng Ontology có thể được sử dụng để tạo ra các task trong
bước làm mịn role của MaSE. Các task thường chỉ ra tham số truyền, vì thế đó là bước
được đặt sau khi đã xây dựng xong ontology để cho phép người thiết kế đặc tả kiểu của
các tham số như là các lớp từ ontology. Biểu đồ mở rộng của MaSE được chỉ ra trong
hình 1.
4. Xây dựng Ontology cho các hệ thống đa agent
Một phương pháp luận phù hợp cho việc phát triển các ontology phải được định nghĩa
cho những người thiết kế để họ sử dụng trong việc đặc tả các biểu diễn miền trong hệ đa
agent. Các phương pháp luận hiện nay cho thiết kế các ontology miền được xây dựng để
mô tả mọi thứ về miền cụ thể; tuy nhiên, không có cái nào là phù hợp cho hệ đa agent vì
ontology hệ thóng phải đặc tả thông tin được yêu cầu cho sự thực thi của chính hệ thống
đó. Ontology hệ thống thực hiện như là một điều kiện tiên quyết (prerequisite) cho việc
sử dụng lại hệ thống trong tương lai, như là ontology đặc tả cái nhìn của miền thông tin
được sử dụng bởi hệ đa agent. Bất kì hệ thống mà sử dụng lại các hệ đa agent đã được
phát triển phải đảm bảo rằng ontology hệ thống đã được phát triển trước đó không xung
đột với ontology sẽ được sử dụng trong hệ thống mới.
Để xây dựng ontology, đầu tiên người thiết kế xác định mục đích và phạm vi của
ontology và sau đó sưu tập và phân tích dữ liệu từ miền thông tin cho ontology. Cuối
cùng, người phân tích xây dựng ontology ban đầu và dần dần lọc, phê chuẩn và hoàn
thiện mô hình thành ontology hoàn chỉnh. Mỗi bước được bàn luận chi tiết như ở bên
dưới.
Xác định mục đích và phạm vi của Ontology
Người thiết kế phải mô tả tại sao ontogy được phát triển cũng như là phạm vi sử dụng của
ontology. Trả lời được câu hỏi này bằng cách cho phép người khác nhìn nhận một cách
nhanh chóng về lý do ontology được xây dựng và những thông tin nào chứa trong
ontology. Ví dụ, khi thiết kế hệ đa agent để thực hiện lập lịch khóa học, ontology phải
định nghĩa các lớp ker cả khóa học, kỳ học,người dạy, phòng học, ... (course, quarter,
intructor, classroom, ...). Các yêu cầu phần mềm và cấu trúc goal phân cấp sẽ giúp xác
định mục đích của ontology, vì mục đích của ontology là hoàn thiện những thông tin cần
thiết của hệ đa agent. Mục đích mô tả tại sao ontology tồn tại, chẳng hạn như để liệt kê tất
cả các lớp trong lĩnh vực giáo dục được yêu cầu khi lập lịch học. Phạm vi xác định mức
độ chi tiết để ontology mô tả các đối tượng, chẳng hạn như chỉ định nghĩa ngữ nghĩa các
ý tưởng cần thiết để lập lịch học trong môi trường mạng phân tán.
Để xác định phạm vi của ontology, người thiết kế có thể sử dụng các use case đã định
danh trước đó để xác định kiểu dữ liệu mà hệ thống sẽ sử dụng. Ví dụ, một UC có thể mô
tả một agent truyền tới một agent khác một khóa học cụ thể để lập lịch. Người thiết kế sử
dụng tình huống này để xác định mức độ chi tiết cần thiết để mô tả một khóa học mà hệ
thống có thể thực hiện đúng các sự kiện đã được mô tả trong UC.
Thu thập dữ liệu
Khi đã định nghĩa được phạm vi của ontology, người phân tích biết được mức độ chi tiết
và lĩnh vực mà ontology biểu diễn và có thể bắt đầu xây dựng mô hình. Đầu tiên, người
thiết kế tạo danh sách các thuật ngữ hoặc các khái niệm có thể mà ontology phải mô tả.
Người thiết kế thiết lập danh sách này bằng cách kiểm tra cây phân cấp goal, các UC, và
các biểu đồ tuần tự từ các bước trước của MaSE cho các thuật ngữ ontology ứng cử.
Người phân tích tìm kiếm các danh từ trong những mô hình này mà những danh từ này
có thể biểu diễn một số kiểu thông tin trong hệ thống. Ví dụ, khi nhận biểu đồ tuần tự cho
lập lịch khóa học, người phân tích có lẽ sẽ đặt schedule, lock, section, student, instructor
và classroom vào danh sách ứng cử, nếu những thuật ngữ này xuất hiện trong biểu đồ
tuần tự. Các hành động trong biểu đồ tuần tự minh họa những thuật ngữ này có thể là một
phần thông tin được truyền trong hệ thống. Người thiết kế xem xét các yêu cầu hệ thống,
cây phân cấp goal, và mô hình UC trong cách tương tự để tạo ra danh sách thuật ngữ ứng
cử cho ontology.
Xây dựng ontology khởi tạo
Để xây dựng ontology khởi tạo, người thiết kế đưa ra danh sách các thuật ngữ hoặc khái
niệm và tổ chức chúng thành các lớp và các thuộc tính và cung cấp mô hình dữ liệu nháp
ban đầu. Khi tạo ontology, người phân tích phải nhớ rằng ontology chỉ đặc tả những khái
niệm mà hệ thống cần để hoàn thành goal của nó. Ví dụ, ontology nên đặc tả tất cả các
thuộc tính của Human chẳng hạn như height, age và weight khi hệ thống chỉ yêu cầu tên
của Human dùng trong một chức năng nào đó.
Trước khi tạo một ontology hoàn toàn mới, người thiết kế phải quyết định xem những
ontology hiện có có thể thỏa mãn những gì mà hệ thống cần hay không. Người dùng xem
xét lại thư viện ontology và các mô hình sẽ liệu để tìm kiếm các đối tượng giống với các
khái niệm được liệt kê trong danh sách thuật ngữ. Lợi ích trong việc sử dụng ontology có
sẵn là hệ thống tương thích hợp theo kiểu truyền dữ liệu với bất kì hệ thống nào khác mà
sử dụng cùng một mô hình dữ liệu. Nếu không có ontology sẵn có đặc tả đầy đủ thông tin
cần thiết đối với hệ thống, người thiết kế phải xây dựng ontology mới. Nếu người thiết kế
tìm một ontology cục bộ mà thỏa mãn cái hệ thống cần, ontology đó có thể được sử dụng
như là điểm bắt đầu để xây dựng ontology mới. Người sử dụng nên đặt các mô hình được
tạo ra trong một số kho chia sẻ để những người sử dụng khác có thể sử dụng lại mô hình
dữ liệu, làm tăng khả năng tương thích hợp của các hệ thống trong tương lai.
Tiếp tục ví dụ về lập lịch khóa học, người phân tích quyết định những thuật ngữ nào từ
danh sách ứng cử sẽ trở thành các lớp, và sau đó tổ chức chúng thành cấu trúc lớp phân
cấp đã được chỉ ra trong khung bên trái của hình 6. Các thuật ngữ sẽ trở thành thuộc tính
của các lớp hay những thuật ngữ mà người thiết kế quyết định là không cần thiết tạo
thành lớp thì không được đưa vào cây phân cấp lớp đó. Ví dụ, thuật ngữ lock được định
danh trước đó không được đưa vào trong ví dụ ontology. Người phân tích có thể quyết
định thuật ngữ sẽ cài đặt trong một cách cư xử mà sẽ không yêu cầu tạo một lớp có tên là
Lock. Các thuộc tính của mỗi lớp mô tả tính chất của lớp và các mối quan hệ của nó với
các lớp khác. Hình 6 chỉ ra lớp Schedule có hai thuộc tính: composedOfSelection và
courseTypes. Thuộc tính composedOfSelections là số nhiều chỉ ra nó là một danh sách
các đối tượng Selection được đưa vào trong lịch biểu. Thuộc tính courseTypes là danh
sách các đối tượng String được sử dụng để mô tả kiểu của các khóa học mà lịch biểu
chứa nó chẳng hạn như AERO hay CSCE.
Hình 6: Chương trình soạn thảo Ontology
Hoàn thiện và kiểm định Ontology
Khi người thiết kế xác định các lớp, các thuộc tính và các tiên đề của ontology, bước tiếp
theo là phải kiểm định xem ontology đó có thõa mãn các yêu cầu hệ thống hay không. Để
kiểm định mô hình, người phân tích xem xét các tình huống được mô tả trong các UC và
các biểu đồ tuần tự để đảm bảo ontology đó mô tả tất cả những thông tin cần thiết trong
việc thực thi những kịch bản này. Bất kì thông tin nào còn thiếu đều được thêm vào trong
ontology, và bất kì thông tin nào quá lớn sẽ được loại bỏ khỏi ontology. Nếu bất kì thông
tin nào được đặc tả không đúng, người thiết kế sẽ phải làm cho đúng và phù hợp với
ontology.
Bước này được lặp lại xuyên suốt trong quá trình phát triển của hệ thống. Tại bất kì thời
điểm nào mà người thiết kế nhận ra một số thông tin còn thiếu trong ontology thì
ontology sẽ được chỉnh sửa để thêm những thông tin đó. Việc xây dựng ontology hoàn
thành khi người phân tích cảm thấy hài lòng về ontology đó và ontology đó biểu diễn
được tất cả những thông tin cần thiết từ các biểu đồ tuần tự và các UC.
Trong ví dụ về lập lịch khóa học, người phân tích nhận ra rằng có một vấn đề khi cố gắng
để lập lịch cho các lớp trong các UC. Giảng viên và sinh viên có thể có các sự kiện khác
xung đột với lịch biểu của bài học, chẳng hạn như các cuộc họp khoa, nhưng ontology lại
không đủ khả năng biểu diễn những sự kiện đó. Project được thêm vào đối tượng
ScheduleEvent như là cha mẹ của Section để biểu diễn những sự kiện này. Sau đó Person
có thuộc tính scheduleEvents chứa danh sách tất cả các sự kiện được yêu cầu. Với những
bổ sung như vậy, người lập lịch có thể kiểm tra một cá thể không có hoạt động nào được
lập lịch trong khung thời gian đặc tả.
5. Sử dụng Ontology trong các hệ thống đa agent
Khi ontology hệ thống được xây dựng, phương pháp luận thiết kế hệ đa agent sẽ cho
phép người phân tích đặc tả các đối tượng từ mô hình dữ liệu như là các tham số trong
các cuộc hội thoại giữa các agent. Để đảm bảo chức năng đúng đắn của hệ thống đa
agent, người thiết kế phải có khả năng kiểm tra các agent có thông tin cần thiết được yêu
cầu cho sự thực thi của hệ thống hay không. Vì thông tin được biểu diễn trong các lớp
của mô hình dữ liệu, quá trình thiết kế theo phương pháp luận phải chỉ ra những lớp được
truyền đi giữa các agent. Chúng tôi sửa các bước hoàn thiện Role và xây dựng các cuộc
hội thoại mà liên quan đến việc truyền thông điệp để đưa vào đặc tả kiểu của các tham số
được truyền đi trong các thông điệp theo phương pháp MaSE.
Trước đây, các tham số trong các biểu đồ Conversation State (trạng thái hội thoại) và
Concurrent Task (các task đồng thời) chỉ được mô tả bởi tên của chúng. HIện nay, kiểu
dữ liệu của mỗi tham số được đặc tả cùng với tên của chúng. Ví dụ, trong hình 7, người
phân tích đặc tả tham số schd là một kiểu Schedule, đây là kiểu đã được định nghĩa trong
ontology. Các hành động có thể sử dụng những thông tin chứa trong các thuộc tính của
các tham số, vì kiểu tham số được biết đến cùng với các thuộc tính của kiểu dữ liệu đó.
Các biến số bên trong các task và các conversation cũng có thể có kiểu theo ontology hệ
thống. Bằng việc sử dụng các giá trị dữ liệu của các tham số và các biến số, tính hiệu lực
của các cuộc hội thoại có thể được kiểm tra một cách tự động. Ưu điểm này sẽ được bàn
luận trong phần tiếp theo.
Hình 7: Ví dụ máy hữu hạn trạng thái với việc truyền thông tin
Cùng với việc xây dựng mô hình dữ liệu hệ thống, phương pháp luận thiết kế hệ đa agent
cho phép các agent có những mô hình dữ liệu của riêng nó. Với việc đưa ra khả năng này,
phương pháp luận cho phép phát triển các hệ thống hỗn tạp. Yêu cầu đối với hệ đa agent
để tích hợp với các hệ thống đang có thường tạo ra những hệ thống hỗn tạp như vậy. Với
các mô hình dữ liệu khác nhau xuất hiện từ yêu cầu sẽ chỉ ra các mô hình thông tin liên
quan đến nhau như thế nào.
Phương pháp luận nên cung cấp khả năng cho người thiết kế chỉ ra các quan hệ giữa các
mô hình dữ liệu trong một số ứng xử nào đó. Việc chỉ ra các quan hệ sẽ chỉ ra cho người
phát triển code những thông tin gì từ một mô hình được yêu cầu để tạo ra các đối tượng
trong mô hình khác. Không mô tả các quan hệ này, người phát triển có thể không thể biết
làm thế nào để dịch (translate) các đối tượng trong một cuộc hội thoại giữa hai agent với
các mô hình dữ liệu tách biệt, vì mỗi agent sử dụng các lớp khác nhau để mô tả những
thông tin đó.
Hiện nay, bước Hoàn thiện agent (Assembling Agent Classes) đưa cho người thiết kế khả
năng đặc tả những ontology cho các thành phần agent khác nhau và ánh xạ chúng thành
ontology của toàn hệ thống. Những ontology thành phần này có thể được sử dụng để biểu
diễn các mô hình dữ liệu của các agent hay các hệ thống đang có mà được đưa vào trong
hệ thống. Người thiết kế có thể ánh xạ các ontology thành phần thành một hay hai
ontology hệ thống khác. Khi ánh xạ giữa các ontology thành phần, nếu một thành phần
tương tác với nhiều thành phần khác mà mỗi thành phần đó lại có một ontology riêng, kết
quae là có một số lượng lớn các ánh xạ. Nếu có n thành phần agent, và mỗi thành phần
tương tác với mỗi thành phần khác, sẽ có (n-1)! ánh xạ. Bằng cách chỉ ra các mối quan hệ
của các ontology thành phần đối với ontology hệ thống, hệ thống sẽ có n ánh xạ, mỗi ánh
xạ cho một thành phần. Người thiết kế ánh xạ thành ontology hệ thống đẻ giảm số ánh xạ
có thể được yêu cầu.
Để mô tả những quan hệ giữa các ontology, người phân tích đặc tả những đối tượng và
những thuộc tính tương ứng trong ontology đó. Ví dụ, hình 8 chỉ ra rằng đối tượng
Course từ ontology thành phần tương ứng với đối tượng Class trong ontology hệ thống.
Nó cũng chỉ ra thuộc tính Course Number của Course tương ứng với thuộc tính number
của Class.
Hình 8: Chương trình ánh xạ Ontology
Để giúp người sử dụng trong việc ánh xạ ontology, chúng tôi đã phát triển một mô hình
xếp hàng thu nhận thông tin mà tính toán tương tự giữa các lớp ontology. Thông thường,
trong thông tin thu nhận, người sử dụng đặc tả một hàng đợi và cơ chế tìm kiếm các loại
tài liệu trong bộ sưu tập dựa trên sự tương tự của chúng đối với hàng đợi. Chúng tôi xem
xét quy trình ánh xạ tương tự đối với quy trình nhận thông tin, người sử dụng tìm kiếm
một lớp trong ontology hệ thống sẽ tương tự với tìm kiếm các lớp trong ontology thành
phần.
Mô hình xếp hàng sử dụng các đặc trưng và cấu trúc thuộc tính của hai lớp để tính toán
số điểm tương tự của chúng. Trong cách cư xử này, người sử dụng có thể biểu diễn với
một danh sách các lớp từ ontology hệ thống được xếp hàng theo tính tương tự của chúng
đối với một lớp đã cho trong ontology thành phần. Ví dụ, mô hình xếp hàng trả lại đối
tượng Class như là đối tượng tương tự với đối tượng Course. Cấu trúc thuộc tính của các
đối tượng Student và Section giống với cấu trúc của đối tượng Class, và do đó trả lại kết
quả tương tự như vậy.
Phân tích
Để kiểm tra khả năng của MaSE hỗ trợ người sử dụng trong việc phát triển hệ thống và
các ontology agent và để đánh giá lợi ích của việc đưa miền thông tin vào trong sự phát
triển của hệ đa agent, chúng tôi đã thiết kế hệ thống lập lịch khóa học phân tán sử dụng
MaSE mở rộng. Phần còn lại của phần này bàn luận về kinh nghiệm sử dụng MaSE dựa
trên thiết kế hệ thống ví dụ này.
Việc tạo ontology hệ thống xuất hiện tại thời điểm phù hợp trong quy trình phát triển.
Các bước trong MaSE trước đó áp dụng để xây dựng ontology, Xây dựng Goal, Áp dụng
các UC, cung cấp tập các thuật ngữ để xem xét trở thành các đối tượng có thể có trong
ontology. Các bước sau khi tạo ontology là truyền thông điệp và thông tin giữa các role.
Việc truyền thông tin này xuất hiện với các tham số đã được đặc tả như là các đối tượng
trong ontology. Bằng cách đặt việc tạo ontology bên phải trước khi tạo các task, phương
pháp luận cho phép người sử dụng phân tích miền vấn đề một cách hoàn hảo trước khi
tạo mô hình dữ liệu. Người thiết kế có thể xác định chính xác thông tin nào cần cho hệ
thống trong lúc đang tạo mô hình dữ liệu.
MaSE mô tả các task và các cuộc hội thoại bằng cách sử dụng máy hữu hạn trạng thái, vì
thế kinh nghiệm sử dụng ontology là tương tự trong trường hợp này. Với mô hình dữ liệu
đang có, người thiết kế có thể đặc tả kiểu của các đối tượng được truyền giữa các agent,
như đã được chỉ ra trong hình 7. Người thiết kế đặc tả đối tượng Schedule nhận được như
là là một tham số trong thông điệp updateClassrooms. Thêm vào đó, người phân tích mô
tả các hành động mà task thực hiện trên thuộc tính composedOfSections của đối tượng
Schedule để cập nhật thông tin về phòng học. Bây giờ, khi kiểu dữ liệu đã được định
nghĩa, việc gán các kiểu dữ liệu đó cho các thuộc tính của nó như là một phần của quy
trình phát triển và có thể sử dụng trong các biểu đồ hành vi.
Với khả năng để đặc tả các kiểu tham số, người thiết kế cũng cần biết chính xác cấu trúc
của thông tin được truyền đi giữa các agent và phải có khả năng kiểm tra xem mỗi agent
có tất cả những thông tin cần thiết để hoàn thành goal của nó hay không. Trước đây, ngườ
thiết kế truyền trong một tham số bằng cách giả sử những người phát triển sẽ nhận ra để
code những thông tin này thành các đối tượng. Với mô hình dữ liệu đã được đặc tả, người
sử dụng có thể đặc tả đối tượng và đảm bảo thông tin được mã hóa như là một thuộc tính
của đối tượng đó.
Bằng cách đặc tả các ontology thành phần cho các agent, người phát triển có thể sử dụng
lại các agent từ những hệ thống trước đó hoặc tích hợp các hệ thống đang có thành một
hệ thống hỗn tạp. Người thiết kế có thể đặc tả các ánh xạ giữa các ontology thành phần
và ontology hệ thống để làm rõ kiểu dữ liệu biểu diễn cùng một khái niệm trong các
ontology khác nhau.
Các kết quả khác từ việc kết hợp ontology là agentTool có thể xuất ra code hoàn chỉnh
hơn. Một lớp java được tạo ra cho mỗi đối tượng trong ontology với các thuộc tính được
định nghĩa một cách phù hợp. Sau đó, code cho các agent và các cuộc hội thoại có thể sử
dụng những lớp này dựa trên kiểu dữ liệu được định nghĩa trong thiết kế các biểu đồ, yêu
cầu người sử dụng phải sửa code ít hơn.
Các cơ chế kiểm tra cuộc hội thoại tự động trong agentTool cũng có thể được mở rộng để
kiểm tra kiểu dữ liệu của các tham số trong cuộc hội thoại. Thủ tục kiểm tra sẽ kiểm tra
bế tắc (deadlock), các vòng lặp và tính hiệu lực của chuỗi thông điệp bằng cách so sánh
các chữ ký của các thông điệp. Việc kiểm tra bổ sung này kiểm tra các cuộc hội thoại có
hiệu lực theo kiểu dữ liệu của các tham số trong thông điệp được gửi đi bằng cách đánh
dấu các tham số của một thông điệp nhận bởi một số agent trong hệ thống.
Sự bổ sung của ontology cũng cho phép việc tạo ra việc kiểm tra tính bảo mật trong
agentTool. Ontology có thể được mở rộng để hỗ trợ sự phân loại của các đối tượng dữ
liệu. Ví dụ, đối tượng AriTaskingOrder xác định như như là đối tượng đã được phân loại.
Các đối tượng có thể được đặc tả như là một lớp được phân loại hay không bị phân loại,
hoặc ontology có thể được mở rộng để hỗ trợ mức độ phân loại của các lớp agent riêng
biệt. Sau đó, các cuộc hội thoại có thể được kiểm tra một cách tự động để đảm bảo rằng
hệ thống đảm bảo thông tin được phân loại là không được truyền tới các agent không
được phân loại.
Việc đưa agent vào trong MaSE cũng giúp các nguyên tắc phát triển và tổ chức trong
MaSE. Các nguyên tắc tổ chức có thể định nghĩa các ràng buộc giữa các role và các giao
thức, role và dữ liệu hoặc giữa bản thân các role. Các đặc trưng tên đề và thuộc tính
trong ontology có thể định nghĩa các ràng buộc về mặt tổ chức được đặt trong những
thông tin chứa trong ontology. Việc sử dụng ontology để phát triển các chức năng mô tả
dữ liệu trong hệ thống có thể mở rộng những ràng buộc này. Ví dụ, chức năng
classedRegisterred(s) có thể trả lại đối tượng Section mà đối tượng Student s hiện tại đã
đăng ký. Những chức năng này có thể được kết hợp với các chức năng giao thức để mô tả
các quan hệ mà tổ chức của các agent phải đảm bảo là thỏa mãn trong quá trình thực thi
của hệ thống.
6. Kết luận
Trong bài báo này, chúng tôi đã chỉ ra chúng tôi đã mở rộng MaSE như thế nào để đưa
vào quá trình phát triển và sử dụng ontology để định nghĩa miền thông tin của hệ thống.
Sự bổ sung này vào MaSE cho phép người sử dụng định nghĩa ontology hệ thống và đặc
tả các đối tượng mô hình dữ liệu trong các mô hình hành vi MaSE. Sự mở rộng khớp với
phiên bản trước đó của agent để đảm bảo các bước MaSE theo tuần tự logic trong quy
trình phát triển phần mềm, các đầu ra của bước này trở thành đầu vào của bước tiếp theo.
Người thiết kế có thể xây dựng ontolgy hệ thống và ontology thành phần bằng cách tạo ra
và xây dựng các lớp và các thuộc tính dựa trên các thuật ngữ được trích ra từ cấu trúc
phân cấp goal, các yêu cầu hệ thống, và các UC. Sau đó, các agent có thể sử dụng những
lớp này để chia sẻ thông tin với agent khác.
Với việc bổ sung bước này để đưa miền thông tin, nghiên cứu này bổ sung vào phương
pháp MaSE để trở thành một phương pháp hoàn chỉnh trong việc xây dựng hệ thống đa
agent. Hiện nay MaSE đưa ra các hành vi hệ thống, cấu trúc hệ thống, và các mô hình dữ
liệu, do đó việc định nghĩa các khía cạnh được yêu cầu để đảm bảo hệ thống được code
sẽ thực hiện đầy đủ các yêu cầu ban đầu của hệ thống. Với những mô hình này, người
thiết kế có thể đảm bảo rằng mỗi agent có thông tin được yêu cầu đối với toàn bộ yêu cầu
của hệ thống.
Khi được tự động trong agentTool, việc thêm ontology có thể làm tăng khả năng kiểm tra
các cuộc hội thoại trong hệ thống một cách tự động bằng cách so sánh chữ ký của các
thông điệp. Với ontology, agentTool cũng có thể kiểm tra tính bảo mật của hệ thống đa
agent bằng cách đảm bảo rằng thông tin được phân loại thì không được truyền tới những
agent không được phân loại.
Những phương pháp luận được xây dựng cho việc xây dựng và sử dụng ontology đã
được bàn luận trong bài báo này có thể được tích hợp vào các phương pháp luận thiết kế
hướng agent khác trong một cách cư xử phù hợp với các mô hình của mỗi phương pháp
luận. Bài báo này, biểu diễn sự tích hợp của các khái niệm vào trong MaSE như là một ví
dụ về sự tích hợp kỹ thuật ontology vào trong các phương pháp luận phát triển hệ đa
agent.
TÀI LIỆU THAM KHẢO
Integrating Ontologies into Multiagent Systems Engineering, Jonathan DiLeo1, Timothy
Jacobs, Scott DeLoach 3
- Xem thêm -