Create API for metadata vocabulary
For ensuring consistency of the user-generated metadata we should use a common vocabulary. This should tell users about expected values for keys and the style of values (e.g. capitalization).
When a user provides metadata by writing the metadata files without a guided editor, they can only get feedback on the metadata upon submission. This happens via an email notifying about problems in the metadata. In order to check the values in the metadata for which a vocabulary exists, we need an API which provides the vocabulary.
An API which provides the entire vocabulary, or the vocabulary for a specific key enables such checks.
When users provide values which are not in our vocabulary, we need a way of resolving this.
-
If we have a semantically matching entry (e.g. the same string with different capitalization) we want our users to use this. Semantic matches are hard to determine, but we might approximate it by telling users about strings in our vocabulary which are similar to the provided strings. This could be a feature of the API or be implemented separately.
-
If the provided value is missing from our vocabulary, we should have a way to add it. We need a way of finding such new values and adding them to the vocabulary. Adding them should probably be done manually. A feature allowing users to suggest additions to the vocabulary might help finding desired values. We could also keep track of the values we get which are not in the vocabulary. Reviewing these manually from time to time might help to extend the vocabulary.