Bước này hai bước con: thiết kế kiến trúc bên trong agent và thiết kế các thành phần
trong kiến trúc đó.
Thiết kế kiến trúc
Kiến trúc bên trong của các agent trong bài toán du lịch được thiết kế như sau:
− Lớp UserAgent đảm nhiệm hai role User và Buyer nên các các thành phần là
Modelling và Negotiation tương ứng với hai nhiệm vụ của hai role đó.
− Lớp HotelAgent và StationAgent, mỗi lớp có hai thành phần là Interface và
Negotiation tương ứng với các nhiệm vụ của role mà chúng đảm nhiệm.
− Lớp MatchAgent đảm nhiệm một role Matchmaker có hai nhiệm vụ nên cũng có hai thành phần tương ứng là Confirm và Matching.
Sau khi xác định được các thành phần trong kiến trúc của mỗi agent, nhiệm vụ tiếp theo là thiết kế quan hệ giữa các thành phần này cho phù hợp với sơ đồ role của hệ thống đã được phân tích trong Bước 4. Để đảm bảo quan hệ giữa các thành phần là thống nhất với quan hệ giữa các task trong sơ đồ role, các quan hệ này sẽ được thiết kế dựa trên các tương tác giữa các nhiệm vụ trong sơ đồ role. Theo đó, tương tác giữa task Negotiation của role Buyer với task Negotiation của role Hotel, sẽ trở thành một quan hệ bên ngoài. Sơ đồ kiến trúc của lớp UserAgent được biểu diễn trong Hình 6.4.
Thiết kế các thành phần
Nhiệm vụ của bước con này là thiết kế chi tiết bên trong các thành phần của kiến trúc đã được thiết kế ở bước trên. Việc này được hoàn thành bằng cách gán các thuộc tính và các hàm (thủ tục) chính cho mỗi thành phần.
Với kiến trúc lớp UserAgent:
− Thành phần modelling chỉ tham gia một phiên hội thoại UserConnect đến
MatchAgent, nên các hàm chỉ có một là prepare().
− Đối với thành phần Negotiation của kiến trúc này, nó tham gia đồng thời hai phiên hội thoại phức tạp là HotelNeg và TrainNeg, nên có một dãy các hàm đã xác định được trong bước 6.
Tất cả các hàm này đều trở thành hàm của các thành phần tương ứng. Sơ đồ kiến trúc chi tiết của UserAgent được mô tả trong Hình 6.4.
Trước khi kết thúc bước thiết kế kiến trúc bên trong của agent này, người thiết kế phải hoàn thành việc thiết kế ontology riêng cho mỗi thành phần của mỗi lớp agent nếu điều đó là cần thiết. Các agent loại HotelAgent, StationAgent và MatchAgent không cần ontology riêng, vì tri thức của agent này đều được sử dụng để trao đổi với các
agent còn lại trong hệ thống và do đó, đã được mô tả trong ontology chung của hệ thống.
Với UserAgent, ngoài phần thông tin cần trao đổi với agent khác, nó còn có thêm các tri thức về sở thích và mong muốn của người dùng đã được mô hình hoá theo chiến lược thương lượng. Các thông tin này không phải bao giờ cũng được trao đổi với các agent khác vì mục đích bảo mật thông tin khách hàng. Do đó, các thông tin này không được đưa vào ontology chung của hệ thống mà sẽ được thiết kế như ontology riêng cho UserAgent.
Các bước xây dựng ontology cho riêng các agent cũng được tiến hành như việc xây dựng ontology cho hệ thống đã được trình bày chi tiết trong Bước 3. Ngoại trừ một khác biệt là tập các tri thức được xem xét chỉ giới hạn trong phạm vi của agent tương ứng. Hơn nữa, các tri thức liên quan đến agent đó đã được mô tả trong ontology của hệ thống sẽ không cần nhắc lại trong ontology riêng. Theo cách này, ontology riêng của UserAgent mô tả phần tri thức chưa được biểu diễn còn lại có cấu trúc như Hình 6.5.
Hình 6.5: Ontology riêng của UserAgent
UserRewardTrain Breakfast Gift UserRewardHotel Telephone Gift Attribute Name MinValue MaxValue Prior UserHotel Attribute RelaxThreshold UserTrain Attribute RelaxThreshold User Name StartPoint EndPoint MinPrice StartDate EndDate MaxPrice RelaxThreshold
Sau khi hoàn thành việc thiết kế ontology riêng cho các agent cần thiết, người thiết kế phải tiến hành ánh xạ ontology riêng của các agent này vào ontology chung của hệ thống. Việc này được hỗ trợ bởi cơ chế bán tự động của agentTool. Ví dụ với việc ánh xạ ontology riêng của UserAgent vào ontology chung của hệ thống. Trong
UserAgent, khái niệm giá trọn gói của chuyến đi được biểu diễn thông qua cặp khái niệm {minPrice, maxPrice}. Trong ontology của hệ thống không có khái niệm biểu diễn giá trọn gói của chuyến đi mà chỉ có các khái niệm chỉ giá phòng khách sạn
RoomCost và khái niệm chỉ giá vé tàu TrainCost là gần tương đương với cặp khái niệm trên. Do đó, cặp khái niệm {minPrice, maxPrice} được ánh xạ là tương đương với các khái niệm RoomCost và TrainCost. Hình 6.6 mô tả việc ánh xạ này dưới sự hỗ trợ bán tự động của agentTool.