Core Database Tables
All data and metadata in OME is expressed in tabular form and
stored in a relational database. Since the OME design relies
heavily on extensible semantic types, almost all of the
underlying database is defined via XML-based semantic type
descriptors. However, a few core tables cannot be defined as
semantic types, and instead are defined explicitly by the Perl
API. These core tables are listed below, along with
the OME::DBObject
subclass which defines them.
The divisions correspond to the sections of the Conceptual framework.
Any table not listed on this page is defined by a semantic type. The way in which semantic type tables are defined and created is described in more detail in a later section.
Object hierarchy
PROJECTS
(OME::Project
)- A project represents a large investigation by a small number of users.
DATASETS
(OME::Dataset
)- A dataset is any collection of images.
IMAGES
(OME::Image
)- A five-dimensional microscope image.
FEATURES
(OME::Feature
)- Any subset of an image.
PROJECT_DATASET_MAP
(OME::Project::DatasetMap
)- Encodes the many-to-many relationship between projects and datasets.
IMAGE_DATASET_MAP
(OME::Image::DatasetMap
)- Encodes the many-to-many relationship between images and datasets.
Attributes and semantic types
SEMANTIC_TYPES
(OME::SemanticType
)- The semantic types in the system.
SEMANTIC_ELEMENTS
(OME::SemanticType::Element
)- The elements in each semantic type.
DATA_TABLES
(OME::DataTable
)- A database table used to hold attributes. (Not quite the same thing as a semantic type — semantic types are logical descriptions, data tables are physical storage descriptions.)
DATA_COLUMNS
(OME::DataTable::Column
)- The columns in each semantic type database table.
Analysis modules
MODULES
(OME::Module
)FORMAL_INPUTS
(OME::Module::FormalInput
)FORMAL_OUTPUTS
(OME::Module::FormalOutput
)MODULE_CATEGORIES
(OME::Module::Category
)
Analysis chains
ANALYSIS_CHAINS
(OME::AnalysisChain
)ANALYSIS_CHAIN_NODES
(OME::AnalysisChain::Node
)ANALYSIS_CHAIN_LINKS
(OME::AnalysisChain::Link
)
Analysis executions
MODULE_EXECUTIONS
(OME::ModuleExecution
)ACTUAL_INPUTS
(OME::ModuleExecution::ActualInputs
)ANALYSIS_CHAIN_EXECUTIONS
(OME::AnalysisChainExecution
)ANALYSIS_NODE_EXECUTIONS
(OME::AnalysisChainExecution::NodeExecution
)ANALYSIS_PATHS
(OME::AnalysisPath
)ANALYSIS_PATH_MAP
(OME::AnalysisPath::Map
)
Data dependency trees
Data dependency trees are entirely encoded by the analysis execution tables. They do not need any extra database state.