# BRICKS (software)

Building Resources for Integrated Cultural Knowledge Services (BRICKS) is an open-source software framework for the management of distributed digital assets. BRICKS was deployed on cultural institutions under the umbrella of the BRICKS Cultural Heritage Network, a community of cultural heritage, scientific and industrial organizations across Europe. The software itself is shared under the GNU Lesser General Public License (LGPL).

## History

The BRICKS project released the first prototype of its software framework (v0.1) in December 2005. In February 2007, the third prototype release was made available. A release was planned in July 2007. The BRICKS project work was partly funded by a research grant from the European Commission as part of the sixth of the Framework Programmes for Research and Technological Development under the Information Society Technologies priority, action line “Technology. Enhanced Learning and Access to Cultural heritage.” The consortium invested an overall 12.2 million Euros in the project, including 7 million Euros from the European Commission. The funding began in January 2004 and ended in June 2007. In February 2007 the consortium announced a developer community, which had a web site through 2008. The project traveled to several conferences from 2005 through 2007, and a conference in Singapore in 2006. A final report published in September 2007 showed visitors to the web site peaked in October 2006.
The BRICKS project established a network of cultural institutions to share digital cultural resources. These institutions included: the European Library, the MICHAEL Project, the British Museums, Libraries and Archives Council, and the Russian Culture Heritage Network.

## Software

The BRICKS network uses the Internet, and is made of decentralized BRICKS Nodes (BNode), in order to avoid central points whose failure or overload could stop or slowdown the whole network. BNodes communicate among each other and manage content and metadata.
Every BNode knows directly only a subset of other BNodes in the system. However, if a BNode wants to reach another member that is directly unknown to it, it will forward a request to some of its known neighbour BNodes that will deliver the request to the final destination or forward it again. BRICKS users access the system only through a local BNode available at their institution. Hence every user request is primarily sent to the institution's BNode and then the request is routed via other BNodes to the final destination.
Search requests behave like that; the BNode pre-selects a list of BNodes where a search request can be fulfilled, and then the BNode routes it there. When the location of the content is known, e.g. as a result of the query, the BNode is directly contacted.

### BNode

A BNode could be seen as a set of services that are required to manage an institution's presence in the system, and to provide services for the rest of the community. A BNode consists of three types of components: fundamental, core, and basic Bricks. Most of them are standard Web services, described by Web Services Description Language (WSDL) documents and registered with a Universal Description, Discovery, and Integration (UDDI)-compatible repository – which are also used for discovering appropriate services.
Since the BNode architecture is service-based, a BNode installation can be spread across multiple machines at the installation site. In such cases, fundamental Bricks are needed on every machine that is part of the local installation, while core and basic Bricks may only be present on some machines. As their name suggests, core Bricks provide core-system functionalities to users, i.e. a minimal set of services that enables users to use the system. On the other side, basic Bricks are optional, and they must not be present on every installation site.
Services run within a Web-service framework that provides: service deployment or non-deployment, service invocation, and parameters serialisation/deserialisation. The software is mainly written in the Java programming language, using an embedded version of the Apache Tomcat application Server. BNode services use open-source libraries and frameworks, including: Jena, Apache Axis, Apache Lucene, Apache Jackrabbit, Apache Ant, JUnit, and HSQLDB.
The BNode exposes its services through a SOAP web-service application programming interface. A Java Server Pages (JSP) web-based GUI is provided for administrative tasks, including security, user management, and configuration of network settings.
Users interact with a BNode through the BRICKS Pillar applications.

### Applications

The BRICKS Workspace is a JSP web application based on the Struts framework. It offers a view of the BRICKS Network, allowing to search and browse available collections of digital objects, group objects into logical collections, annotate objects, manage, and import them. BRICKS Workspace must be installed along the BNode software.
The BRICKS Desktop is an Eclipse-RCP application providing a more advanced access to the BNode services. It features a fully configurable user application framework allowing advanced metadata editing, ontology browsing, extensive searching, and interactive content creation.
Many other applications based on the BRICKS platform exist, including specific applications for the Cultural Heritage sector. The EMYA (European Museum of the Year) application, for example allows the management of an award for museum institutions across Europe, belonging to the European Museum Forum association.
The Finds Identifier application was proposed to help members of the general public classify archaeological objects. The user would be presented with a set of questions, like the material of the object, dimensions, allowing the application to retrieve matching objects from reference collections and present an image of the objects and a description to the user so he/she can further narrow down the classification.
A "living memory" application was prototyped for visitors of cultural exhibitions to create and exhibit their personal contributions by interacting with the cultural objects shown in an exposition or museum. This prosumer paradigm is also reflected in an annotation tool for curators or visitors to create annotations on content.