In order to analyze a set of equations numerically, DME makes use of a remote math service, called MathServ , provided by the SHADE project. The MathServ agent provides a variety of mathematical services, including symbolic and numerical analysis of algebraic and differential equations. The MathServ agent uses Mathematica(tm) as its mathematical analysis kernel and provides access to a subset of Mathematica's capabilities to KQML/KIF speaking agents.
During numerical simulation, DME formulates a system of equations. DME partitions the entire set of equations into partially ordered minimal complete subsets of equations, which can be solved independently given the solutions from earlier sets. For each minimal complete subset, DME translates the equations into KIF (Knowledge Interchange Format).
The MathServ agent handles KQML (Knowledge Query and Manipulation Language) requests and interprets the messages for evaluation by a mathematical tool. Once processed, MathServ formulates a reply in the form of a KQML/KIF message and sends the reply to DME.
v - w = -1 u + v + w = 3 u = 0DME would construct and send the following KQML/KIF message:
(EVALUATE :SENDER DME-AGENT :RECEIVER MATH-AGENT :CONTENT (SOLVE (LISTOF (== -1 (- V W)) (== 3 (+ U V W)) (== U 0)) (LISTOF W V)))Internally, the mathematical services agent (MathServ ) interacts with a mathematical software tool (Mathematica, in this case) to accomplish needed symbolic and numerical mathematical reasoning tasks. MathServ would then send DME the following reply:
(REPLY :SENDER MATH-AGENT :RECEIVER DME-AGENT :CONTENT (LISTOF (LISTOF (== V 1) (== W 2))))