A recent customer desired a system for storing and publishing highly specialized content, including text and images, with classification of content to enhance search and navigation. The customer was replacing a home-grown solution involving relational databases and custom taxonomy management which had been used for over a decade. The limited flexibility, and resulting high cost of maintenance, led the customer to seek a solution based on off the shelf software components, customized to meet the specific needs of their customers.
Given these desires, we developed the application using Alfresco as the underlying CMS, supplemented with Smartlogic Semaphore Suite of taxonomy management tools. The result is a system which provides automated classification of content, based on the taxonomies, and rich search capabilities. The rest of this article discusses the approach to this application.
The Semaphore Suite provides Java APIs, as well as RESTful APIs, for accessing classification and term look-up services. We used the Java APIs from Java-backed data webscripts. The diagram below shows the software components used in this solution.
The primary Semaphore components involved are the Ontology Server (OS), Classification Server (CS), and Semantic Enhancement Server (SES). OS manages the taxonomies, and is accessed by the taxonomist through the Ontology Manager (OM). From the OM, the taxonomist can publish classification rules to CS and taxonomies to SES. CS provides the services for automatic classification of content, based on the classification rules specialized for domain knowledge. SES provides highly indexed access to terms, which was leveraged for efficient display of UI components used in search and metadata display.
Activiti workflows were developed to run within the Alfresco platform. These workflows encapsulated the transmission of content to CS and storage of the resulting classification metadata to the Solr index. Users are able to review and enhance the automated classification of content.
The resulting application shows how straight-forward it is to integrate applications with Alfresco using the framework provided within the CMS. Best of breed software can be used to seamlessly provide features not otherwise available in Alfresco.