110 likes | 220 Vues
This document explores the RETSINA multi-agent system architecture that facilitates efficient matchmaking among agents within dynamic environments. Utilizing the Aardvark advertisement and query language, it specifies agent capabilities and service advertisements while delivering querying functionalities to request specific services. It also highlights the matchmaking process involving requester and provider agents, focusing on syntactical and semantic matching, as well as logical implications of constraints, thereby enabling effective information brokering in heterogeneous agent societies.
E N D
Matchmaking in RETSINA Multi-Agent Systems • RETSINA Multi-Agent System Architecture provides • Advertisement and Query Language Aardvark • to specify agent capabilities, services (advertisement) • to request for particular services of provider agents • Matchmaking Services via Matchmaker Agents • to ‘match’ requests with relevant provider agents in heterogeneous and dynamic agent societies. • Enables efficient information gathering in the Internet/WWW http://www.cs.cmu.edu/~softagents/interop/matchmaking.html
Information Brokering vs. Matchmaking in Multi-Agent Systems • Information Brokering Request-for-Service Requester Matchmaker Reply-Result-of-Service Request-for-Service Provider Advertise/Unadverise-Services • Information Matchmaking Request-for-Service Requester Matchmaker Reply-Provider-Agents-Names Reply-Result-of-Service Provider Advertise/Unadvertise-Services Request-for-Service
Matchmaking in RETSINA: The Advertisement and Query Language Aardvark • Frame-based Specification of Agent Capabilities and Requests • Use of Description Logic (Concept Language) • Optional extension of describing the meaning of used words • by the use of a given local terminology (Ontology). • Automated classification of descriptions. • Pre- and Post Conditions of Specification for ‘plug-in matches’ Overall Frame Structure of Specification in Aardvark • Context of Specification Context Input • Input/Output Variables Output • Logical Constraints on Variables InConstraints OutConstraints (Pre-/Post-Conditions)
Example for Specification in Aardvark findComputerInfo Context Computer*Computer; Input brands: SetOf Brand*Brand; areas: SetOf State*State; processor: SetOf CPU; priceLow*LowPrices: Integer; priceHigh*HighPrices: Integer; Output Info: ListOf(model: Model*ComputerModels, brand: Brand*Brand, price: Price*Prices, color: Color*Colors); InConstraints OutConstraints • Word*ConceptName: Meaning of Word is described by a Concept which is defined in terms of Concept Language ITL and stored in the Local Terminology (Ontology)
Example (continued) Terminology Product (and (all is-manufactured-by Brand) (atleast 1 is-manufactured-by) (all has-price Prices)) Computer (and Product (exists has-processor CPU) (all has-memory Memory) (all is-model ComputerModel)) Notebook (and Computer (all has-price (and (ge 2000) (all in-currency aset(USD)) (all has-weight (and kg (le 5)) (all is-manufactured-by aset(HP,IBM,Apple,DEC,Dell) ) . . . Concept Subsumption Hierarchy (Ontology) Product • Term Subsumption in ITL is NP-complete • Use of Polynomial Concept Classification Service Computer . . . Notebook
Examples IntegerSort GenericSort Context Sorting Context Sorting xs: ListOfInteger; Input Input xs: ListOfReal|String; Output ys: ListOfInteger; Output ys: ListOfReal|String; InConstraints InConstraints le(length(xs),100); OutConstraints before(x,y,ys) :- ge(x,y); before(x,y,ys) :- preceeds(x,y); in(x,ys) :- in(x,xs); OutConstraints before(x,y,ys) :- ge(x,y); before(x,y,ys) :- preceeds(x,y); in(x,ys) :- in(x,xs); • Constraints: set of definite program clauses/goals (Horn clauses)
Matchmaking Process (1) Matchmaker Agent x AdvertisementDB ConceptDB AuxiliaryDB Matching Result-of-Matching Capability Descriptions in Aardvark Requester Agent Request in Aardvark Provider Agent 1 Request in Aaardvark/ Get Data ? IS IS Provider Agent n LConceptDB 1 LConceptDB n Process Request on Local IS IS
Matchmaking Process (2) Matchmaker Agent AuxiliaryDB (WordDistance, Type Hierarchy) AdvertisementDB ConceptDB (Ontology) GenericSort Context Matching Syntactical Matching Semantical Matching IntegerSort Ranked Set of Matches: {(ProviderAgent, Capability)} Requester Agent
Matchmaking Process (3) Main Steps: (pairwise matching of specifications in Aardvark) • Context Matching • Word distance, Concept Subsumption/Equality • Syntactical Matching • Comparison of Profiles (TFIR) • Full Signature Matching of Declarations • Type Subsumption • Similarity Matching of Declarations • distances in Type Hierarchy • distances in Concept Subsumption Hierarchy • Semantical Matching • Logical Implication of Constraints: Pre: InConstraints1 InConstraints2, Post: OutConstraints2 OutConstraints2 (‘plug-in match’ of Specification 2 with Specification 1)
Matchmaking Process: Simple Example Consider Advertisement of Service/Capability ‘GenericSort’ Request for Service ‘IntegerSort’ • Context Matching • Syntactical Matching • Comparison of Profiles (TFIR) • Full Signature Matching of Declarations ListOf Integer ListOf Real|String • Type Subsumption sig(D3) › sig(D1), sig(D4) › sig(D2) • Similarity Matching of Declarations D1 = xs: ListOf Integer D3 = xs: ListOf Real|String D2 = ys: ListOf Integer D4 = ys: ListOf Real|String Sim(D1,D3) = 0.875, Sim(D2,D4) = 0.875 D1 ~ D3, D2 ~ D4 No Concepts are attached. Sim(D,D’)= (d(v1,v2) + d(w1,w2)/min{|T1|,|T2|})/2 • Semantical Matching InConstraints1 InConstraints2 OutConstraints2 OutConstraints1
Matchmaking in RETSINA: Some Future Work • Full Implementation in Java • Multi-Agent Test Environment Using RETSINA Communicator • Adapt Matching Process to heuristics due to Real-World Testing