In many companies, the search and retrieval of information matching certain criteria is a key part of the business process. If we take, for example, those companies that work with many different services or products, the task of searching through product or service queries can be a key part of their data analysis or customer care processes. Typically employees will have to query internal knowledge bases or consult with external sources of information to gather sufficient knowledge to solve domain specific tasks.

At present, a typical keyword-based search will not retrieve the wealth or depth of information typically required. While reference to an internet search engine might assist with such a task, such assistance is ad-hoc, sometimes unreliable, and certainly time-consuming.

SmartSearch, using semantic reasoning, improves the ability of an employee to extract all the relevant information relating to a particular search term, by allowing the search to include all related values, e.g. a search for “car” would return not just documents with the word “car” included but documents that refer to car related terms, e.g. any make, component or type of car, e.g. Ford, windscreen, hatchback, etc.


Figure 1.  The components of the SmartSearch system


The SmartSearch system has been developed as a search engine contained within a web-based interface. A user can input the word they wish searched for in a Google-like front-end.

The system we have developed involves a process of information retrieval from websites and APIs to first create a knowledge base of searchable data. Using this knowledge base and available online ontologies, SmartSearch performs a search of all relevant values and returns the results to the screen.

The system has been designed using a combination of Python, Java (for connection to a semantic reasoner), JQuery javascript, Bootstrap, CSS and HTML.

Fig. 1 shows a general overview of the system. Based on this figure, and assuming we were interested in finding all products containing citrus fruits, SmartSearch would search within the available ontology and extracts the subclasses of citrus fruits from the ontology. Performing a search on the subclasses returns things like mandarins, oranges and lemons.

The SmartSearch interface (configured for food products) is shown in Figure 2. A user can input the search term, and the system returns a table showing all the relevant items that search term relates to. In the example shown, a user can search not only for ingredients but also for food nutrients.


Figure 2a. The  SmartSearch searchbox


Figure 2b. The  SmartSearch results in tabular form


  • Dr. Eoghan O’SheaDublin Institute of Technology
  • Dr. Robert Ross, Dublin Institute of Technology