InterMine projects

The InterMine code is divided into a number of libraries to define a broad separation of funtionality with defined dependencies. Each library contains smaller projects of different types for compiling code, running tests, etc.

Core Libraries

objectstore

This contains core code for object/relational mapping, object/xml mapping and executing object queries. A metadata API allows inspection of data models? and is used for automatic generation of Java code and database schemas. This library also contains the generic SQL query re-writing system.

integrate

Depends on objectstore and includes code for loading data into an InterMine system, including a data integration system. This includes support for retrieving and translating data from several source formats, such as relational databases, XML (defined by XML schema) and flat files. This library is designed for use only when building an InterMine warehouse and is not needed in production environmets.

Web Libraries

web

Depends on objectstore, contains Java code used by the webapp. This includes a Java representation of an InterMine query used by the webapp and results viewing. Also suppost for elements of the userprofile system - saving bags, queries and templates and for rendering aspects and tags.

webapp

Depends on web and includes JSPs, icons and configuration deployed in a web application.

webtasks

Depends on web and integrate. Contains code for operating on a webapp but not code that used at runtime. For example, loading tags and template queries, pre-computing templates and porting userprofile databases between releases.

webservice

Depends on objectstore. Code to build and deploy a SOAP based client/server version of an ObjectStore.