Developer Documentation Library > Data Model > Accessing the UNICOM Intelligence Data Model > Working with the Metadata Model > Understanding the MDM features > Low level metadata objects
 
Low level metadata objects
The Properties collection stores MDM custom properties, which are any properties that are not directly supported by the Metadata Model.
The MDM Document's Contexts property lists each user context available in the document. User contexts define different usages, such as data collection (Question) and data analysis (Analysis). Similarly, the Document's Languages property lists all of the Language objects used in the Document. The Document's LabelTypes property lists the types of labels that have been defined. The default LabelType is label, which is used for question texts in the Question user context and variable descriptions in the Analysis user context. Other LabelTypes can be defined for instructions, descriptions, and so on. Finally, the Document's RoutingContexts property defines different interviewing environments, such as Paper and Web.
Objects are identified in the MDM by their name and path, and are assigned labels or properties to contain their actual metadata values. Texts are stored in the Label object, which is a two-dimensional array of texts for all of the user contexts and languages defined in the document. The Label object’s parent object contains a Labels collection that is an array of Label objects, one for each LabelType.
User contexts, routing contexts, and languages are treated in a similar way to versions, and only the properties and texts of the document's active user context, routing context, and language are exposed to the consumer application.
To activate a user context and language, set Document.Contexts.Current and Document.Languages.Current to the desired user context and language. For example:
When the label is read, the MDM returns the text Quando?, because Italian is the active language and Question is the active user context.
If, for a particular label or property, no text or value exists for a specified context, the MDM checks the ContextAlternatives object for a preferred alternative context. If there is a text or value available in the alternative context, it is used instead. The Context.ContextAlternatives list is checked until an alternative or the end of the list is found.
Similarly, each Language object has a LanguageAlternatives list. This is useful when a project has been partially translated into a destination language, but fully translated into another similar one. For example, you can specify that when the Italian translation is missing, the Spanish text should be used, and when that is unavailable, the French.
The LanguageDefinitions object is a list of language definitions. No object of this type exists in a document, but you can use a LanguageDefinitions object to check language attributes.
See also
Understanding the MDM features
Versioning
Hierarchical data in the MDM
Full labels
Understanding the MDM features