230 likes | 302 Views
The LARKS Project. Interoperability among Heterogeneous Agents in the Internet. Katia Sycara, Matthias Klusch, Jianguo Lu, Zhendong Niu, Seth Widoff. http://www.cs.cmu.edu/~softagents/interop/matchmaking.html. L anguage for A dvertisement and R equests
E N D
The LARKS Project Interoperability among Heterogeneous Agents in the Internet Katia Sycara, Matthias Klusch, Jianguo Lu, Zhendong Niu, Seth Widoff http://www.cs.cmu.edu/~softagents/interop/matchmaking.html
Language for Advertisement and Requests for Knowledge Sharing What is LARKS about? • Frame-based specification of ads and requests of agent capabilities. • Optional use of a domain ontology. • Automated processing of LARKS specifications. • Compatibility with XML. • Matchmaking Services via Matchmaker Agents using LARKS • to ‘match’ requests with relevant provider agents in heterogeneous and dynamic agent societies.
Matchmaking Using LARKS Matchmaker Agent x AdvertisementDB OntologyDB AuxiliaryDB Matching Result-of-Matching Capability Descriptions in LARKS Requester Agent Provider Agent 1 Service Request in LARKS LARKS Protocol for providing the service Provider Agent n Local Ontology 1 ? IS IS Process Request on Local IS IS Local Ontology n
Specification in LARKS Context • Context of Specification Type • Data Types Used in Variable Declarations Input • Input/Output Variable Declarations Output InConstraints OutConstraints • Logical Constraints on Variables (Pre-/Post-Conditions) ConcDescriptions • Ontological Description of Used Words TextDescription • Textual Description of Specification • Constraints: set of definite program clauses/goals (Horn clauses) • Concepts: ontological description of words in concept language ITL
Example for Ontology (1) An Ontology written in the Concept Language ITL (Terminology): AirMission (and Mission (atleast 1 had-airplane) (all has-airplane Airplane) (all has-MissionType aset(AWAC,BARCAP,CAP,DCA,HVAA))… ) AWAC-AirMission (and AirMission (atleast 1 has-airplane) (atmost 1 has-airplane) (all has-airplane aset(E-2)) …) DCA-AirMission (and AirMission (all has-MissionType aset(DCA)) (all has-F14 plane-F14D) (all has-F18 plane-F18) (atleast 2 has-F14) (atmost 2 has-F14) (atleast 2 has-F18) (atmost 2 has-F18) (atleast 2 has-E2) (atmost 2 has-E2) …) . . . (2) Concept Subsumption Hierarchy: AirMission . . . AWAC-AirMission DCA-AirMission HVAA-AirMission
Examples for Specification in LARKS Agent Advertisement: “I can provide information about air combat missions in general.” AirCombatMissions Context Attack, Air, Combat, Mission*AirMission Types Date = (mm: Int, dd: Int, yy: Int); Input Output missionTypes: SetOf(String); missionAirplanes: SetOf(String); missions: ListOf(mType: String, mID:String|Int, mStart: Date, mEnd: Date); InConstraints mStart <= mEnd OutConstraints ConcDescriptions [AirMission] TextDescription information about air combat missions in general
Agent Advertisement: “I can provide information about deployed and launched AWAC air combat missions. ” AWAC-CombatMissions Context Combat, Mission*AWAC-AirMission Types Date = (mm: Int, dd: Int, yy: Int); DeployedMission = ListOf(mType: String, mID:String|Int, mStart: Date, mEnd: Date); Input Output missions: DeployedMission; InConstraints OutConstraints deployed(mID), mType = AWAC, launched_after(mID,mStart), launched_before(mID,mEnd). ConcDescriptions [AWAC-AirMission] TextDescription information about deployed and launched AWAC air combat missions
Agent Advertisement: “I can provide information about deployed and launched DCA air combat missions.” DCA-CombatMissions Context Combat, Mission*DCA-AirMission Types Date = (mm: Int, dd: Int, yy: Int); DeployedMission = ListOf(mType: String, mID:String|Int, mStart: Date, mEnd: Date); Input Output missions: DeployedMission; InConstraints deployed(mID), mType = DCA, launched_after(mID,mStart), launched_before(mID,mEnd). OutConstraints ConcDescriptions [DCA-AirMission] TextDescription information about deployed and launched DCA air combat missions
Request: “Find an agent who can provide information on deployedair combat missionslaunchedin a giventime interval.” Req-AirCombatMissions Context Attack, Mission*AirMission Types Date = (mm: Int, dd: Int, yy: Int); Mission = ListOf(mType: String, mID:String|Int, mStart: Date, mEnd: Date); Input sd: Date, ed: Date; Output missions: Mission; InConstraints sd <= ed. OutConstraints deployed(mID), launched_after(mID,sd), launched_before(mID,ed), sd >= mStart, ed <= mEnd. ConcDescriptions [AirMission] information on deployed air combat missions launched in a given time interval TextDescription
Request: “Find an agent who can provide information on deployedand launched air combat missions that contain F-14 airplanes.” Req-DeployedF14CombatMissions Context Combat, Mission*F14-Mission Types Date = (mm: Int, dd: Int, yy: Int); Mission = ListOf(mType: String, mID:String|Int, mStart: Date, mEnd: Date); Input Output missions: Mission; InConstraints OutConstraints deployed(mID), launched_after(mID,mStart), launched_before(mID,mEnd). ConcDescriptions F14-Mission (and AirMission (atleast 1 has-F14)) information on deployed and launched air combat missions that contain F-14 airplanes TextDescription
An Example of Matchmaking Using LARKS “Find agents that can inform about air combat missions” Requester Agent Ranked Set of Agents capable to inform about air combat missions AirCombatMissions Matchmaker Agent AuxiliaryDB OntologyDB AdvertisementDB AWAC-AirCombatMissions Context Matching Profile Matching Similarity Matching Signature Matching Semantical Matching
Matchmaking Process Main Steps: (pairwise matching of specifications in LARKS) • Context Matching • Word Distances • Subsumption or Equality of attached Concepts • Syntactical Matching • Comparison of Profiles (TF-IDF) • Similarity Matching of Declarations and Constraints • Word Distances • Distances in the Ontology (Weighted Associative Network) • Full Signature Matching of Declarations • Subsumption of Data Types • Semantical Matching • Logical Implication of Constraints
Different Matching Modes “Complete Matching”: All filters. “Relaxed Matching”: No signature matching. “Profile Matching” : Comparison of profiles (TF-IDF) only. “Plug-In Matching”: Signature and semantical matching only. Any combination of filters may be chosen by the user.
Matchmaking Process: Simple Example Request for Agent Capability in ‘Req-AirCombatMissions’ Advertisement of Agent Capability in ‘AWAC-AirCombatMissions’ Mode Complete Matching • Context Matching Look-up/compute word distances for (Attack, Combat), (mission, Mission); All value exceeds given threshold. Attached concepts (AirMission,AirMission) are terminologically equal. • Syntactical Matching • Comparison of Profiles (TF-IDF) Profile similarity value of documents exceeds given threshold. Thus, proceed with
Matchmaking Process: Simple Example (cont’d) • Syntactical Matching (ff.) • Full Signature Matching of Declarations Input declarations - A: D21 = sd: Date, ed: Date; Output declarations - R: D12 = missions: ListOf(mType: String, mID:String|Int, mStart: Date, mEnd: Date); A: D22 = missions: ListOf(mType: String, mID:String|Int, mStart: Date, mEnd: Date); A: D23 = missionTypes: ListOf(String); A: D24 = missionAirplanes: ListOf(String); • Apply Type Inference Rules for Computing Type Subsumption. Result: (TRUE) & (signature(A: D22) › signature(R: D12)) Thus, proceed with
Matchmaking Process: Simple Example (cont’d) • Similarity Matching • Conceptual Attachment to words • Check word distances in declarations and constraints Similarity value of two specifications: Average of sum of similarity computations among all pairs of declarations and constraints. Similarity of AirCombatMissions and Req-AirCombatMissions = 0.75 (Note: Value strongly depends on the used word distance database) Similarity value exceeds given threshold. Thus, proceed with
Matchmaking Process: Simple Example (cont’d) • Constraint Matchingfails InConstraints InConstraints in Req-AirCombatMissions in AirCombatMissions sd <= ed. OutConstraints OutConstraints NOT in AirCombatMissions in Req-AirCombatMissions mStart <= mEnd deployed(mID), launched_after(mID,sd), launched_before(mID,ed), sd >= mStart, ed <= mEnd.
Matchmaking Process: Simple Example (2) Request = Req-DeployedF14CombatMissions, Ad = DCA-CombatMissions • Context Matching (Ad:) DCA-AirMission < (Req:) F14-Mission • Syntactical Matching • Comparison of Profiles (TF-IDF) • Full Signature Matching of Declarations • Similarity Matching Sim(Req,Ad) = 0.62 • Constraint Matching InConstraints in Req InConstraints in Ad OutConstraints in Ad OutConstraints in Req deployed(mID), mType=DCA, launched_after(mID,sd), launched_before(mID,ed), deployed(mID), launched_after(mID,sd), launched_before(mID,ed),
Current Implementations of LARKS Project • Web-based Interface for Specification of Requests in LARKS • Matchmaker module • Knowledge management module (Concept classifier, KB)
TSC: Concept Classifier for Knowledge Base
Matchmaking Using LARKS and XML • Translation of LARKS specification into XML document • Automated Processing of LARKS/XML Specs • Translation of ITL concept definitions into XML statements e.g. use of XML-Data Schemas, W3C Note 05 Jan 1998 Proposal by Microsoft; http://www.w3.org/TR/1998/NOTE-XML-data-0105/ • Translated ITL ontologies in XML used as XML-namespaces . . . .
Some Future Work of the LARKS Project • Complete Implementation in Java • Multi-Agent Test Environment Using RETSINA Communicator • Natural Language Interface for Human-Agent Interaction • Extensive Real-World Testing