Re: Can Mathematica be used as expert system (rule-based computations like CLIPS?)
- To: mathgroup at smc.vnet.net
- Subject: [mg28429] Re: Can Mathematica be used as expert system (rule-based computations like CLIPS?)
- From: Ignacio Rodriguez <ignacio at sgirmn.pluri.ucm.es>
- Date: Wed, 18 Apr 2001 03:23:32 -0400 (EDT)
- Organization: UCM
- References: <9bgfah$deg@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Use of rules in Mathematica is a bit more complicated than just performing replacements. I don't know how expert systems and CLIPS work, but I think that what you ask (taking actions based on patterns) can be done. However, if something can be done (and how) depends on exactly what you want, so it may be helpful if you can be more specific. Rudy Cazabon wrote: > Hi everyone... > > I would like to know if anyone could comment on whether Mathematica can be > used as an expert system? > > I have been looking into several expert systems out there that are of a > rules-based paradigm. Specifically, one called CLIPS developed by NASA. > > The upside is that CLIPS is available and it works. The downside is that it > does not have an expansive set of mathematical tools in available to it. > Although CLIPS is open source and can be modified any which way you want and > need, the task of getting it to talk back-and-forth to Mathematica to > request math computations and the such would be development effort on its > own. > > So, I would like to explore the possibility of hosting some of these > expert-system capabilities using Mathematica's symbolic capabilities. > > However, these are the portions that I am somewhat at a loss with regards to > Mathematica rules applications and pattern-matching... > > In the CLIPS system you define a rule as follows: > > (defrule <rule name> [<optional comment>] > <1-or-more patterns>* ;; this corresponds to the LHS of a rule statement > => ;; the THEN operator like in "if A = B THEN B is blah" > <1-or-more actions>* ;; if the pattern matches, do something > ) > > however, from what I can see, in Mathematica the definition of rules is > > expr /. LHS -> RHS > > and that pattern definition is LHS->RHS . > > So, my question is ... rather than getting a rule to perform a replacement > operation can I get it to do an arbitrary operation? -- Ignacio Rodriguez Ramirez de Arellano Unidad de RMN Universidad Complutense Paseo Juan XXIII, 1 Madrid 28040, Spain Tel. 34-91-394-3288 Fax 34-91-394-3245 e-mail: ignacio at sgirmn.pluri.ucm.es