In Semaphore there is the ability to define multiple hierarchical relationships which is useful for displaying your model in different contexts, for example, different teams that organize the model in different ways. What may not be clear is that these different hierarchical relationships can drive the user experience throughout the Semaphore experience.
Creating a Model with Multiple Hierarchical Relationships
Within Ontology Manager you can define multiple hierarchical relationships using the “Configure” -> “Structure” menu option on the “Relationship Types” tab. An example is as follows:
As you associate terms in the model in a hierarchical fashion you will be prompted to indicate which hierarchical relationship you wish to use.
When displaying the model in Ontology Manager, in the “Hierarchical” view you can right click and select the hierarchy relationship you wish to have the system use to display the tree:
Publishing a model with multiple hierarchical relationships means this information is available in Semantic Enhancement Server but also any application that uses it.
Semantic Enhancement Server
The “browse” service in Semantic Enhancement Server (or the “hierarchy” service if you are using the REST syntax) by default uses the default hierarchical relationship type for the model. If you wish to use an alternative hierarchical relationship then for “browse” you can add the parameter “hiertype” but for REST you use the “hierarchies” service. For example:
Showing Different Views of the Model
After the model information is published into Semantic Enhancement Server (SES) then various other applications that use SES to display the model can be configured to show the different hierarchical representations of the model that are present.
A simple modification of the Semaphore Workbench allows any hierarchical relationship defined in the model to be used to drive the user experience.
If you alter the “<web application>/WEB-INF/jsp/ort/browse.jsp” you can select what hierarchical relationship to use to display the model. So, with the example model we are working with here adjust the following line:
url: getSESRestUrl() + '/hierarchy/roots.json',
url: getSESRestUrl() + '/hierarchies/NT2/roots.json',
And the following line:
Then the model will be displayed using this relationship both when displaying the top level list of terms but also when using the new “tree” view of the model.
Semaphore for SharePoint 2010
In the Semaphore Service Application in Semaphore for SharePoint 2010 when configuring the model you have the ability to specify the hierarchical relationship name that is used when building the tree both in the term store and in the manual term selection display.
The same option also exists in the new Semaphore for SharePoint 2013 solution.