• Nenhum resultado encontrado

VI. Lista de siglas

6 Arquitetura proposta

6.3 Arquitetura de solução

6.3.4 Solução de análise de metadados como ontologia

6.3.4.2 Arquitetura aplicacional

Pelo facto de ser necessário guardar ontologias em base de dados Apache TDB, preparar a ontologia carregando ficheiros OWL, DDL e Microsoft Excel, guardar configurações para cada entidade com uma ontologia, além de analisar e guardar expressões por utilizador, considerou-se um conjunto de funcionalidades a seguir descritas na Figura 6.16 ao nível de estruturas de classes Java criados e com descrições de funcionalidades na Tabela 6.5, agrupadas por níveis de funcionalidades.

121

Figura 6.16: Arquitetura aplicacional metadados como ontologia

De acordo com a Figura 6.16, a solução está organizada nos seguintes packages java: • PresentationLayer: classes com métodos específicos para criar interação com utilizador

utilizando Java Swing. Todas a classes passam como parâmetro a classe ConfigurationEntity que tem o contexto da navegação com informação da entidade em tratamento e expressão em análise;

• DataLayer: classes para cada tipo de dados (Microsoft Excel, CSV, XML e Microsoft SQLServer) com métodos específicos para ler e escrever;

• RulesJENA: classe com métodos específicos para criar modelos, ler modelos diretamente, gerar inferência, ler modelos via SPARQL, gravar modelos em Apache TDB e ler modelos de Apache TDB;

RulesNLP: classe com métodos específicos para separar frases num texto (SentenceDetector), separar palavras numa frase (tokenizer) e análise sintática e semântica de palavras (parte-of-speech, parsing).

Além da base de dados Apache TDB com o modelo de ontologia gravado, a aplicação utiliza ainda 2 tipos de ficheiros de texto:

• Configuracoes: mantém informação sobre cada entidade, descrição, data, servidor, base de dados, user/password de acesso a base de dados e ficheiro de expressões a utilizar onde são guardadas as expressões por opção do utilizador;

122

• <empresa>Expressoes: mantém informação sobre cada expressão que o utilizador queira guardar para reutilização, com dados sobre expressão, data, dono e descrição. Empresa é substituído com a entidade em causa.

Nas classes acima referidas, são implementados vários métodos específicos para tratamento de dados tal como apresentados na Tabela 6.5:

Função Comportamento Motivação

Acesso a dados. Conjunto de classes com métodos específicos para acesso a dados em XML, CSV, Microsoft Excel e Microsoft SQLServer.

Isolar métodos que podem ser reutilizados.

Regras Jena. Conjunto de métodos que permitem ler ficheiros OWL para o modelo, carregar o modelo OWL a partir de CSV, carregar o modelo a partir de DDL, gerar inferência e pesquisar o modelo OWL, além de métodos para gravar e ler em base de dados Apache TDB.

Isolar métodos de manipulação de estruturas OWL e regras de negócio.

Regras NLP. Conjunto de métodos que permitem separar frases (SentenceDetector), separar palavras (Tokenizer) e analisar sintaticamente as palavras na frase (Parte-of-

speech).

Isolar métodos de manipulação de estruturas NLP e regras de negócio.

Tabela 6.5: Classes Java de acesso a dados

No caso da camada de apresentação para exploração de dados utilizando Java Swing, foram implementadas as classes apresentadas na Tabela 6.6:

Função Comportamento Motivação

Guardar e ler ontologia (GUIOntology_save/load).

Gravar e ler em base de dados Apache TDB a ontologia OWL criada, associado metadados específicos da mesma.

Permitir reutilização à posteriori.

Guardar e ler configurações (GUIConfiguration_save/load).

Gravar em ficheiro de configuração por entidade, a informação sobre a entidade ao nível de servidor de base de dados de business

intelligence e ficheiro a utilizar para guardar

expressões analisadas.

Permitir que a experimentação seja multiempresa.

Integrar os vários modelos que compõem a ontologia (GUIPreparation_load/process).

Permitir ler ficheiro OWL, Microsoft Excel, DDL, com modelos complementares de conceitos para a ontologia. Com base na ontologia criada, permitir gerar classificações de métricas e dimensões utilizando inferência.

Separar o processo de carregamento de conceitos do processamento (utilizando inferência).

Analisar e guardar expressões (GUIDiscover_save/load).

Permitir analisar expressões, guardar e recuperar expressões, por utilizador.

Permitir reutilizar as mesmas expressões pelo utilizador.

123

No caso de gravar e ler ontologia, apresentado na Figura 6.17, identifica-se primeiro a entidade em causa, e no caso gravar, detalha-se as suas características.

Figura 6.17:Gravar e ler ontologia

No caso de gravar e ler configurações da entidade, apresentado na Figura 6.18, seleciona- se a entidade em causa no caso de ler configurações, ou detalha-se as configurações para a entidade específica.

124

Para se integrar e processar a ontologia, tal como apresentado na Figura 6.19, indica-se o tipo de conceitos a integrar, sendo que se deve utilizar a sequência “Arquitetura Empresarial ArchiMate”, “DDL” e “Glossário”, para se carregar a ontologia OWL. De seguida, pode-se efetuar o processamento, que por via de inferência gera as classificações em termos de dimensões, métricas, domínios de informação e itens de glossário.

Figura 6.19: Interpretar e processar ontologia

Para se analisar as expressões, tal como apresentado na Figura 6.20, indica-se a expressão, a partir do qual se aplica o NLP Sentence Detector para separar o caso de ser indicada mais do que uma frase, separada por “.”, seguido de NLP Tokenizer e NLP Parte-Of-Speech, para obter e classificar as palavras na primeira fase, a partir da qual se utiliza SPARQL para se identificar o que são métricas, dimensões, domínios e restrições. Para cada conceito é apresentada a sua estrutura (conceito, tipo BI, conceito AE, campo e tabela base de dados) e ao selecionar um conceito é apresentada a semântica (relação, tipo relação, com quem se relaciona e classe do destino da relação). Como resultado, mostra-se a estrutura e semântica de cada conceito na expressão, além de se mostrar a estrutura de SQL DML associado à expressão mas sem instânciar tabelas e campos, mantendo somente os conceitos numa estrutura SQL. As expressões podem ser gravadas, para posterior utilização, tal como apresentado na Figura 6.21.

125

Figura 6.20: Análise de expressões de informação de gestão

126