The Behavior Modelling Language is a configuration language designed for building simulated characters. It makes it easy to combine and configure dramatically different artificial intelligence technologies so they work together and can provide a complete character model.
Despite the 'ML' suffix, and the ubquity of XML dialects, BML syntax is not based on XML, but on the Scheme/Lisp programming lanuage (although it does not share Lisp or Scheme semantics). The following (simplified) example shows the start of an agent configuration that consists of a single state machine running the character's emotional state.
(agent 'bob
(state-machine 'emotion
(state 'calm
(to-state 'panic
(message 'enemy-spotted))
...
It was designed to allow developers to rapidly experiment with different AI architectures for characters while they are operating in a simulated environment. From the ground up it was developed to be refreshed at runtime: making it a snap to prototype configurations.
As part of my AI technology suite, it can combine and configure a broad range of heterogeneous technologies, including state machines, expert systems, neural networks and planning systems.
The language was intended for programmers to use and to be very simple and lightweight to parse (the parser can easily be embedded in the run-time of even the most memory-constrained application). Its clean syntax and lack of semantic complexity mean it is also suited for use by non-programming professionals.
The language is also simple enough to be automatically generated, and can be used as an intermediate specification format between a design tool and a runtime engine.