COLIBRI is a platform for developing academic Case-Based Reasoning (CBR) software. Its main goal is to provide the infrastructure required to develop new CBR systems and its associated software components. COLIBRI is designed to offer a collaborative environment where users could share their efforts in implementing CBR applications. It s an open platform where users can contribute with different designs or components that will be reused by other users.
As a platform, COLIBRI offers a well defined architecture for designing CBR systems (refined among several years of experience), a reference implementation of that architecture: the jCOLIBRI framework, and several development tools that aid users in the implementation and sharing of new CBR systems and components. These tools have been integrated in the brand new COLIBRI Studio development environment.
The main design principle of COLIBRI is its layered structure.
A good software framework should be designed first as a white-box tool that permits programmer users to have total control of the internal details of the software. jCOLIBRI is the white-box layer of the architecture: a framework for developing CBR applications in Java. This framework represents the bottom layer of our platform. It has no visual tool but includes most of the code required to implement a wide collection of CBR systems: Standard CBR systems, Textual CBR, Knowledge-Intensive, Data-Intensive, Recommender Systems, and Distributed CBR applications. It also includes evaluation, maintenance and case-base visualization tools. Many of the components available have been developed by third-party research groups and contributed to the framework to be shared with the community.
After jCOLIBRI was sufficiently mature we have continued with the next step in our platform: the top layer that includes the graphical development tools to aid users in the development of CBR systems. These tools are enclosed in the COLIBRI Studio IDE.
Behavior bricks emerges as a solution to a common problem in the video game development, the designers and programmers have a different knowledges and perspectives regarding its development. Behavior Bricks try to be the connecting link between both, to get a more fluid communication and that their roles are much more specific in the development process. Traditionally the programmer built the behaviors, although these behaviours had been designed by the designers. Now, with this tool, the behaviour is created by designers using its visual editor. In this way, the problems of communications between them are reduced. In addition, as the tool have two modeling paradigms: the finite state machine and behavior trees, it can be adapted to different types of behavior and the both development roles.
In Behavior Bricks exist two different primitive actions: actions and conditions. Actions are routines that perform the specific task that modifies the game environment, while the conditions checked the environment state and with this information, decide the part of behaviour should run. All the primitive actions can have input and output fields to communicate the action with others.
To define these primitives is easy for the programmers, because they only must to extend of a class and to tag his input and output fields with a C# attribute.
The interconnection between the different primitive actions is performed by a global blackboard containing the behavior. From this blackboard, the primitive actions can store and read information.