gama-platform / gama.old

Main repository for developing the 1.x versions of GAMA
GNU General Public License v3.0
304 stars 99 forks source link

integrating rule-based service (e.g. Drools) with GAMA #2117

Closed iamharshal closed 5 years ago

iamharshal commented 7 years ago

For a while I have been contemplating on integrating Drools into GAML, for rule-based executions. I believe this can be useful in various scenarios. GAMA is a collection of Eclipse plugins, which lets one to integrate various existing plugins, or write new ones. Given that Drools also has Eclipse plugins, I was thinking if GAML and Drools metamodels can talk to each other, so that rules can be specified and executed natively within GAMA. However, am unable to find any concrete approach.

References:

  1. https://www.drools.org/
  2. https://github.com/droolsjbpm
  3. https://github.com/droolsjbpm/drools
AlexisDrogoul commented 7 years ago

I'm not completely sure to understand at what level you would be interested in integrating them. Would it be about having "rule-based" agents, whose behaviour would be specified by rules expressed in GAML (and themselves executed by Drools) ?

iamharshal commented 7 years ago

@AlexisDrogoul yes, that will be great. 👍

AlexisDrogoul commented 6 years ago

It's an old request, but I'm still interested. However, from what I have seen, Drools is very very heavy. What about RuleBook ? (https://github.com/rulebook-rules/rulebook). It seems pretty capable, quite efficient (a good Rete algorithm behind), and it shouldn't be too complicated to interface it with GAML. Another effort worth looking at, by the way, is the BDI plugin developed by @ptaillandier (https://github.com/gama-platform/gama/tree/master/msi.gaml.architecture.simplebdi).

iamharshal commented 6 years ago

I agree about both Drools being heavy, and idea to use rulebook.

AlexisDrogoul commented 5 years ago

A first implementation has just been committed. It's a simple proof of concept, however perfectly usable as is. Please create more specific issues on this addition if you have concerns.