jCOLIBRI framework for the development of Case-Based Reasoning Systems

Download jCOLIBRI3 from SourceForge Import jCOLIBRI3 from Maven


jCOLIBRI takes advantage of the possibilities offered by the newest versions of the Java language. The most important features is the representation of cases as Java beans. A Java bean is any class that has a get() and set() method for each public attribute. Its modification and management can be performed automatically using a Java technology called Introspection (that is completely transparent for the developer). With this change, developers can design their cases as normal Java classes, choosing the most natural design. This simplifies programming and debugging the CBR applications, and the configuration files became simpler because most of the metadata of the cases can be extracted using Introspection. Java beans also offer automatically generated user interfaces that allow the modification of their attributes and automatic persistence into data bases and XML files. It is important to note that every Java web application uses Java beans as a base technology, so the development of web interfaces is very straightforward. The persistence of cases is going to be managed by the Hibernate package. Hibernate is a Java Data Objects (JDO) implementation, so it can automatically store Java beans in a relational data base, using one or more tables. It also supports XML files as storage media and has many tools that aid the persistence mapping. Hibernate offers a standard and well documented query language that could be used to express the CBR queries in a short future. Java Beans and Hibernate are core technologies in the Java Enterprise Edition platform that is oriented to business applications. Using these technologies in jCOLIBRI we guarantee the future development of commercial CBR applications using this framework.


It is not clear how to document or create a tutorial for a framework. But a good and extended idea is to create several "recipes" that show how to use the framework in a progressive way. That has been the approach followed in jCOLIBRI. We have documented several examples (that also serve as tests) that show how to use its features. Following table summarizes the features applied on each example so you can find what you are looking for:

Test #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11
Data Base connector
Plain Text connector
Ontology connector
Enumerated Attributes
User Defined Types
Compound Attributes
Reuse methods
Revise methods
Retain methods
Cases with solution
Attributes mapped to an ontology
Ontological similarity functions
Evaluation of CBR systems
Visualization of case bases
Maintenance Algorithms
Test #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11

You can also access the complete API doc here:


Direct import
You can download the jar library and import directly into your project: Download jCOLIBRI3 from SourceForge

Maven import
You can also import jCOLIBRI from Maven Central repository.

<!-- https://mvnrepository.com/artifact/es.ucm.fdi.gaia/jCOLIBRI -->

<!-- https://mvnrepository.com/artifact/es.ucm.fdi.gaia/jCOLIBRI -->


You can see latest download statistics from SourceForge