OBD:Main Page
From NCBO Wiki
OBD (Open Biomedical Database) is a generic ontology-based database suitable for storing, managing, querying and analyzing OBD:Annotation annotations from a variety of biomedical domains.
OBD can be queried via:
- A web based user interface
- A Java API (either API calls or by means of OBD Query Objects)
- A RESTful web services layer
- A SPARQL endpoint
- SQL
The current incarnation of OBD is implemented using relational technology (PostgreSQL backend, although other RDBMSs may be swapped in). However, there is no dependence on the SQL layer. We are currently developing a Jena/RDF based implementation. This can be seamlessly swapped in.
The current version of OBD is designed as an ontology-based data warehouse. By indexing data and annotations from multiple sources that share the same ontologies, we can perform queries that would be otherwise impossible or extremely labour-intensive to answer. Future versions of OBD will make use of distributed querying technology in order to combine data sources in a dynamic fashion, lessening the need to build large data warehouses.
OBD makes full use of OBO ontologies in order to give complete answers to queries. As a simple example, queries for genes expressed in nerve cells should also return genes expressed in [astrocytes]. OBD can also answer more complex queries involving combinations of ontology classes, making use of the specific semantics of the different relations in the various ontologies.
Contents |
Project Page
The main project page is on the NCBO GForge repository (note: the project page will probably move to sf or googlecode). The project page is the main access point for subversion, the tracker and so on
Note: the source for this project has moved back to sourceforge:
To check out:
svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk OBDAPI
Mail List
http://groups.google.com/group/obd-dev/
Main Page
The OBD home page
Presentations and Documents
- OBD Overview March 2008 Presentation delivered for NCBO Council Meeting. High level overview, emphasis on phenotype annotations
- OBD Architecture December 2007 Presentation for NCBO DevCon
There is a paper in progress describing OBD. Email obd-dev for a copy
Use Cases
The use case documentation is integrated with the web services interface:
See also old use cases page
OBD Current Contents
See UI for the most up to date contents.
The primary focus so far has been on representing phenotype based annotations
- Annotations of OMIM genotypes, performed by NCBO DBPs
- Model Organsim Genotype-Phenotype annotations
- Zebrafish annotations, from ZFIN group (NCBO DBPs). Includes experimental metadata
- Fly annotations, from FlyBase (NCBO DBPs)
- Mouse annotations, from MGI
- Gene-disease annotations, from GAD
- Gene-chemical annotations, from CTD
In a separate store we also have
- clinical trial instances, from TrialBank (NCBO DBP)
A list of annotation sources is kept as metadata alongside OBO ontology metadata
Representing phenotypes
It is important to note that OBD is a generic annotation information system. All domain modeling is handled using ontologies and ontological constructs using ontology classes. To see how phenotypes are modeled in OBD, see the OBD:Phenotypes page
Web Services and Prototype UI
The current web based UI is very bare-bones. It gives relatively raw access to the underlying annotation graphs
Technical documentation
Architecture
- Architecture Page on this wiki
- OBD Architecture Diagram
Java model and API
- JavaDoc - OBD Java API
- Model javadocs and UML - Conceptual model
OBDSQL Core Schema
The core OBD model is expressed using relational semantics. The model is generic and graph-based, similar to RDF, but employing higher-level abstractions to reduce the number of nodes and edges in the DAG. For more information, see OBD:RDF_and_OWL
Currently the most powerful way to query OBD is through SQL, on top of the additional deductive inference layer. We are also exploring a SPARQL endpoint (via D2RQ or replication in a RDF triplestore), and will also investigate OWL-based query languages, when they become available.
See OBD:Querying for more info on current OBD stores and how to query them
See OBD:OBD-SQL-Schema for information on the core SQL schema
OBD RDF Implementation
See OBD:Triplestore and OBD:SPARQL
