Documentation Center

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, ...

Both controls offer the following behavior:
  • 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)

This reference implementation connector covers a lot of use cases to connect to this ontology system. This connector can handle identifiers, labels, classifications through extensive configuration.
The connector is implemented in \Plugins\TrisoftSmartlogic.dll file, and can be used by providing handler name: SmartlogicSESConnector. Some implementation notes are:
  • RetrieveTagStructure uses recursion over the SES API hierarchy service to build the tree step by step.
  • RetrieveTags uses the SES API prefix service to get the results while applying the selectable and entry nodes of the configuration.
  • IQueryEnhance is not implemented in this connector.
  • Relation parameters describe how to walk over the graph: relation incorporates the instructions on how to move from one term to others, ID identifies the relation to be used from metadatabinding fields parameter, type identifies if the relation is hierarchical or associative, abbreviation points to the relationship name as defined in the model, direction and from conditions are used to identify if a rule can be used for a term, to conditions are used to filter out the expanded terms when using this relation.
  • Describe per field what part of the graph you are targeting: entrynodes defines where to begin on the graph, relations to references which relations are allowed to be used to create the set of terms for this field and selectable to defines which terms are selectable by the user.