Metadata binding extension
Metadata binding extension allows Content Manager to connect to other repositories for fields.
The metadata binding is an extension that allows the enhancement of metadata fields of Content Manager.
All fields are configured in the database of Content Manager. They are displayed in the user interface for the users to use according to the settings of the user interface configuration.
To restrict a field to a specific list of available items, the field must be configured against a list of value collection which is defined in Content Manager and that can only be a flat list.
To further enhance this concept, the metadata binding extension allows for driving a field's value from a custom set of items that are not defined in Content Manager. These items are known as tags and they are accessed by a source. The source can proxy towards an embedded or external repository of tags depending on the implementation.
Every tag in the source's repository must have a unique identifier. Different sources are still allowed to provide tags with the same identifier although that is expected to be highly unusual.
Every repository can organize its tags in any manner that reflects the integration's business. It is the responsibility of the integration to translate this business into what the SDK expects.
Overall the metadata binding extension integrates any set of tags in the form of a graph. Every tag must have a unique identifier and can have a classification. Also the tags can be connected with each other, where the connections can also have a classification.
From simple to very complex integrations are now possible
This allows integration from the simplest forms of graph to very complex ones.
For example
- Flat list
- Hierarchical list
- Taxonomy
- Ontology
When a source is referenced by any field in the metadata binding extension, the field is considered bound. When a field is bound, an user can select tags for this field as provided from the referenced source and the proxied repository. The tags that the user selects for the field are stored in the Content Manager database using only the identifiers provided by the source. Thus the information stored in Content Manager becomes as less stale as possible over time. When the tag is about to be used by the system, the identifier is used to acquire relevant information from the tag repository. For example when the field's stored identifiers would render, the identifiers are used to show a meaningful information rather than just an identifier. Depending on the situation, a tag can reflect certain business as defined in the tag repository. For the same reason, when updating bound fields, the identifiers can be validated against the referenced source and the tag repository. For example a tag flower can point to a plant or cooking concept.
Four new methods in the SDK
This functionality is provided by four different methods on the SDK. Every function has a different purpose in the integration and is triggered from different locations in the flow of Content Manager.
- The
RetrieveTagshelps the user interface to provide a short list of suggested tags. This is also known as the suggest mode for the user controls that drive tag selection. - The
RetrieveTagStructurehelps the user interface to provide a tree like structure of available tags. This is also known as the browse mode for the user controls that drive tag selection. - The
ResolveIdsprovide contextual value for the stored ids in the database of Content Manager - The
Validatecan enhance the validation of the data for bound fields before they are stored in the database. The validation is currently triggered through the IWriteMetadata Plugins.
From the metadata binding extension perspective all integrations are live up to the call of the SDK function.
Different fields can be bound to different sources. For a source to be valid as a metadata binding reference it has to support the MetadataBinding SDK.
Different fields can reference different sources so Content Manager can integrate as many additional tag repositories as required.