VO-DML Meta-Model

Table of Contents

1.     model: vo-dml
2.     Packages and Types
2.1     [root package]
2.1.1     objectType:Collection
2.1.2     objectType:GROUPref
2.1.3     objectType:Identifier
2.1.4     objectType:IdentifierField
2.1.5     objectType:Instance
2.1.6     objectType:Model
2.1.7     objectType:ORMReference
2.1.8     objectType:ObjectIdentifier
2.1.9     objectType:ObjectTypeInstance
2.1.10     objectType:Reference
2.1.11     objectType:ReferenceIdentifier
2.1.12     objectType:RemoteReference
2.1.13     primitiveType:ref
3.     vodml-id-s
4.     Imported Models
4.1     ivoa

1. Model: VO-DML Meta-Model (vo-dml)

Authors :
Date : 2013-02-18T06:17:55
Version : 0.x
Abstract : This model defines types and roles that can be used when "mapping" VO-DML models. For example it can be used to annotate data containers such as VOTable, TAP_SCHEMA or FITS, to indicate the role that particular mapping elements (identified by vodmlref-s) play in the mapping. See the "mapping document" at https://code.google.com/p/volute/source/browse/trunk/projects/dm/vo-dml/doc/MappingDMtoVOTable-v1.0.docx for more information. (link to be updated)
Diagram : The following diagram has been generated from the model using the GraphViz tool.
The classes and packages in the diagram can be clicked and are mapped to the descriptions of the corresponding element elsewhere in the document.

2.Model contents: Packages and Types

The following sub-sections present all packages in the model with their types. The packages are listed here in alphabetical order. Each sub-section contains a description of the package and a table containing its various features.

2.1 [root package]

Model vo-dml
Object types Collection GROUPref Identifier IdentifierField Instance Model ORMReference ObjectIdentifier ObjectTypeInstance Reference ReferenceIdentifier RemoteReference
Primitive types ref

2.1.1 objectType: Collection

vodml-id Collection
description Represents a collection of objecttype instances
collections
name feature value
item type Reference
vodml-id Collection.item
multiplicity 0..*
isOrdered false
description ...

2.1.2 objectType: GROUPref

vodml-id GROUPref
description This type represents a reference where a single @ref on a GROUP in combination with the way that the referencing object is represented is sufficient to identify the referenced object. There are two possibilities, either the @ref identifies a singleton GROUP or it references a GROUP in the same TABLE as the referrer, in which case the referenced object is assumed to be stored in the same row as the referrer.
extends Reference
attributes
name feature value
ref type ref
vodml-id GROUPref.ref
multiplicity 1
description ref identifying the GROUP representing the referenced Object.

2.1.3 objectType: Identifier

vodml-id Identifier
description This type represents an identifier as one or more string values, fields. IMPORTANT this type allows multiple fields.
Subclasses in this model ObjectIdentifier ReferenceIdentifier
collections
name feature value
field type IdentifierField
vodml-id Identifier.field
multiplicity 1..*
isOrdered false
description ....

2.1.4 objectType: IdentifierField

vodml-id IdentifierField
description [TODO add description!]
attributes
name feature value
value type ivoa:string
vodml-id IdentifierField.value
multiplicity 1
description TBD
ref type ivoa:string
vodml-id IdentifierField.ref
multiplicity 0..1
description Optional attribute that may be used to reference another element in an annotated document.

2.1.5 objectType: Instance

vodml-id Instance
description This type represents an instance of a VO-DML Type.
Subclasses in this model ObjectTypeInstance
attributes
name feature value
type type ref
vodml-id Instance.type
multiplicity 1
description The type of the instance, represented by a vodmlref.

2.1.6 objectType: Model

vodml-id Model
description This type represents a usage of a data model spec in a serialisation, i.e. a model instance. It has attributes allowing lookup of the actual spec, assigning a prefix to refer to elements from the model using utypes (if different from the model's name.) And it has an (implicit) collection of (root) instances.
attributes
name feature value
url type ivoa:anyURI
vodml-id Model.url
multiplicity 1
description URL from which the VO-DML/XML representation of the model can be retrieved.
ivoId type ivoa:string
vodml-id Model.ivoId
multiplicity 1
description Attribute identifying Model in some registry.
name type ivoa:string
vodml-id Model.name
multiplicity 1
description The (short) name of the model. Used as prefix in vodmlref expressions pointing at elements in the model.

2.1.7 objectType: ORMReference

vodml-id ORMReference
description This type represents the object-relational mapping of a reference. It identifies the referenced object as being in the same document. Having an identical identifier element, consisting of one or more fields.
extends Reference
attributes
name feature value
collection type ref
vodml-id ORMReference.collection
multiplicity 0..1
description Optional ref identifying the collection on the identified object this child object belongs to.
collections
name feature value
id type ReferenceIdentifier
vodml-id ORMReference.ID
multiplicity 1
isOrdered false
description The ID of the referenced object.

2.1.8 objectType: ObjectIdentifier

vodml-id ObjectIdentifier
description This type represents an identifier of an ObjectTypeInstance.
extends Identifier

2.1.9 objectType: ObjectTypeInstance

vodml-id ObjectTypeInstance
description This represents instances of object types in serialisations.
extends Instance
referrers ObjectTypeInstance
attributes
name feature value
ID type ivoa:string
vodml-id ObjectTypeInstance.ID
multiplicity 0..1
description Simple Identifier of an Object
references
name feature value
container type ObjectTypeInstance
vodml-id ObjectTypeInstance.container
multiplicity 0..1
description Reference to an instance that contains this instance.
collections
name feature value
identifier type ObjectIdentifier
vodml-id ObjectTypeInstance.identifier
multiplicity 0..*
isOrdered false
description An identifier of the Object

2.1.10 objectType: Reference

vodml-id Reference
description This type represents a (lazy) reference to another object. It represents the referenced object by wrapping its identifier. Is able to provide explicit information on the type of the reference object, so that this does not have to be inferred from the reference.
Subclasses in this model GROUPref ORMReference RemoteReference

2.1.11 objectType: ReferenceIdentifier

vodml-id ReferenceIdentifier
description This type represents an identifier on a Reference, identifying a referenced ObjectTypeInstance through equality of its contents.
extends Identifier

2.1.12 objectType: RemoteReference

vodml-id RemoteReference
description This type represents a Reference to an object stored remotely.
extends Reference
attributes
name feature value
ivoid type ivoa:anyURI
vodml-id Reference.ivoid
multiplicity 0..1
description The IVOIdentifier of the referenced object, assumed to be stored in an IVOA Registry.
ivoid type ivoa:anyURI
vodml-id Reference.url
multiplicity 0..1
description A URL allowing one to retrieve a representation of the referenced object. May contain a fragment identifier. Detailed structure left open.

2.1.13 primitiveType: ref

vodml-id ref
description Represents a VODMLREF as defined in the VO-DML/Schema, i.e. a reference to an element in some VO-DML model. MUST obey the syntax for such references as defined in the VO-DML and mapping documents. i.e. must be of form: model-name ":" vodml-id ...


3.s

The following table shows all fully qualified vodml-ids for this data model. It is ordered alphabetically and the identifiers are hyper-linked to the location in the document where the actual element is fully defined.
vodml-id feature type description
vo-dml:model This model defines types and roles that can be used when "mapping" VO-DML models. For example it can be used to annotate data containers such as VOTable, TAP_SCHEMA or FITS, to indicate the role that particular mapping elements (identified by vodmlref-s) play in the mapping. See the "mapping document" at https://code.google.com/p/volute/source/browse/trunk/projects/dm/vo-dml/doc/MappingDMtoVOTable-v1.0.docx for more information. (link to be updated)
Collection objectType Represents a collection of objecttype instances
Collection.item collection ...
GROUPref objectType This type represents a reference where a single @ref on a GROUP in combination with the way that the referencing object is represented is sufficient to identify the referenced object. There are two possibilities, either the @ref identifies a singleton GROUP or it references a GROUP in the same TABLE as the referrer, in which case the referenced object is assumed to be stored in the same row as the referrer.
GROUPref.ref attribute ref identifying the GROUP representing the referenced Object.
Identifier objectType This type represents an identifier as one or more string values, fields. IMPORTANT this type allows multiple fields.
Identifier.field collection ....
IdentifierField objectType
IdentifierField.ref attribute Optional attribute that may be used to reference another element in an annotated document.
IdentifierField.value attribute
Instance objectType This type represents an instance of a VO-DML Type.
Instance.type attribute The type of the instance, represented by a vodmlref.
Model objectType This type represents a usage of a data model spec in a serialisation, i.e. a model instance. It has attributes allowing lookup of the actual spec, assigning a prefix to refer to elements from the model using utypes (if different from the model's name.) And it has an (implicit) collection of (root) instances.
Model.ivoId attribute Attribute identifying Model in some registry.
Model.name attribute The (short) name of the model. Used as prefix in vodmlref expressions pointing at elements in the model.
Model.url attribute URL from which the VO-DML/XML representation of the model can be retrieved.
ORMReference objectType This type represents the object-relational mapping of a reference. It identifies the referenced object as being in the same document. Having an identical identifier element, consisting of one or more fields.
ORMReference.collection attribute Optional ref identifying the collection on the identified object this child object belongs to.
ORMReference.ID collection The ID of the referenced object.
ObjectIdentifier objectType This type represents an identifier of an ObjectTypeInstance.
ObjectTypeInstance objectType This represents instances of object types in serialisations.
ObjectTypeInstance.ID attribute Simple Identifier of an Object
ObjectTypeInstance.container reference Reference to an instance that contains this instance.
ObjectTypeInstance.identifier collection An identifier of the Object
Reference objectType This type represents a (lazy) reference to another object. It represents the referenced object by wrapping its identifier. Is able to provide explicit information on the type of the reference object, so that this does not have to be inferred from the reference.
ReferenceIdentifier objectType This type represents an identifier on a Reference, identifying a referenced ObjectTypeInstance through equality of its contents.
RemoteReference objectType This type represents a Reference to an object stored remotely.
Reference.ivoid attribute The IVOIdentifier of the referenced object, assumed to be stored in an IVOA Registry.
Reference.url attribute A URL allowing one to retrieve a representation of the referenced object. May contain a fragment identifier. Detailed structure left open.
ref primitiveType Represents a VODMLREF as defined in the VO-DML/Schema, i.e. a reference to an element in some VO-DML model. MUST obey the syntax for such references as defined in the VO-DML and mapping documents. i.e. must be of form: model-name ":" vodml-id ...

4.Imported Models

This section lists the external models imported by the current data model. For each imported model we list URLs to the VO-DML and HTML representations and the prefix used for vodml-ids from inside the model.

4.1 ivoa

Model vodml-id ivoa
url http://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/models/ivoa/IVOA.vo-dml.xml
documentation url http://volute.googlecode.com/svn/trunk/projects/dm/vo-dml/models/ivoa/IVOA.html