Taxonomy/ontology integration
The ability to live link an external source to your content, which can provide a living semantic hierarchy (or ontology) to your topic repository, has been developed and enhanced under the technical name of MetadataBinding.
General
MetadataBinding allows our metadata fields to be linked to external sources. An external source is a repository of items. These items can be related in a simple (e.g. flat list) or complex hierarchy (e.g. graphs). Every item must have a unique identifier and a label. In the repository we only save the identifiers, which in turn means that labels and navigation hierarchy is always retrieved live.
Every field can be linked to a different MetadataBinding interface implementation.
A control named LabelManager is available in the web client. It gives access to a dedicated interface that lets you use configurable search capabilities through your objects with the assistance of the external taxonomy.
A control named TagList is available in the Client tools. You also have access to specialized options in the configuration file metadataconfig.xml. This gives you control on every aspect of the MetadataBinding system: suggestions, filtering, options for a messaging system, ...
- Tree view shows the tree navigation implementation of the bounded connector (
MetadataBinding25.RetrieveTagStructure) showing navigation and selectable items. - Auto suggest (as-you-type) shows you items that match your criteria (
MetadataBinding25.RetrieveTags). - Tree view with as-you-type experience performs a client side filtering of the open tree view, eventually only showing navigation and selectable items.
- Recent tags in suggestion mode shows the last 10 selected items for this field.
The control also supports batch metadata in the Client Tools.
Hierarchical Experience
All of the UI control behavior is supported by an API which also allows to pass context of other metadata fields. In practice, the content of one or more fields can define the behavior of the currently active field.
For example, the values selected in a Continents field can be passed to the Countries field to filter to only European countries. If a user would immediately go to the Countries field, it is up to the connector implementation to either show all countries or inform the user to select a continent first. This will help reduce data sets and guide the user to allowed combinations.
Search Experience
As the repository stores identifiers, it means that all Find and Search capabilities of the system rely on passing identifiers. Only when using the UI control to select a certain identifier, the connector is in play. The chosen identifier(s) are then passed to the existing Find and Search operations.
As an extra, the incoming <ishquery> structure which is passed to Search25.PerformSearch from the Client Tools or Web Client search screen can be rewritten through an implementation of the IQueryEnhance interface. As an example, when searching on Continents North America, your connector implementation might want to enhance the search to also search for Canada, USA.
Validation
The UI controls will guide the users, but eventually validation will happen on the web/app server through an IWrite* plugin (MetadataBinding25.Validate). This ensures that any API integration follows the same rules.
Configuration
The connectors are configured in the Web Client Settings area. Configuration is stored as part of <infoShareExtensionConfig> stored in FISHEXTENSIONCONFIG field available through Settings25 API. We use the notion of a <source> for a connector to allow configuration reuse across several fields.
We offer some Web Client assist functionality (data-metadatabinding-view) to make LabelManager easier. And the metadataconfig.xml drives the Client Tools configuration of typetaglist.
Connector for SmartLogic Semantic Enhancement Server (SES)
SmartlogicSESConnector. Some implementation notes are:
RetrieveTagStructureuses recursion over the SES API hierarchy service to build the tree step by step.RetrieveTagsuses the SES API prefix service to get the results while applying the selectable and entry nodes of the configuration.IQueryEnhanceis not implemented in this connector.- Relation parameters describe how to walk over the graph:
relationincorporates the instructions on how to move from one term to others,IDidentifies the relation to be used from metadatabinding fields parameter,typeidentifies if the relation is hierarchical or associative,abbreviationpoints to the relationship name as defined in the model,directionandfromconditions are used to identify if a rule can be used for a term,toconditions are used to filter out the expanded terms when using this relation. - Describe per field what part of the graph you are targeting:
entrynodesdefines where to begin on the graph,relations toreferences which relations are allowed to be used to create the set of terms for this field andselectable todefines which terms are selectable by the user.