Domain Specific Languages
The first abstraction over DRL that we are going to cover is Domain Specific Languages, or simply DSL. DSL is a great way to tailor DRL for a specific context. In the previous six chapters, we covered all the concepts required to create rules and execute rules in Drools. These concepts require a certain amount of knowledge. For the left-hand side of a rule, we need to understand the DRL syntax and to have an idea of things such as pattern matching, the internal structure of our model, invocation to external systems, and so on. For the right-hand side, we need to know Java and some of the automatic variables present in this context, such as kcontext and drools. Having to master all this knowledge in order to write a business rule seems like overkill, and indeed it is. One of the ways to fill the gap between the technical requirements from DRL and the SMEs is by using a DSL.
The concept behind a Drools DSL is simple: to create a dictionary file containing business...