Skip navigation.
Semantic Software Lab
Concordia University
Montréal, Canada

Semantic Assistants for Web Portals

Printer-friendly versionPrinter-friendly versionPDF versionPDF version

1. Introduction

A data portal is a web-based software application, which provides a central entry point to an large number of different data sources. These mostly heterogeneous information are aggregated and presented to users based on their assigned roles. Ideally, an intelligent portal must be able to offer content to users, taking into account contextual information beyond a user's roles and permissions. In addition, convenient access to a wealth of information causes portals to quickly grow in size. With no standardized way of further processing the portals' content, their usability suffers considerably from the information overload issue.

As a new extension to our Semantic Assistants framework, the integration of Semantic Assistants for Liferay allows portals to automatically process textual content using state-of-the-art techniques from the Natural Language Processing (NLP) domain [1]. The SA-Liferay integration aims at bringing NLP power to this popular portal system and its users in a seamless, user-friendly manner, realized as a ready-to-deploy custom portlet. With this new integration, we envision a new generation of web portals that can provide context-sensitive support through semantic analysis services, in particular based on NLP, allowing AI "assistants" support portal users with their tasks at hand.

Semantic Assistants Integration in Liferay PortalSemantic Assistants Integration in Liferay Portal

2. Natural Language Processing in Web Portals: Use Cases

Semantic Assistants Portlet in LiferaySemantic Assistants Portlet in Liferay
Portals' mostly heterogeneous information are aggregated from various sources and presented to users based on their assigned roles. Ideally, an intelligent portal must be able to offer content to users, taking into account contextual information beyond their roles and permissions. Below we iterate over some example scenarios on how NLP capabilities can aid users in the context of portals:

2.1. Named Entity Recognition

When dealing with large volume of textual documents or reading lengthy pages, a portal's intelligent assistants can help users by automatically finding named entities, such as persons, locations or organization names in a given text, helping them to quickly grasp the topics of the document at hand, without thoroughly reading the page.

2.2. Indexing Portal Content

Ordinarily, an index page exists for large document collections that allows information seekers to find where in the collection a certain term is mentioned, much like the index found at the end of books. Using a combination of NLP techniques, one can automatically index the portal content and use it as a new facet for searching or discovering terms within the portal system.

2.3. Automatic Summarization

Another somewhat ambitious use case of NLP within the context of portals is the generation of automatic summarizes from one or a collection of selected documents. Automatically generated focused or personalized summaries of portal content can help users find documents of interest in a more efficient way.

3. Architecture

The Semantic Assistants-Liferay Integration ArchitectureThe Semantic Assistants-Liferay Integration Architecture
Our novel Semantic Assistants-Liferay integration architecture is designed to allow various portlets to benefit from NLP techniques on their content. The core idea is to enable generic portlets to communicate with the Semantic Assistants portlet, specifically designed to connect to the back-end Semantic Assistants server and provide inquiry and invoking capability of NLP pipelines to portal users.

In this architecture, all available portlets in a page can communicate with the Semantic Assistants portlet by sending content for analysis and receiving the results. To commence an analysis session, users interact with the portal via their web browser, for example, on their desktop computer or from a mobile device. Through this integration, users can select an NLP service to execute on a portlet’s content from a dynamically-generated list of available assistants in the Semantic Assistants server repository. Users can then invoke arbitrary NLP services on a designated text. The content to be analyzed can be set from any content portlet in the webpage by initializing a set of render parameters that the Semantic Assistants portlet is expecting to read. Thereby, user-chosen content is sent to the Semantic Assistants server for NLP pipeline execution. The results of each successful service execution are first received by the Semantic Assistants portlet and then passed on to the portlet that requested the NLP service. The receiving portlet can then read the results from the rendering parameters and translate it to a proper representation, e.g., a table, list or highlighted annotations in the text, as shown in the figure above.

4. Download & Installation

The Semantic Assistants integration can be added to any Liferay-based web portal through deployment of our Semantic Assistants portlet. You can download the portlet's binary archive from our public distribution. For more information on how to deploy the Semantic Assistants portlet on your portal, please consult our Semantic Assistants documentation.

5. Acknowledgments

The Semantic Assistants-Liferay integration is a collaborative project between the Semantic Software Lab and the FUSION research group at the Friedrich-Schiller University of Jena in Germany. The funding for this project was generously provided by the Natural Sciences and Engineering Research Council of Canada (NSERC) and the German Academic Exchange Service (DAAD).

6. In the news

The first release is covered in the German news, Informatiker aus Jena und Kanada entwickeln Open-Source-Software zur Analyse von Texten in Web-Portalen.


  1. Löffler, F., B. Sateli, B. König-Ries, and R. Witte, "Semantic Content Processing in Web Portals", 4th Canadian Semantic Web Symposium (CSWS 2013), vol. 1054, Montréal, QC, Canada :, pp. 50–51, 07/2013.