The data structures and interfaces included in this package define an interoperable framework for simple controlled vocabularies.

When describing and representing domain-specific systems, there is frequently a need for a string type that can only assume a limited set of allowed values, a set, however, that is allowed to change over time (as values are added or removed) or space (different servers accepting different sets of strings). This need is addressed by this package.

A reference implementation of the controlled vocabularies was developed at European Bioinformatics Institute as an open source project candy.

The controlled vocabulary package consists of

- an interface CandyFinder whose main task is to provide all available vocabularies,
- an interface CandyVocabulary who represents one controlled vocabulary, and
- a class CandyEntry representing one entry/value in a controlled vocabulary.