Skip to content

Quick Introduction to VO-DML

The Virtual Observatory Data Modelling Language (VO-DML) is a "meta-model" i.e. a language for defining models.

The VO-DML Standard discusses in some detail the motivations for creating VO-DML which are summarized below;

  • Desire to be able to create data models that were easy to re-use in other data models.
  • It needed to be machine-readable and both "vendor" and computer language neural to be able to provide the necessary interoperability.
  • It should be able to express concepts that made clear where normalisation could occur in relational data models.

VO-DML concepts

Type System

Type Description Example
PrimitiveType Atomic, basic values "boolean", "integer", "real", "string"
Enumeration A fixed list of named values "filter_name (U, B, V, R, I)."
DataType Structured types that are treated as single values. They have no unique identity. "A Point (RA, Dec) or a Quantity (Value + Unit)."
ObjectType Complex entities with a unique identity and lifecycle. An Observation, a Source, or a Telescope.

Relationships and Properties

VO-DML defines how these types connect to one another:

  • Attributes: Simple properties of a type (e.g., the name of a TargetSource).
  • References: A pointer from one ObjectType to another without "owning" it. For example, an Observation references a TargetSource.
  • Composition: A "composition" relationship where an ObjectType owns a set (collection) of other objects. If the parent is deleted, the collection is deleted (e.g., a Catalog contains a collection of Entries).
  • Semantic Concept can be used to associate semantics to a model element - eg. stating that an attribute value must be from a particular vocabulary - e.g. the IVOA standard vocabularies

Model Reuse and Packages

To keep models manageable, VO-DML uses:

  • Model Import: A mechanism to include types from an existing standard model (e.g., importing the IVOABase data model for basic units and quantities) to ensure consistency. Note that more than one model may be imported.
  • Packages: Logical groupings of related types (similar to folders or namespaces), mainly used to avoid potential naming clashes.

Other VO-DML info

VO-DML Tools presentations

VO-DML 1.1 presentations