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 |
[edit] Project Page
The main project page is on the NCBO GForge repository. The project page is the main access point for subversion, the tracker and so on
[edit] Main Page
The OBD home page
[edit] 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
[edit] Use Cases
The use case documentation is integrated with the web services interface:
See also old use cases page
[edit] 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
[edit] 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
[edit] Web Services and Prototype UI
The current web based UI is very bare-bones. It gives relatively raw access to the underlying annotation graphs
[edit] Technical documentation
[edit] Architecture
- Architecture Page on this wiki
- OBD Architecture Diagram
[edit] Java model and API
- JavaDoc - OBD Java API
- Model javadocs and UML - Conceptual model
[edit] 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
[edit] OBD RDF Implementation
See OBD:Triplestore and OBD:SPARQL
