Skip to main page content
U.S. flag

An official website of the United States government

Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

Https

The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

Access keys NCBI Homepage MyNCBI Homepage Main Content Main Navigation
. 2003 Oct 28:4:51.
doi: 10.1186/1471-2105-4-51.

A knowledge discovery object model API for Java

Affiliations

A knowledge discovery object model API for Java

Scott D Zuyderduyn et al. BMC Bioinformatics. .

Abstract

Background: Biological data resources have become heterogeneous and derive from multiple sources. This introduces challenges in the management and utilization of this data in software development. Although efforts are underway to create a standard format for the transmission and storage of biological data, this objective has yet to be fully realized.

Results: This work describes an application programming interface (API) that provides a framework for developing an effective biological knowledge ontology for Java-based software projects. The API provides a robust framework for the data acquisition and management needs of an ontology implementation. In addition, the API contains classes to assist in creating GUIs to represent this data visually.

Conclusions: The Knowledge Discovery Object Model (KDOM) API is particularly useful for medium to large applications, or for a number of smaller software projects with common characteristics or objectives. KDOM can be coupled effectively with other biologically relevant APIs and classes. Source code, libraries, documentation and examples are available at http://www.bcgsc.ca/bioinfo/software.

PubMed Disclaimer

Figures

Figure 1
Figure 1
API architecture. An overview of the core classes that form the API. Abstract classes that require further implementation by a developer are shown in green and have italicized text. Most class names contain the word 'Biological', and so for brevity, this word has been replaced by an asterisk. Objects with a logical interaction are denoted by thick dotted lines, objects that are intrinsically related are denoted with a dashed line, object inheritance is shown using a solid line (with the arrow pointing to the superclass), and alternating dotted-dashed lines indicate an object that throws a specific exception (with the arrow pointing to the exception).
Figure 2
Figure 2
An example of data relationships represented within the API. A protein and a functional domain (both subclasses of BiologicalData) have a hierarchical relationship. The hierarchy relationship (a subclass of BiologicalLink) is extended to describe a protein region (with a start and end coordinate), and further extended to describe a functional domain region (which also includes a confidence score).
Figure 3
Figure 3
Graphical components implemented by the developer called using KDOM methods. The intrinsic display of a "gene" object linked to a "chromosome" or "functional domain" differs depending on the context.
Figure 4
Figure 4
Classes useful for GUI development. An overview of classes useful for GUI development. Boxes denote classes, and rounded boxes denote interfaces. Inheritance and interface implementation is denoted with a connecting line (where the arrowhead denotes the superclass or interface). Classes and interfaces that are part of standard Java/Swing are coloured blue. The bottom screenshot is an example of a user interface from the DISCOVERYspace application (Zuyderduyn S et al., in preparation), created using the API.
Figure 5
Figure 5
An example object definition set for microarray experiments. This is a theoretical set of objects that one might implement to describe a microarray experiment. BiologicalData subclasses are shown in with bold outlines, and BiologicalLink subclasses are shown with thin outlines.
Figure 6
Figure 6
Several partial implementations of BiologicalData. Partial Java code is shown for implementations of a microarray spot, RNA sample, and a Gene.
Figure 7
Figure 7
Several partial implementations of BiologicalLink. Partial Java code is shown for implementations of the relationship between an RNA sample and a microarray spot (SpotHybridizationLink), and between a microarray spot and a gene sequence (SequenceFragmentLink).
Figure 8
Figure 8
A partial BiologicalNervousSystem. The focus in this example is in supplying a relationship between a Gene and a SequenceFeature. This particular example is illustrative and therefore very explicit. A typical nervous system implementation is generally more dynamic.
Figure 9
Figure 9
Two example procedures using a KDOM implementation. The first displays a list of supplied genes and their sequence features. The second obtains a list of genes with a particular feature of interest.
Figure 10
Figure 10
A partial diagram of our own implementation of KDOM. The top portion shows object inheritance, and the bottom portion shows data relationships.

Similar articles

Cited by

References

    1. Uschold M, Gruninger M. Ontologies: Principles, methods and applications. Knowledge Engineering Review. 1996;11
    1. Jazayeri M. Component programming – a fresh look at software components. In: Schafer W, Botella P, editor. In Proceedings of the 5th European Software Engineering Conference: September 25–28 1995; Sitges, Spain. 1995. pp. 457–478.
    1. Sun Microsystems Java Development Kit 1.4.0. 901 San Antonio Road, Palo Alto, CA 94303. 2002. http://www.java.sun.com/j2se/1.4
    1. Stevens R, Goble CA, Bechhofer S. Ontology-based Knowledge Representation for Bioinformatics. Brief Bioinform. 2000;1:398–414. - PubMed
    1. Wiechert W, Joksch B, Wittig R, Hartbrich A, Honer T, Mollney M. Object-oriented programming for the biosciences. Bioinformatics. 1995;11:517–534. - PubMed

Publication types

MeSH terms

LinkOut - more resources