110 likes | 211 Views
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.
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