IMS VDEX


IMS VDEX, which stands for IMS Vocabulary Definition Exchange, is a mark-up language – or grammar – for controlled vocabularies developed by IMS Global as an open specification, with the Final Specification being approved in February 2004.
IMS VDEX allows the exchange and expression of simple machine-readable lists of human language terms, along with information that may assist a human in understanding the meaning of the various terms, i.e. a flat list of values, a hierarchical tree of values, a thesaurus, a taxonomy, a glossary or a dictionary.
Structural a vocabulary has an identifier, title and a list of terms. Each term has a unique key, titles and descriptions. A term may have nested terms, thus a hierarchical structure can be created. It is possible to define relationships between terms and add custom metadata to terms.
IMS VDEX support multilinguality. All values supposed to be read by a human, i.e. titles, can be defined in one or more languages.

Purposes

VDEX was designed to supplement other IMS specifications and the IEEE LOM standard by giving additional semantic control to tool developers. IMS VDEX could be used for the following purposes. It is used in practice for other purposes as well.
The VDEX Information Model is represented in the diagram. A VDEX file describing a vocabulary comprises a number of information elements, most of which are relatively simple, such as a string representation of the default language or a URI identifying the value domain. Some of the elements are ‘containers’ – such as a term – that contain additional elements.
Elements may be required or optional, and in some cases, repeatable. Within a term, for example, a description and caption may be defined. Multiple language definitions can be used inside a description, by using a langstring element, where the description is paired with the language to be used. Additional elements within a term include media descriptors, which are one or more media files to supplement a term’s description; and metadata, which is used to describe the vocabulary further.
The relationship container defines a relationship between terms by identifying the two terms and the specifying type or relationship, such as a term being broader or narrower than another. The term used to specify the type of relationship may conform to the ISO standards for thesauri.
Vocabulary identifiers are unique, persistent URIs, whereas term or relationship identifiers are locally unique strings. VDEX also allows for a default language and vocabulary name to be given, and for whether the ordering of terms within the vocabulary is significant to be specified.
A profile type is specified to describe the type of vocabulary being expressed; different features of the VDEX model are permitted depending on the profile type, providing a common grammar for several classes of vocabulary. For example, it is possible, in some profile types, for terms to be contained within one another and be nested, which is suited to the expression of hierarchical vocabularies. Five profile types exist: lax, thesaurus, hierarchicalTokenTerms, ‘glossaryOrDictionary’ and flatTokenTerms. The lax profile is the least restrictive and offers the full VDEX model, whereas the flatTokenTerms profile is the most restrictive and lightweight.
VDEX also offers some scope for complex vocabularies, assuming the existence of a well-defined application profile. Some examples are:
Identifiers in VDEX data should be persistent, unique, resolvable, transportable and URI-compliant. Specifically, vocabulary identifiers should be unique URIs, whereas term and relationship identifiers should be locally unique strings.

Implementations