Aplicabilidade das ontologias nos produtos de software

Foto: CCG. 2020

 

1. Ontologias: O que são?

Ultimamente, muito se tem falado em ontologias e em como elas são benéficas no que respeita ao tratamento e organização de dados. Mas, afinal, o que são ontologias? As ontologias são um modelo de dados que representa um conjunto de conceitos dentro de um domínio e os relacionamentos entre si.

 

No fundo, podemos caraterizá-las como sendo uma técnica de organização de informações, principalmente no que diz respeito à representação formal de conhecimento [1].

 

São, geralmente, criadas por especialistas e, sendo a sua estrutura baseada na descrição de conceitos e dos relacionamentos semânticos entre eles, permitem gerar uma especificação formal e explícita de uma conceptualização compartilhada. E porque é que se têm tornado tão importantes? Como bem sabemos, o volume de dados com que lidamos atualmente – na internet e, sobretudo, a nível organizacional – é muito vasto e diversificado, e a tendência é que se torne cada vez maior. Devido a estas elevadas taxas de crescimento tornou-se necessária a utilização de técnicas que permitam um melhor e mais eficaz tratamento e organização dos dados, atuando principalmente na sua seleção, processamento, recuperação e disseminação – as ontologias. As ontologias podem ser definidas através da criação de catálogos de terminologias, glossários ou dicionários, por classificação ou categorização através de taxonomias ou a partir de conceitos e respetivos relacionamentos, com grande foco na utilização de redes semânticas [2]. Da utilização de ontologias resulta uma unificação da linguagem ou terminologias utilizadas de modo a garantir uma melhor perceção e modelação do ecossistema em questão.

A utilização de ontologias tem como principais vantagens a possibilidade de comunicação entre diferentes tipos de máquinas, criando uma rede interoperável acerca de um determinado conhecimento; e a formalização, que está relacionada com a especificação da ontologia, permitindo a eliminação de contradições e inconsistências na representação do conhecimento. Ao nível da representação de conhecimento, as ontologias formam um vocabulário consensual que permite representar conhecimento de um domínio específico num alto nível de abstração garantindo, desta forma, um potencial de reutilização. Por outro lado, o problema mais comum que costuma surgir é: “qual a metodologia mais correta a utilizar?” Tal como no desenvolvimento de software, no desenho de ontologias também existem várias metodologias associadas, umas mais tradicionais e mais exaustivas e outras mais recentes que têm uma base agile. Temos vindo a desenvolver a nossa própria metodologia e a implementá-la nos projetos CCG, com aplicabilidade nas demais áreas e setores da indústria, sendo esta uma metodologia flexível e ajustável, tendo em consideração a especificidade de cada projeto.

 

2. Aplicabilidade e implementação

Há quem defenda que as ontologias são fundamentalmente utilizadas ao nível de projetos de domínios como gestão do conhecimento, vendas online e até mesmo processamento de linguagens naturais [3]. No entanto, considero que uma componente ontológica pode ser aplicada a uma vasta área e diferentes tipologias de projetos. Exemplo disso é o trabalho que temos vindo a desenvolver em inúmeros projetos de diferentes setores, como a indústria têxtil ou a indústria farmacêutica, tendo como finalidade garantir e dotar as empresas de uma melhor interoperabilidade*, entre os sistemas de informação existentes. Deste modo trabalhamos, sobretudo, ao nível da interoperabilidade semântica** como forma de proporcionar a interoperabilidade aplicacional*** que é o desejo da maioria das empresas.

 

Em suma, a aplicabilidade das ontologias tem como objetivo fulcral resolver problemas ao nível da interoperabilidade nas empresas.

 

Relativamente à implementação de uma componente ontológica nas empresas, esta está sempre sujeita ao ecossistema, isto é, ao contexto em que a empresa se insere. É precisamente por isto que, num primeiro momento, é necessário identificar e analisar o contexto organizacional, bem como o setor de atividade em que a empresa opera. Após termos este detalhe de análise devemos focar-nos na análise dos processos internos da empresa, documentar as atividades e tarefas realizadas em cada um dos departamentos e os atores que realizam essas mesmas ações. Nesta fase falamos, sobretudo, de modelações de casos de uso em UML (Unified Modeling Language – linguagem Standard em Engenharia de Software) uma vez que são estas modelações que nos permitem observar o tecido organizacional no seu todo e, conjuntamente com a empresa, decidir qual a área, ou as áreas, alvo da implementação ontológica.

Depois de este passo estar bem estruturado devemos estudar a existência de algum modelo de dados ou arquitetura de referência para o domínio em estudo. Caso exista, procede-se à sua análise e detalhe, bem como a construção de cenários como forma de validar se a camada ontológica do modelo dá resposta às áreas de intervenção do projeto. Caso não exista um modelo de referência, ou o cliente pretenda algo muito específico aplicado ao seu caso concreto, avançamos com a definição de um modelo de dados focado especificamente no projeto e no cliente. Em ambas as hipóteses, partindo do modelo de dados, definimos o schema da base de dados ontológica e passamos a alimentá-la de acordo com as especificações e terminologias do cliente. No final procedemos à integração desta base de dados ontológica numa ferramenta de visualização onde o cliente possa aplicar filtros, editar a base de dados ou incrementar novas terminologias e relações de uma forma mais user-friendly (ver figura 1).

Figura 1 – Processo Utilizado no Desenho de Ontologias. CCG

 

3. Ontologias como solução de problemas

Como já referido anteriormente, a principal problemática que as ontologias vêm resolver estão relacionadas com a falta de interoperabilidade que muitas empresas ainda enfrentam. Dentro das organizações, os sistemas de informação compreendem todos os fluxos de informação entre pessoas, processos e máquinas, inclusive em papel e comunicações orais, constituindo um sistema organizado de recolha, organização, armazenamento e comunicação de informação. Devido a todos estes fluxos de informação é fundamental que exista uma maneira de uniformizar a forma como tratamos um domínio dentro da organização. E é aqui que começam a surgir alguns entraves ao processo. Para que tudo isto funcione adequadamente é necessária a existência de um ecossistema empresarial uniforme e coerente ao nível dos dados e das suas aplicações, mas em alguns casos deparamo-nos com dados não estruturados, com aplicações que operam isoladamente e, também, com o excessivo uso de papel.

 

Então se queremos uma empresa com um sistema interoperável primeiro temos de dotá-la dos meios e processos necessários, efetuar um levantamento das aplicações informáticas existentes e das terminologias utilizadas para que possamos proceder à sua uniformização através de um catálogo de sinónimos. É, precisamente, aqui que as ontologias atuam como solução de problemas.

 

3.1. Cenário

Vamos imaginar que, hipoteticamente, a empresa X – que opera no ramo têxtil – está a crescer exponencialmente e sente a necessidade de se tornar mais eficiente no que toca aos seus processos e mais desenvolvida em termos tecnológicos. Após uma fase de levantamento de requisitos deparámo-nos com a seguinte realidade: a empresa possui dois software distintos – um para gestão de encomendas, stock, ordens de compra, etc. e, outro, para tudo o que é faturação, e que ambos não comunicam entre si. Verificamos, também, que os operários da empresa ainda utilizam vários documentos importantes em suporte papel e que usam diferentes termos para descrever o mesmo propósito. Se se optasse por implementar uma componente ontológica na empresa X, esta iria passar a ter um catálogo de terminologias único que continha uma lista de sinónimos mapeados na ontologia. Desta forma, terminologias como “ordem de compra” e “purchase order” que são exatamente a mesma coisa passariam a estar relacionados no mapeamento ontológico, garantindo que cada inserção ou consulta feita no software de gestão retorne os mesmos dados independentemente de se pesquisar de uma maneira ou de outra. Isto eliminaria a restrição dos colaboradores de terem de pesquisar apenas por um único termo, agilizando o seu trabalho. Por outro lado, a empresa X poderia começar a interoperar os seus diferentes software de maneira a que interpretassem os dados da componente ontológica uniformemente e que comunicassem entre si. Desta forma, eram eliminados os constrangimentos dos colaboradores da parte financeira no que toca à transcrição manual, por exemplo, dos valores de uma ordem de compra inseridos no software de gestão para o software de faturação para que possam, efetivamente, faturá-la (ver figura 2).

 

Figura 2 – CCG.  Mapeamento Ontológico em Neo4J

 

4. O futuro passa pelas ontologias?

As ontologias não são propriamente recentes.  Contudo atualmente as empresas estão a reconhecer a importância da implementação das componentes ontológicas. O facto de prometerem a partilha e entendimento comum de algum domínio de conhecimento que possa ser comunicado através da interação homem-máquina, isto é, de facilitarem a partilha, a interpretação e a reutilização de informações, e a uniformização na forma de se tratar esse mesmo domínio dentro de uma organização são vantagens que cada vez mais as empresas procuram, de maneira a torná-las mais eficientes e tecnologicamente mais desenvolvidas. Acredito, por isso, que o futuro passa, efetivamente, pelas ontologias a nível organizacional e não só. Acredito, também, que num futuro próximo toda a rede de internet disponibilizará um catálogo de dados semânticos das suas páginas através de uma ontologia, uma vez que estas fornecem uma “Língua Universal”, ou seja, um dicionário que permite que máquinas processem e integrem recursos de Internet de forma inteligente. Isto possibilitará pesquisas mais concretas, focadas e rápidas, facilitando a comunicação entre diferentes tipos de dispositivos.


 

* Interoperabilidade: A interoperabilidade é a capacidade de organizações díspares e diversas de interagir em prol de objetivos comuns envolvendo o compartilhamento de informações e conhecimento. A interoperabilidade entre componentes de sistemas em grande escala é a capacidade de trocar serviços e dados entre si. É baseado em pedidos e respostas, como  por exemplo protocolos de trocas de mensagens, nomes de procedimentos, códigos de erro, entre outros [4].

** Interoperabilidade semântica: Interoperabilidade semântica é a capacidade de diferentes entidades de compreender o significado das mensagens trocadas. Existem alguns exemplos de questões semânticas, ou seja, nomenclaturas, escalas e unidades utilizadas, divergência de conceitos semelhantes, diferentes domínios de conhecimento e integridade de dados ao nível do software utilizado [5].

*** Interoperabilidade aplicacional: A Interoperabilidade aplicacional define as ferramentas, tecnologias e procedimentos associados à troca de informações num ambiente de sistemas distribuídos, com vários acessos distintos. Este tipo de interoperabilidade lida com comunicações de aplicações para aplicações através de serviços externos (por exemplo, serviços de middleware) [6].


 

Referências Bibliográficas

[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].

 


Tiago Pereira

Tiago Pereira integra a equipa do Grupo EPMQ-IT do CCG, na área de análise de sistemas. Realizou mestrado em Engenharia e Gestão de Sistemas de Informação na UMinho e atualmente é doutorando em tecnologias e sistemas de informação. Participa em projetos de I&DT, sendo as suas áreas de conhecimento a análise de negócios, levantamento e negociação de requisitos e desenvolvimento de ontologias utilizando técnicas diferenciadas e inovadoras.

 

 

 


Através do seu Domínio de Investigação Aplicada EPMQ (“IT Engineering Process Maturity and Quality”), o CCG desenvolve soluções para mercado sobretudo relacionadas com Engenharia de Sistemas de Informação, Gestão e Desenvolvimento de Processos/ gestão de projetos; arquiteturas de interoperabilidade; Arquiteturas ontológicas/ontologias; Cloud Computing / Blockchain; Sistemas de suporte à decisão; Big Data; Data Analytics; Machine Learning.