You and your team have spent the last 6 months developing this game. You have two months left in your development cycle before it must go gold. You've got a team of 8 programmers working on the game, and a whole slew of artists, and designers working on the project. You've also got one major problem on your hands that you wish you could have solved earlier.
You see, while there may be 8 programmers, you are all currently very busy fixing the major bugs. Meanwhile there are dozens, possibly even hundreds, of skills that require balancing. Each skill was masterfully hand crafted by you and your team of programmers, and unfortunately, the designers can't program enough to not introduce bugs; but man, it sure would be nice if you could offload that work onto them. You do have a scripting language implemented, but querying the scene graph, then processing the nodes returned using the complex logic required is tedious for you, incomprehensible to the designers.
What you wanted was something where you could make an almost English sounding phrase perform the complex logic required to both query for the entities from the scene graph, and isolate out those entities in the returned set that were of interest to you. Something where if you were given a skill such as: "The emergency nano-spray will heal all friendly units within a 10.0 foot radius that have less than 50 health." You could turn it into a query such as: "Distance < 10.0 where Health < 50 and IsAlly". Sure would be nice to have such a query language, because then you could turn over the work to those silly designers (they would just need to adjust some constants).
Our journey down a path to arriving at the above query shall start with the interpreter pattern.