Hi Miles, I got both of your messages. Thanks.
Our situation is that we have embarked on building a framework based on the Drools Expert <http://jboss.org/drools/drools-expert.html> Rete rules engine. Drools was developed within JBoss for controlling distributed J2EE applications. It wasn't developed with agent-based modeling in mind. Nonetheless I like it as a starting point for a number of reasons. - Its rule language is both simple and open. It supports get/set operations on Java objects. So it it not limited to operating on any particular category of things. In addition, the rule language allows any java method call to be embedded within a rule. That may seem too open, but it allows new primitives to be added to the repertoire of agent operations very easily. The rules may be written in MVEL <http://mvel.codehaus.org/>, which is a Java expression language. Although I'm not an expert in either Drools or MVEL, my expectation is that one could embed a Genetic Programming capability within agents by using the MVEL parser. What's interesting about MVEL (from the little I've read about it) is that it's basically the kind of code that one would write in a Java method. That is, it doesn't have class declarations, but it supports Java procedural and evaluation constructs within an expression-oriented framework. - Drools allows one to add rules dynamically. - One can instantiate as many Drools Rete engines as one likes. They can share the same workspace. They can run in separate threads. As I see it, Drools is essentially a layer above Java that supplies a great many of the capabilities I want. It doesn't have the notion of agent at all. But we can build that. Each agent can have its own Rete engine and run in its own thread. That would be the next layer. All this is still really just Java libraries. In adopting Drools and building some agent-like capabilities on top of it, we are not yet cutting off our ability to add features in straight Java. Part of my vision is that the framework will support what I've been calling service oriented agent-based modeling. That means that everything an agent does can be understood as a service that another agent can make use of. The simple paradigm is that an agent operates on objects in its environment -- including possibly other agents. An agent rule would take objects as input and produce either new objects or modified objects as output. Clearly this is an extraordinarily simple paradigm. But I think it supports a great deal of what I think we need in a modeling environment. Once we have that layer going, I'd like to develop mechanisms to hook agents up in networks. (Again, something quite simple.) A simple version of such a network within my basic paradigm is a supply chain. But the network would allow loops and it would be dynamically reconfigurable. The agents could restructure it as circumstances suggest. So what I'm saying here is that a networking capability would be another layer in this framework. One wouldn't be forced to use it, but it would be there. My question for you is what would you want to see as additional agent support in a project that took this route? -- Russ On Tue, Sep 1, 2009 at 9:22 AM, Miles Parker <[email protected]> wrote: > > Hi Russ! > > I am developing two components that could be useful here. The AMP project > itself is overall infrastructure for this kind of modeling, and you can use > the olde Ascape API is you wanted for that. You can add rules in mid-run w/ > Ascape *but* they apply to a collection of agents. An alternative is to roll > your own rule sets and have them fired as part of a single Ascape rule. At > least all of the other ABM stuff would be supported. > > The more directly aplicaable bit is the Agent Modeling Framework whihc is > similar to the Eclipse Modeling Framework. There is a very high level > represeentation for agent behavior using a Query->Control->Transofmration > paradigm that would suit *I think* what you say well -- though it would be > good to have an example to know for sure. Now.. the issue with AMF right now > is that it is designed for static rules / behaviors. That is, the > infrastructure uses code generation at design time, but there is no such > limitation for models themselves -- but that is a distinction with a > difference at the moment as there is no way to execute such agents. :). > Marcus Daniels especially has convinced me of the importance of > self-modifying/dynamic rulesets and I think it is also a potential big > advantage of the Meta-Model approach because it provides clean high-level > semantics. One (of many many) things that I would love to see happen with > AMF is a dynamic / interpreted run time for self-modifying models. EMF does > a similar thing quite well and there is no reason that in principal this > couldn't be done with AMF. Basically, instead of generating code that maps > the high-level AMF description to some existing API toolset (e.g. Repast, > Ascape) you'd have an execution environment that loaded an AMF model and > then invoked API calls through reflection. Obviously you'd take a > performance hit but if you had nice high-evel APIs that mapped well to the > AMF meta-model it needn't be huge. > > Sorry if this is somehwat confused but hopefully enough info to see if > there is any potential here. > > cheers, > > Miles > > On Aug 23, 2009, at 2:15 PM, Russ Abbott wrote: > > Hi Miles, > > We exchanged some mutually appreciative emails some time ago but haven't > spoken in quite a while. I hope things are well with you. > > I'm looking for an ABM framework in which (a) agents are driven by forward > chaining rules (i.e., a "blackboard" system) and (b) those rules are > themselves first class citizens in the model so that, for example, an agent > can create a new agent with dynamically generated rules or an agent can > modify its own rules dynamically. > > Owen Densmore of the FRIAM group suggested (see below) that you may be > working on something like this. Are you? I can't find the reference Owen > referred to. > > Thanks, > > -- Russ Abbott > _____________________________________________ > Professor, Computer Science > California State University, Los Angeles > Cell phone: 310-621-3805 > o Check out my blog at http://russabbott.blogspot.com/ > > > > On Sun, Aug 23, 2009 at 11:17 AM, Owen Densmore <[email protected]>wrote: > >> Isn't this close to Miles Parker's latest work? His WedTech talk seemed >> to suggest that. His proposal was accepted, and he's got a project page: >> http://www.eclipse.org/amp/ >> .. he may have become less ambitious in the rule-driven approach, not >> sure. >> >> -- Owen >> >> >> >> On Aug 22, 2009, at 9:58 PM, Stephen Guerin wrote: >> >> Russ, >>> >>> I haven't seen a system like your describing. It shouldn't be too hard to >>> assemble though if the rule grammar was simple. >>> >>> -S >>> --- -. . ..-. .. ... .... - .-- --- ..-. .. ... .... >>> [email protected] >>> (m) 505.577.5828 (o) 505.995.0206 >>> redfish.com _ sfcomplex.org _ simtable.com _ lava3d.com >>> >>> On Aug 22, 2009, at 9:13 PM, Russ Abbott wrote: >>> >>> Hi, >>>> >>>> I'm interesting in developing a model that uses rule-driven agents. I >>>> would like the agent rules to be condition-action rules, i.e., similar to >>>> the sorts of rules one finds in forward chaining blackboard systems. In >>>> addition, I would like both the agents and the rules themselves to be first >>>> class objects. In other words, the rules should be able: >>>> • to refer to agents, >>>> • to create and destroy agents, >>>> • to create new rules for newly created agents, >>>> • to disable rules for existing agents, and >>>> • to modify existing rules for existing agents. >>>> Does anyone know of a system like that? >>>> >>>> -- Russ >>> >>> > > >
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org
