-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: V4.01_CS01
-
Fix Version/s: V4.01_CS02
-
Component/s: Vocabularies
-
Labels:None
-
Proposal:
-
Resolution:
Terms are sometimes intended to be used only in certain contexts. Consider, for example, terms Minimum and Maximum from the Validation vocabulary. As stated in ODATA-856, they can optionally be augmented with an annotation of the Exclusive term.
The Validation vocabulary documents this dependency in the description of term Exclusive. The descriptions of terms Minimum and Maximum, however, contain no related "forward reference" to Exclusive. Or to any other annotation, possibly from another vocabulary, that hypothetically could be applied in their context. This leads to the situation that the interface established by a term may or may not be fully described, and clients effectively do not know, which other terms may be applied in a context to add further aspects to the annotated target. In the given example, one has to read through the entire vocabulary to find out that Exclusive plays a role.
While this can be mitigated by improving the documentation, the problem becomes more relevant, if annotations are not hand-crafted, but created by modeling tools. Such tools want to guide users and prevent misuse by reducing the overall set of annotations to those applicable in a given context. This requires a machine-readable format for expressing these dependencies. Such a formal description also reduces astonishment on client side, since it can prepare logic for all described combinations of term applications (as opposed to gradually learn the full complexity from different metadata documents)
The list of applicable terms is open, since there are terms that may be used in any context, e.g. Core.Example. This feature enhances the existing term syntax of AppliesTo="Annotation" with optional information, which other annotations accept this term, described in the definitions of these other terms.