Dictionary Open Service Interface Definition
The Dictionary Open Service Interface Definition (OSID) is an O.K.I. specification which supports creating and populating dictionaries of tag-value pairs. OSIDs are programmatic interfaces which comprise a Service Oriented Architecture for designing and building reusable and interoperable software.
Each Dictionary has a name, description and domain for which the Dictionary is intended. This service can be used for localization, mapping a set of values across application contexts, or performing any translation that fits into a tag-value paradigm.
A Dictionary is a relatively simple mechanism. In place of defining a specific value to be used in all contexts, a value is associated with a tag. References are always made to the tag, rather than the value associated with it, so that the value can change while the means for referencing the tag do not. A common form of dictionary is a properties or configuration file. Of course, the language dictionary is a well known model for mapping the values in one context, a language, to another.
Mappings do not always need to be one-to-one. One might have a tag for the kinds of services one offers. This list would vary by context and service provider. In a restaurant, what is served varies across establishments but the tag menu is always the same. In a learning system, the kind of courses offered might be such a list.
In Java, one might simply use the java.util.Map utility underneath the Dictionary interface. The existence of the interface acts as a placeholder for the potential of introducing more complex operations in the future.