Skip to main content
This revision made June 09, 2011 11:21, by Fabrizio Giudici


Hello. This is the blueBill project. These pages are for developers only; the web site for users is at

Getting the sources

The project is composed of three independent parts:

  1. blueBill Mobile for Android. It's the application running on Android smartphones.
  2. blueBill Core. It's a library of required APIs.
  3. blueBill Resources Generator. It's a set of offline procedures able to create resources used by blueBill Mobile for Android.

The build tool is Maven 3.0.2. The issue tracker is at:

The project is under Continuous Integration at

To retrieve the sources, you need Mercurial:

 hg clone
 hg clone
 hg clone

WARNING: due to a bug in the Java.Net infrastructure, the blueBill Mobile for Android repository is not publicly available. While the bug is fixed, you should use this temporary backup copy:

 hg clone

It should be possible to build the project on any operating system where the Java and the Android tools are available. It has been actually tested only on Linux and Mac OS X 10.5+, with a Java 6 JDK.

To build any project just run from the command line:

 mvn clean install -DskipTests

It is possible to use any IDE with Maven support. The preferred ones are NetBeans and IntelliJ IDEA; Eclipse can also be used.

A quick overview of the structure of the project is available here.

Contributing to the project

If you want to contribute to the project, please get in touch by means of the developer mailing list. In order to contribute code, you need to send us a signed copy of the Tidalwave Individual Contributor License Agreement (ICLA) - it's available in the sources of the project, under the 'docs' directory. This burocratic step is needed for you, us and the blueBill users in order to guarantee that the project will be always available under the current licensing terms.


blueBill aims at providing internationalized versions for many languages. This feature needs constant help from mother-language writers from around the world. More information about the process are here.

Getting started

Please have a read of the Coding Guidelines before you look at the sources.

The two most important components of blueBill are:

  1. the Obsevation API, which models a customizable repository of observations of things made by observers.
  2. the Taxonomy API which models a life-sciences taxonomy used to represent the bird species.

Please refer to the javadoc to learn about them.

Data Model

Data in blueBill is modelled using RDF, even though the Observation and Taxonomy APIs partially hide the data model under an abstraction layer.

Data sets, such as taxonomies, textual or media collections used by the application are fed into it in form of RDF. Since unfortunately at the current time none of the data providers (Wikipedia and others) natively provide RDF data, the needed resources are generated by batch procedures (in the blueBill Resources project). They are typically web scrapers, or ad-hoc converters (for instance, bird checklists are mostly distributed as Excel or text files). More information about resource generation is here.

A considerable effort is made to reuse existing ontologies and vocabularies keeping to the minimum those specifically developed for blueBill. This effort is performed in iterative way, with incremental changes at every release as soon as a fitting ontology is discovered and validated to replace a custom one. Since currently blueBill doesn't export data in RDF, no effort is done to preserve backward compatibility or RDF data. More info about RDF usage is here.

Difference compared to previous revision
<span> hg clone hg clone hg clone<span style="text-decoration:underline;color:green"> </span>''<span style="text-decoration:underline;color:green">'</span>WARNING: due to a bug in the Java.Net infrastructure, the blueBill Mobile for Android repository is not publicly available.<span style="text-decoration:underline;color:green">'</span>'' While the bug is fixed, you should use this temporary backup copy: hg clone <span>
Please Confirm