Home Communication Applicability of Ontologies in software products.
Applicability of Ontologies in software products.
19 May, 2021


  1. Ontologies: what are they?

  2. Applicability and implementation

  3. Ontologies as problem-solving

  4. Does the future pass through ontologies?





1 - Ontologies: what are they?

Lately, there has been a lot of talk about ontologies and how they are beneficial when it comes to processing and organizing data. But, after all, what are ontologies?

Ontologies are a data model that represents a set of concepts within a domain and the relationships between them. We can characterize them as an information organization technique, mainly about the formal representation of knowledge [1]. They are generally created by specialists and, as their structure is based on the description of concepts and the semantic relationships between them, they allow the generation of a formal and explicit specification of a shared conceptualization. And why have they become so important? As we well know, the volume of data we currently deal with - on the internet and, above all, at an organizational level - is very vast and diverse, and the tendency is for it to become increasingly larger. Due to these high growth rates, it became necessary to use techniques that allow better and more effective treatment and organization of data, acting mainly on its selection, processing, recovery and dissemination - ontologies. Ontologies can be defined through the creation of terminology catalogues, glossaries or dictionaries, by classification or categorization through taxonomies or based on concepts and their relationships, with a strong focus on the use of semantic networks [2]. The use of ontologies results in a unification of the language or terminologies used to guarantee a better perception and modelling of the ecosystem in question.

                The main advantages of using ontologies are the possibility of communication between different types of machines, creating an interoperable network regarding a given knowledge; and formalization, which is related to the specification of the ontology, allowing the elimination of contradictions and inconsistencies in the representation of knowledge. At the level of knowledge representation, ontologies form a consensual vocabulary that allows knowledge from a specific domain to be represented at a high level of abstraction, thus ensuring potential for reuse. On the other hand, the most common problem that usually arises is: “What is the most correct methodology to use?” As in software development, in the design of ontologies, there are also several associated methodologies, some more traditional and more exhaustive and others more recent that have an agile basis. We have been developing our methodology and implementing it in CCG projects, with applicability in other areas and sectors of the industry, this being a flexible and adjustable methodology, taking into account the specificity of each project.


Figura 1 - Processo Utilizado no Desenho de Ontologias. CCG

2 - Applicability and implementation

Some argue that ontologies are fundamentally used at the level of projects in domains such as knowledge management, online sales and even natural language processing [3]. However, I consider that an ontological component can be applied to a wide area and different types of projects. An example of this is the work we have been developing in numerous projects in different sectors, such as the textile industry or the pharmaceutical industry, to guarantee and provide companies with better interoperability*, between existing information systems. In this way, we work, above all, at the level of semantic interoperability** as a way of providing application interoperability***, which is the desire of most companies. In short, the applicability of ontologies has the main objective of solving problems in terms of interoperability in companies.

Regarding the implementation of an ontological component in companies, it is always subject to the ecosystem, that is, the context in which the company operates. This is precisely why, initially, it is necessary to identify and analyze the organizational context, as well as the sector of activity in which the company operates. Once we have this analysis detail, we must focus on analyzing the company's internal processes, documenting the activities and tasks carried out in each of the departments and the actors who carry out these same actions. At this stage, we are talking, above all, about use case modelling in UML (Unified Modeling Language - Standard Language in Software Engineering) since it is this modelling that allows us to observe the organizational fabric as a whole and, together with the company, decide which area, or areas, are the target of ontological implementation.

After this step is well structured, we must study the existence of some data model or reference architecture for the domain under study. If it exists, it is analyzed and detailed, as well as the construction of scenarios as a way of validating whether the ontological layer of the model responds to the project's intervention areas. If there is no reference model, or the client wants something very specific applied to their specific case, we move forward with the definition of a data model focused specifically on the project and the client. In both hypotheses, starting from the data model, we define the schema of the ontological database and start to feed it according to the client's specifications and terminologies. In the end, we integrate this ontological database into a visualization tool where the client can apply filters, edit the database or add new terminologies and relationships in a more user-friendly way (see figure 1).






3 - Ontologies as problem solving

As previously mentioned, the main problems that ontologies solve are related to the lack of interoperability that many companies still face. Within organizations, information systems comprise all flows of information between people, processes and machines, including paper and oral communications, constituting an organized system for collecting, organizing, storing and communicating information. Due to all these information flows, there must be a way to standardize the way we treat a domain within the organization. And this is where some obstacles to the process begin to emerge. For all of this to work properly, it is necessary to have a uniform and coherent business ecosystem in terms of data and its applications, but in some cases, we are faced with unstructured data, with applications that operate in isolation and, also, with excessive paper use. So if we want a company with an interoperable system, we first have to equip it with the necessary means and processes and carry out a survey of existing computer applications and the terminologies used so that we can standardize them through a catalogue of synonyms. This is precisely where ontologies act as problem solvers.


3.1 - Scenario

Let's imagine that, hypothetically, company X - which operates in the textile sector - is growing exponentially and feels the need to become more efficient in terms of its processes and more developed in technological terms. After a requirements gathering phase, we came across the following reality: the company has two different software - one for managing orders, stock, purchase orders, etc. and, another, for everything that involves billing, and both do not communicate with each other. We also found that the company's workers still use several important paper documents and that they use different terms to describe the same purpose. If one chose to implement an ontological component in company X, it would have a single terminology catalogue that contained a list of synonyms mapped into the ontology. In this way, terminologies such as “purchase order” and “purchase order” which are the same thing would become related in the ontological mapping, ensuring that each insertion or query made in the management software returns the same data regardless of whether it is searched differently. way or another. This would eliminate the restriction on employees of only having to search for a single term, speeding up their work. On the other hand, company In this way, the constraints of financial employees when it comes to manually transcribing, for example, the values of a purchase order entered into the management software into the invoicing software were eliminated so that they can effectively invoice it (see figure 2).


Figure 2 – Ontological Mapping in Neo4J



4 - Does the future pass through ontologies?

Ontologies are not exactly new, however, companies are currently recognizing the importance of implementing ontological components. The fact that they promise the sharing and common understanding of some domain of knowledge that can be communicated through human-machine interaction, that is, that they facilitate the sharing, interpretation and reuse of information, and the standardization in the way this is treated in the same domain within an organization are advantages that more and more companies are looking for, to make them more efficient and technologically more developed. I believe, therefore, that the future effectively involves ontologies at an organizational level and beyond. I also believe that shortly the entire internet network will provide a catalogue of semantic data from its pages through an ontology since these provide a “Universal Language”, that is, a dictionary that allows machines to process and integrate Internet resources intelligently. This will enable more concrete, focused and faster searches, facilitating communication between different types of devices.

* Interoperability: Interoperability is the ability of disparate and diverse organizations to interact towards common goals involving the sharing of information and knowledge. Interoperability between large-scale system components is the ability to exchange services and data with each other. It is based on requests and responses, such as message exchange protocols, procedure names, and error codes, among others [4].

** Semantic interoperability: Semantic interoperability is the ability of different entities to understand the meaning of exchanged messages. There are some examples of semantic issues, that is, nomenclatures, scales and units used, divergence of similar concepts, different domains of knowledge and data integrity at the level of the software used [5].

*** Application interoperability: Application Interoperability defines the tools, technologies and procedures associated with the exchange of information in a distributed systems environment, with several different accesses. This type of interoperability deals with application-to-application communications through external services (e.g., middleware services) [6].



Per Tiago Pereira - EPMQ Senior Development Technician

[1]         G. Guizzardi, “On ontology, ontologies, conceptualizations, modeling languages, and metamodels,” Front. Artif. Intell. Appl., vol. 155, pp. 18–39, 2007.

[2]         C. Calero, F. Ruiz, and M. Piattini, Ontologies for Software Engineering and Software Technology. Spain, 2006.

[3]         I. Bedini and B. Nguyen, “Automatic Ontology Generation : State of the Art,” Prism Lab. Tech. Report. Univ. Versailles, pp. 1–15, 2007.

[4]         S. Heiler, “Semantic Interoperability,” ACM Comput. Surv., vol. 27, no. 2, pp. 271–273, Jan. 1995.

[5]         R. P. Suzana Maciel, J. N. Maria David, D. Barreiro Claro, and R. Braga, “Full Interoperability: Challenges and Opportunities for Future Information Systems,” Res. Challenges IS Brazil, pp. 107–118, 2016.

[6]         “Application Interoperability,” 2004. [Online]. Available: https://oa.mo.gov/sites/default/files/DSP-ApplicationInteroperability031004.pdf. [Accessed: 17-May-2021].