• Nenhum resultado encontrado

O uso de ontologia combinada com banco de dados orientado a grafo para rastreabilidade de um sistema de coleta de dados

N/A
N/A
Protected

Academic year: 2021

Share "O uso de ontologia combinada com banco de dados orientado a grafo para rastreabilidade de um sistema de coleta de dados"

Copied!
75
0
0

Texto

(1)

UNIVERSIDADE DO SUL DE SANTA CATARINA NATHANI GÖEDERT

O USO DE ONTOLOGIA COMBINADA COM BANCO DE DADOS ORIENTADO A GRAFO PARA RASTREABILIDADE DE UM SISTEMA DE COLETA DE DADOS

Florianópolis 2016

(2)

NATHANI GÖEDERT

O USO DE ONTOLOGIA COMBINADA COM BANCO DE DADOS ORIENTADO A GRAFO PARA RASTREABILIDADE DE UM SISTEMA DE COLETA DE DADOS

Trabalho de Conclusão de Curso apresentado ao Curso de Graduação em Sistemas de Informação da Universidade do Sul de Santa Catarina, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação.

Orientador: Prof. Flávio Ceci, Dr.

Florianópolis 2016

(3)

NATHANI GÖEDERT

O USO DE ONTOLOGIA COMBINADA COM BANCO DE DADOS ORIENTADO À GRAFO PARA RASTREABILIDADE DE UM SISTEMA DE COLETA DE DADOS

Este Trabalho de Conclusão de Curso foi julgado adequado à obtenção do título de Bacharel em Sistemas de Informação e aprovado em sua forma final pelo Curso de Graduação em Sistemas de Informação da Universidade do Sul de Santa Catarina.

Florianópolis, 18 de Novembro de 2016.

______________________________________________________ Professor e orientador Flávio Ceci, Dr.

Universidade do Sul de Santa Catarina

______________________________________________________ Professor Aran Bey Morales, Dr.

Universidade do Sul de Santa Catarina

______________________________________________________ Guilherme Alvarez, Bsc.

(4)

Dedico este trabalho a minha avó, Solange Göedert, que nunca deixou de acreditar em minha capacidade e por sempre ser a maior incentivadora à minha formação acadêmica. Essa conquista é para você, vó!

(5)

AGRADECIMENTOS

No decorrer do desenvolvimento deste trabalho, tive o privilégio de ter a participação direta e indireta de pessoas muito importantes em minha vida. Gostaria então de agradecê-las.

Primeiramente, agradeço a Deus e a minha família - minha mãe, meus irmãos e minha avó - que sempre estiveram ao meu lado, oferecendo apoio e carinho nos momentos em que mais precisei.

À minha noiva Thais, que sempre esteve do meu lado, mesmo quando eu estava em momentos de alto estresse. Não tenho palavras para descrever o quanto sou grata por sua compreensão, carinho e amor neste momento. Te amo.

Aos meus tios Nilson e Altanir que tornaram esse sonho possível. Não tenho palavras para agradecê-los.

Aos meus sogros, José Theodosio e Andrea, pelo apoio e pelo carinho. Por sempre me ouvirem com tanta paciência e comemorar comigo a cada conquista, me acolhendo como sua filha.

Aos meus cunhados pela atenção e compreensão nos meus momentos de concentração.

Ao meu grande orientador, Dr. Flávio Ceci, que não mediu esforços nesse longo ano. Sempre me ajudando com imensa paciência e compreensão, respondendo a dúvidas e me tranquilizando nos momentos de preocupação. E agradeço, principalmente, por dividir comigo todo o seu conhecimento.

Aos meus amigos, que entenderam e apoiaram o momento que eu estava passando com muita paciência. Em especial, agradeço meu amigo Michel, por toda sua atenção, ajuda profissional e pessoal em toda essa caminhada. Obrigada por sempre estar pronto para me ajudar e por ter sido o grande idealizador e motivador do tema deste trabalho.

Aos meus professores do curso de Sistemas de informação da Universidade do Sul de Santa Catarina, por todo o conhecimento compartilhado, deixo o meu muito obrigada.

(6)
(7)

"O sucesso nasce do querer, da determinação e persistência em se chegar a um objetivo. Mesmo não atingindo o alvo, quem busca e vence obstáculos, no mínimo fará coisas

(8)

RESUMO

Com o aumento da concorrência e diminuição da oferta, a necessidade de ferramentas inovadoras para se destacar das demais empresas é crescente em todos os ramos da economia. Considerando isso, é necessário coletar a grande quantidade de dados disponibilizadas na web para criação de modelos de inteligência de mercado. Como esses dados surgem de fontes numerosas, com diversos tipos de informações, precisam ser organizadas e armazenadas de forma simples e clara. Tendo como base essa necessidade, este trabalho tem o objetivo de desenvolver um modelo ontológico para construção da rastreabilidade de um sistema de coleta de dados, utilizando um banco de dados orientado a grafos. Para demonstrar isso, foi desenvolvido um experimento a fim de mostrar a utilização das ferramentas no dia a dia de uma organização com essa demanda. Buscando analisar os resultados, foi realizada uma avaliação com membros que utilizariam a ferramenta. Os resultados foram extremamente satisfatórios demonstrando a importância do tema.

(9)

ABSTRACT

With increasing competition and decreasing supply, the need for innovative tools to stand out from other companies is growing in all sectors of the economy. Considering this, it is necessary to collect a lot of information available on the web to create market intelligence models. As these data come from numerous sources, with different types of information need to be organized and stored in a simple and clear manner. Based on this need, this paper aims to develop an ontological model for building the traceability of a data collection system using a database-driven graphs. To demonstrate this, an experiment was conducted to show the use of the tools on the day of an organization with this demand. Seeking to analyze the results, an assessment with members who would use the tool was held. The results were extremely satisfactory demonstrating the importance of the issue.

(10)

LISTA DE ILUSTRAÇÕES

Figura 1 – Grafo Simples ... 19

Figura 2 – Cidade de Königsberg, com as sete pontes. ... 20

Figura 3 – Espaço dos bancos orientados a grafo. ... 25

Figura 4 – Fluxograma das Etapas do Projeto ... 33

Figura 5 – Desenho da Solução do Projeto... 34

Figura 6 – Ferramentas ... 36

Figura 7 – Estrutura Atual ... 39

Figura 8 – Criação das classes. ... 44

Figura 9 – Criação das propriedades. ... 45

Figura 10 – Criação dos atributos e definição de tipos... 46

Figura 11 – Versão final da ontologia no software protégé. ... 48

Figura 12 – Versão final da ontologia com relacionamentos e atributos. ... 49

Figura 13 – Criação de classe utilizando a interface do OrientDB. ... 50

Figura 14 – Cadastro dos ambientes. ... 51

Figura 15 – Cadastro dos atributos ... 52

Figura 16 – Dados cadastrados. ... 53

Figura 17 – Caminho percorrido pelo atributo cd_cnpj desde a sua captura. ... 54

Figura 18 – Quais atributos pertencem ao domínio alfa_num_comercial. ... 55

Figura 19 – Quais atributos derivam da fonte ANTT. ... 56

Figura 20 – Quais atributos existem no ambiente replica. ... 57

Figura 21 - Diagrama da Avaliação ... 58

Figura 22 - Questionário ... 61 Figura 23 - Questão 1 ... 62 Figura 24 - Questão 2 ... 63 Figura 25 - Questão 3 ... 64 Figura 26 - Questão 4 ... 64 Figura 27 - Questão 5 ... 65 Figura 28 – Questão 6 ... 66

(11)

SUMÁRIO 1 INTRODUÇÃO ... 13 1.1 PROBLEMA DE PESQUISA ...14 1.2 OBJETIVOS ...15 1.2.1 Objetivo Geral ...15 1.2.2 Objetivos Específicos ...16 1.3 JUSTIFICATIVA ...16 1.4 ESTRUTURA DO TRABALHO ...17 2 REFERENCIAL BIBLIOGRÁFICO ... 18 2.1 GRAFOS ...18 2.1.1 Histórico ...19 2.1.2 Teoria de Grafos ...20

2.1.3 Algoritmos de Caminho Mínimo ...22

2.1.3.1 Algoritmo de Busca em Profundidade ... 22

2.1.3.2 Algoritmo de Busca em Largura ... 23

2.2 BANCO DE DADOS ORIENTADO A GRAFOS ...23

2.2.1 Definições ...24 2.2.2 Ferramentas ...24 2.2.2.1 Neo4j ... 25 2.2.2.2 Titan ... 26 2.2.2.3 FlockDB ... 26 2.2.2.4 AllegroGraph ... 26 2.2.2.5 OrientDB ... 27 2.3 ONTOLOGIA ...27 2.3.1 Histórico Geral ...27 2.3.2 Definição ...28 2.3.3 Aplicações ...29 3 MÉTODO ... 31

3.1 CARACTERIZAÇÃO DO TIPO DE PESQUISA ...31

3.2 ETAPAS METODOLÓGICAS ...32 3.3 DESENHO DA SOLUÇÃO ...33 3.4 DELIMITAÇÕES ...35 4 EXPERIMENTO... 36 4.1 FERRAMENTAS ...36 4.1.1 OrientDB ...37 4.1.2 Protégé ...37 4.2 CENÁRIO ...38 4.3 MODELAGEM DE DOMÍNIO ...40 4.3.1 Method 101 ...41 4.3.2 Etapas ...41

4.3.2.1 Etapa 1 – Determinar o domínio e o escopo da ontologia ... 41

4.3.2.2 Etapa 2 – Considerar a reutilização de ontologias existentes... 42

(12)

4.3.2.4 Etapa 4 – Definir as classes e hierarquia de classes ... 42

4.3.2.5 Etapa 5 – Defina as propriedades de classes de slots ... 42

4.3.2.6 Etapa 6 – Definir os tipos dos atributos ... 43

4.3.3 Desenvolvimento ...44

4.4 EXECUÇÃO ...49

4.5 AVALIAÇÃO ...57

4.5.1 Definição do Cenário da Avaliação ...59

4.5.2 Elaboração do Questionário ...59

4.5.3 Aplicação do Questionário ...60

4.5.4 Análise dos Resultados ...60

4.5.5 Conclusão da Avaliação ...67

5 CONCLUSÕES E TRABALHOS FUTUROS ... 67

5.1 CONCLUSÕES ...67

5.2 TRABALHOS FUTUROS ...68

REFERÊNCIAS ... 70

(13)

1 INTRODUÇÃO

Com o aumento da concorrência e a diminuição da oferta, o nível de exigência do mercado cresce a cada ano. A necessidade de técnicas e ferramentas inovadoras para se destacar entre as demais empresas é crescente em todos os ramos da economia. Por consequência, a expectativa e exigência nos sistemas computacionais estão ainda mais elevadas.

Nas últimas décadas, as tecnologias web foram nascendo e se desenvolvendo de forma inesperada. Com todo esse avanço, a disponibilização e publicação de dados foi se tornando cada vez mais frequente e necessária, resultando em uma quantidade massiva dos mesmos. Paralelo a esse crescimento, a área da gestão do conhecimento foi se apoderando rapidamente da tecnologia como ferramenta fundamental na extração de dados em mídias eletrônicas, processamento, organização e produção de modelos inteligentes que aumentam as vantagens e opções de quem os utilizam.

Esses documentos, quando produzidos dentro do contexto organizacional, apresentam informações para mapear o seu domínio, de modo a compor bases de conhecimento que posteriormente possam auxiliar na tomada de decisão bem como subsidiar sistemas baseados em conhecimento (CECI, 2015, p. 23).

Dentro desse cenário, destaca-se a empresa na qual a autora trabalha atualmente. Seus principais produtos são soluções de inteligência de mercado criadas a partir de uma grande plataforma de Big Data, provida desses dados capturadas na web.

Esses dados vêm de fontes numerosas e repletas de atributos distintos, dificultando sua rastreabilidade e, para que se saiba exatamente os tipos de dados a serem ofertados, é necessário que haja uma organização. Esse tipo de trabalho carece de modelos diferentes dos relacionais, pois ocorrem muitas mudanças durante seu desenvolvimento e atualização. Um banco de dados relacional é um banco de dados que tem um conjunto de tabelas de itens de dados, tudo é formalmente descrito e organizado de acordo com um modelo relacional (JAISWAL, AGRAWAL, 2013, tradução nossa). Para essa situação, destacam-se as bases de dados orientadas a grafos. Com seu ótimo desempenho e estrutura flexível, é capaz de suprir a necessidade apresentada.

A grande dificuldade nos grafos são suas modelagens, que se tornam por vezes muito complexas. Este trabalho propõe a utilização dos modelos ontológicos para a modelagem dos dados e as bases de dados orientadas a grafos para seu armazenamento.

(14)

1.1 PROBLEMA DE PESQUISA

As pesquisas de mercado existem desde quando o homem ainda sobrevivia através das trocas. Sempre foi necessário saber o melhor a se comprar, investir, inovar ou desqualificar. Com o crescimento e a mudança do mercado, tornou-se necessário entendê-lo, ampliar o conhecimento, aprofundar a percepção e identificar as tendências. E assim, tornar possível a tomada de decisões complexas, que se tornou crucial, dentro de uma empesa.

É importante observar que existem muitas informações e conhecimentos da organização presentes de maneira não-estruturada e fora do seu domínio, como, por exemplo, na Internet, mais especificamente, nas mídias sociais em geral. Essas informações podem apresentar opiniões sobre produtos ou serviços oferecidos pelas organizações (CECI, 2015).

Para que ocorra essa análise de forma simples e confiável, são necessárias informações concretas, retiradas de fontes seguras e moldadas conforme a necessidade dos diferentes setores (verticais). Dessa necessidade, surgiram os sistemas de coletas de dados. Esses sistemas buscam e capturam, em fontes públicas, informações relevantes, capazes de ajudar em determinadas áreas de negócios e, através de seus resultados, facilitam na definição das escolhas. São também conhecidos como web crawler.

Segundo Rouse (2005, tradução nossa), um crawler é um programa que visita sites e lê suas páginas e outras informações, a fim de criar entradas para um índice de motor de busca. Com a grande quantidade de tipos de dados capturados de diferentes fontes, para diferentes verticais, abrangências, é indispensável a existência de uma rastreabilidade desta informação. É preciso saber qual o caminho percorrido por um determinado atributo (qual seu nome inicial, seu nome final, quais os tipos de tratamento e normalizações aplicados a ele. Qual seu custo de captura, responsável por seu monitoramento, preço de venda, cliente que o utiliza, etc.).

Como se tem muitas informações ligadas a um mesmo atributo, é preciso visualizá-las de forma clara e simples. Por exemplo, ao encontrar um erro em determinado atributo, é preciso saber de onde ele vem, qual seu responsável, quais transformações sofreu em seu caminho e como era seu nome inicial para identificar o possível problema. Existem então, diferentes ligações (relacionamentos) envolvendo o mesmo.

Outro ponto a se observar é que devido a constante alteração nas fontes de captura, surgem frequentemente novos dados que podem ser capturadas e agregadas as informações

(15)

atuais. Sendo necessário assim, um modelo cujo o esquema seja flexível. Tornando possível adicionar novos relacionamentos de forma simples e fácil.

Como essas informações não estão concentradas em um só lugar ou em apenas uma ferramenta atualmente, é difícil mantê-las atualizadas e disponíveis. Outra dificuldade encontrada é que conforme as mudanças vão ocorrendo, fica cada vez mais difícil manter todos os profissionais capacitados e com conhecimento de todas as características de cada uma dessas fontes, tornando o processo lento e a mão de obra cara.

Na estrutura atual, os dados capturados, são armazenadas em bancos de dados relacionais. Este tipo de ferramenta, não possui flexibilidade e torna difícil a inserção de novas informações. Além disso, o tipo de consulta para a busca da rastreabilidade de um determinado atributo é feito de forma recursiva.

O que nos deixa a seguinte questão: Qual a base de dados mais adequada para a rastreabilidade de um sistema de captura de dados?

1.2 OBJETIVOS

Esta seção é reservada a apresentar o objetivo geral deste trabalho e seus objetivos específicos.

1.2.1 Objetivo Geral

Estabelecer uma proposta de armazenamento de dados para facilitar o gerenciamento das rotas utilizadas por um sistema de coleta de dados na web.

(16)

1.2.2 Objetivos Específicos

Os objetivos específicos são:

 Identificar os dados necessários para a definição da rastreabilidade de um sistema de coleta da web;

 Elaborar uma ontologia para facilitar a modelagem do domínio de aplicação;  Propor um modelo de dados em grafo baseado na ontologia de domínio;  Estabelecer um experimento para atestar a viabilidade da proposta de solução;  Avaliar os resultados obtidos juntamente com a empresa do experimento.

1.3 JUSTIFICATIVA

O mapeamento das rotas de um sistema de coleta de dados é baseado em uma modelagem que sofre constantes mudanças. Na inserção de uma nova fonte, surgem novos relacionamentos, novos objetos e novos atributos. Desta forma, é necessário que a ferramenta escolhida para esse tipo de armazenamento seja completa, e principalmente, flexível.

Segundo Robinson, Webber e Eifrem (2013, p. 8, tradução nossa) “grafos são naturalmente aditivos, ou seja, podem receber novos relacionamentos, novos nós, sem alterar as estruturas já existentes. Com essa flexibilidade dos modelos de grafos, não é necessário modelar detalhadamente os domínios antes de iniciar”.

Além de atender à necessidade levando em conta o tipo de estrutura, os bancos de dados orientados a grafo, mostram de uma forma mais simples e completa os relacionamentos existentes entre seus elementos. Com seus nós e relacionamentos, combinados com as interfaces disponíveis para visualização existentes atualmente, os resultados são apresentados de forma mais amigável e agradável.

Muitas vezes é necessário relacionar conceitos utilizando relacionamentos do tipo parte-de membro-conjunto, fase-processo, lugar-região, material-objeto, causa-efeito, entre muitos outros. Um tesauro não permite a seus usuários a criação destes e novos tipos de relacionamento, para tal é necessário utilizar uma ontologia. (BREITMAN, 2005, p. 37).

(17)

Um problema comum na utilização de bancos orientados a grafo está na modelagem da estrutura de dados em questão, de modo que seja possível representar elementos de domínio no mesmo. As ontologias são representações formais de conceitos e definições compartilhadas sobre um domínio de conhecimento (CECI, 2015; ALVAREZ; CECI, 2015)

Utilizar uma base de dados orientada a grafos combinada com os modelos ontológicos, se encaixa perfeitamente à necessidade de modelar e armazenar as rotas de um sistema de coleta de dados.

1.4 ESTRUTURA DO TRABALHO

Este trabalho tem a seguinte estrutura: seu primeiro capítulo apresenta uma introdução ao assunto juntamente com o problema de pesquisa, objetivo geral, objetivos específicos e a justificativa.

O segundo capítulo apresenta o referencial bibliográfico para explicar os principais temas deste trabalho que são: grafos, ontologia, modelos ontológicos, modelos de dados orientados a grafos.

No terceiro capitulo o foco é demonstrar o método de desenvolvimento da pesquisa e seu desenvolvimento.

O capitulo quatro, apresenta a modelagem ontológica e a modelagem orientada a grafos e suas ferramentas, e um experimento, mostrando a aplicação destes modelos no dia a dia de uma empresa.

(18)

2 REFERENCIAL BIBLIOGRÁFICO

Este capitulo tem como objetivo descrever os principais elementos para o melhor entendimento do trabalho. Primeiramente, são abordados conceitos de grafos: definição geral, referencial histórico, teoria de grafos e aplicações de grafos. Em seguida, aborda-se informações relevantes sobre bancos de dados orientados a grafos como: definições, primeira e segunda geração, ferramentas disponíveis e o OrientDB. Para concluir, são mostrados os conceitos de ontologia como: histórico geral, definição, estrutura e aplicações.

2.1 GRAFOS

Um grafo é apenas uma coleção de vértices e arestas, ou, em linguagem menos intimidante, um conjunto de nós e relações que se conectam. Em grafos os nós representam as entidades e as maneiras como as entidades se relacionam são os relacionamentos. A estrutura permite modelar todos os tipos de cenários, desde a construção de um foguete, a um sistema de estradas, e da cadeia de fornecimento ou proveniência dos alimentos, a história médica para as populações, e mais além. (ROBINSON; WEBBER; EIFREM, 2013, p.1, tradução nossa).

Os grafos são estruturas de dados dotadas de um poder tão expressivo que tornam sua utilização rentável nas áreas mais díspares. Ao atribuir um significado adequado para nós e relacionamentos de um grafo, é possível alcançar representações completas e unívoca, de interesse dentro de muitos domínios de aplicação. (FOGGIA; SANSOME; VENTO, 2001, p.1, tradução nossa).

Segundo Wilson (1998, p. 8, tradução nossa), um grafo simples G consiste de um não vazio conjunto finito V (G) de elementos chamadas vértices (ou nós), e um conjunto finito de E (G) de pares não ordenadas distintos de elementos distintos de V (G) chamadas arestas. Chama-se V (G) o conjunto de vértices e E (G) o conjunto de arestas de G. Uma aresta {v, w} é dito para se juntar aos vértices V e W, e é normalmente abreviado para vw. Por exemplo, a Fig. 1 representa o grafo simples G cujo vértice conjunto V (G) é {w, v, w, z}, e cujas conjunto de arestas E (G) consiste nas arestas uv, uw, vw e wz.

(19)

Figura 1 – Grafo Simples

Fonte: Smith e Martins (2009, p.5)

Os grafos são extremamente úteis na compreensão de uma grande diversidade de conjuntos de dados em campos como a ciência, governo e negócios. O mundo real ao contrário do modelo com base em formulários por trás do banco de dados relacional é rico em relacionamentos. Uma vez que entendemos grafos, começamos a vê-los em todos os tipos de lugares. (ROBINSON; WEBBER; EIFREM, 2013, p.1, tradução nossa).

2.1.1 Histórico

O estudo dos grafos tem uma longa história em matemática e ciências. Em 1736, o grande matemático Leonard Euler tornou-se interessado em um enigma matemático chamado de o problema das pontes de Königsberg. A cidade de Königsberg, foi construída nas margens do rio Pregel em que era então Prússia, e em duas ilhas que ficam no meio do caminho. Sete pontes ligadas as massas de terra (Figura 2). Um quebra-cabeças popular da época perguntou: "Será que não existe qualquer caminho único que atravessa todas as sete pontes apenas uma vez cada um?". (NEWMAN, BARABÁSI E WATTS, 2006 ,p.2 tradução nossa).

Diz a lenda que o povo de Königsberg passou muitas horas infrutíferas tentando encontrar um caminho antes de Euler para provar a impossibilidade de sua existência. A prova, que, talvez, parece bastante trivial para nós agora, mas que, aparentemente, não era óbvio em 1736, faz uso de um grafo. A matemática objeto consiste em pontos, também chamados vértices ou nós, e linhas, também chamados de arestas ou links, que abstrai todos os detalhes do problema original, exceto para a sua conectividade). (NEWMAN, BARABÁSI E WATTS, 2006, tradução nossa).

(20)

Figura 2 – Cidade de Königsberg, com as sete pontes.

Fonte: Newman, Barabási e Watts (2006, p.9)

Segundo Boaventura Netto (2001) a teoria de grafos foi redescoberta muitas vezes. 150 anos após Euler, Kirchhoff utilizou modelos de grafos no estudo de circuitos elétricos e ao fazê-lo, criou a teoria de árvores para caracterizar conjuntos de ciclos independentes. Dez anos mais tarde, Cayley seguiria a mesma trilha, embora tendo em mente outras aplicações.

Ainda Segundo Boaventura Netto (2001), desde o I Simpósio Brasileiro de Pesquisa Operacional (1968) têm sido apresentados trabalhos envolvendo aplicações de grafos a essa área. A UFRJ, a UFF, a USP, a UNESP e a UNICAMP, entre outras, possuem em seus quadros pesquisadores em teoria e em aplicações de grafos.

2.1.2 Teoria de Grafos

De acordo com Feofiloff, Kohayakawa, Wakabayashi (2011), os grafos são um bom modelo para muitos problemas em vários ramos da matemática, da informática, da engenharia e da indústria. Muitos dos problemas sobre grafos tornaram-se célebres porque são um interessante desafio intelectual e porque têm importantes aplicações práticas.

A teoria dos grafos estabeleceu-se como uma importante ferramenta matemática em uma ampla variedade de assuntos, que vão desde a investigação operacional e química à genética e linguística, e da engenharia elétrica e de geografia para a sociologia e arquitetura. (WILSON, 1998, tradução nossa).

(21)

Um grafo pode ser visualizado através de uma representação geométrica, na qual seus vértices correspondem a pontos distintos do plano em posições arbitrárias, enquanto que cada aresta (v,w) é associada a uma linha unindo os pontos correspondentes a v, w. (SZWARCFITER, 1984).

A densidade (ou densidade de arestas) de um grafo é a relação entre o seu número de ligações e o maior número possível. O número máximo de ligações é de 2 para um hipergrafo não orientado e de n² para um grafo orientado. (BOAVENTURA NETTO, 2001).

Embora seja conveniente para representar um grafo por um diagrama de pontos ligados por linhas, uma tal representação pode ser inadequada se pretende armazenar um grande grafo. Outras representações úteis envolvem matrizes. (WILSON, 1998, tradução nossa).

A mais utilizada é a matriz de adjacência. Trata-se de uma matriz de ordem n na qual se associa cada linha e cada coluna a um vértice. Ela não é a mais econômica das formas de representação de grafos; ela ocupa n2 posições de memória. (BOAVENTURA NETTO,

2001).

De acordo com Boaventura Netto (2001), a matriz de incidência é uma matriz de dimensões n x m, na qual cada linha corresponde a um vértice e cada coluna a uma ligação. É utilizada na formulação de modelos de programação matemática envolvendo estruturas de grafo.

Por vezes, existem grafos ligados apenas a um caminho entre cada par de vértices. Esses grafos são chamados de árvores, generalizando a ideia de árvore genealógica. Uma árvore pode ser definida como um grafo não ligado não contendo ciclos. (WILSON, 1998, tradução nossa).

A teoria de árvores foi desenvolvida por Kirchhoff em 1847, a fim de resolver o sistema de equações lineares que dão a corrente a cada ramo e cada circuito espalhado de uma rede eléctrica. Em 1857, Cayley descobriu a classe importante de grafos chamada árvores, considerando as mudanças de variáveis no cálculo diferencial. (VASUDEV, 2006, tradução nossa).

(22)

2.1.3 Algoritmos de Caminho Mínimo

Segundo Boaventura Netto (2001), as aplicações envolvem, naturalmente, problemas relacionados com sequências de decisões – quer se trate, por exemplo, das escolhas de itinerário ao longo de uma viagem ou uma estratégia de planejamento em um problema de investimentos. Busca então, minimizar custos de alguma forma.

De acordo com Szwarcfiter (1984), a busca dentre outras técnicas é a que mais se destaca pela grande quantidade de resolução de problemas para qual ela contribui.

A palavra busca para descrever os dois algoritmos a seguir na verdade é bastante enganadora. Seria mais correto descrevê-los como algoritmos para a construção de árvores usando as informações de adjacência de um determinado grafo. No entanto, os nomes estão entrincheirados na literatura sobre teoria de grafos e ciência da computação. Desta forma, usamos os nomes de “algoritmos de busca em profundidade” e “algoritmo de busca em largura” tendo em conta os efeitos pretendidos. (JOYNER, NGUYEN, COHEN, 2011, tradução nossa).

2.1.3.1 Algoritmo de Busca em Profundidade

Para Szwarcfiter (1984), uma busca é classificada de profundidade quando obedece a seguinte regra: escolher o vértice mais recente alcançado na busca dentre todos os vértices incidentes e marcados a alguma aresta ainda não explorada.

A busca de profundidade explora mais profundamente um caminho a partir de v, enquanto a busca em largura explora a vizinhança de um vértice v antes de passar a explorar os bairros dos vizinhos. Uma diferença significante é que ao invés de usar uma fila para estruturar e organizar os vértices a serem visitados, a busca de profundidade usa outro tipo de lista chamada de pilha. (JOYNER, NGUYEN, COHEN, 2011, tradução nossa).

(23)

2.1.3.2 Algoritmo de Busca em Largura

A busca de largura é uma estratégia para a execução através dos vértices de um grafo. Ela foi apresentada em 1959, no contexto de labirintos que atravessam. O algoritmo de busca pode ser descrito desta forma: a partir de um dado vértice v de um grafo G, primeiro explora a vizinhança de v, visitando todos os vértices que são adjacentes a v. A estratégia de explorar a vizinhança de um vértice é aplicada a todos os vértices de G. O resultado é uma árvore com raiz em v e esta árvore é um subgrafo de G. (JOYNER, NGUYEN, COHEN, 2011, tradução nossa).

Ainda segundo Joyner, Nguyer e Cohen (2011), este tipo de busca faz uso de um tipo especial de lista chamada de fila.

2.2 BANCO DE DADOS ORIENTADO A GRAFOS

Inúmeros projetos e produtos para gestão, processamento e análise de grafos têm surgido nos últimos anos. O grande número de tecnologias faz com que seja difícil manter o controle dessas ferramentas e como elas diferem, mesmo para quem está ativo no assunto. (ROBINSON; WEBBER; EIFREM, 2013, tradução nossa).

Ainda sobre Robinson, Webber e EIfrem (2013), uma das partes do espaço do grafo são as tecnologias utilizadas principalmente para transições de persistências de grafos online, normalmente acessado diretamente em tempo real a partir de um aplicativo. Essas tecnologias são chamadas bases de dados orientadas a grafos.

(24)

2.2.1 Definições

Banco de dados orientados a grafo, são definidos como qualquer sistema de armazenamento que fornece adjacência livre de índice. O que isso significa é que cada elemento no banco de dados contém um link direto para o seu elemento adjacente. Não há necessidade de índice nas pesquisas; cada elemento (ou nó) sabe o nó ou nós que está conectado. Essa ligação é chamada de aresta. Isso permite que os sistemas de banco de dados orientados a grafo utilizem a teoria de grafos para examinar rapidamente as conexões e interconexões entre nós. (MERENYI, 2013, tradução nossa).

Segundo Robinson, Webber e Eifren (2013), um banco de dados orientado a grafos fornece uma técnica de modelagem poderosa, e não por si só, suficiente para justificar a substituição de uma plataforma bem estabelecida e compreendida de dados; também deve haver um imediato e muito significativo benefício prático. No topo desses benefícios está o desempenho, onde os bancos de dados orientado a grafos oferecem um modelo de dados extremamente flexível.

Efetivamente recuperar a informação a partir de um grafo requer o que é conhecido como travessia. A travessia envolve o “caminhar” ao longo dos elementos de um grafo; uma operação fundamental para a recuperação de dados. Uma diferença entre uma travessia e uma consulta SQL é que as travessias são operações localizadas. Nesse caso, cada vértice e aresta armazenam um índice dos objetos conectados a ele. Isso significa que o tamanho do grafo não afeta em nada o desempenho sobre e as operações pesadas como agrupamentos de SQL JOIN, são desnecessárias. (MILLER, 2013, tradução nossa).

2.2.2 Ferramentas

Existem diversas ferramentas disponíveis para trabalhar com banco de dados orientados a grafos. Neste trabalho são abordadas algumas delas. Inicialmente elas suportavam apenas os modelos orientados a grafos e suas linguagens próprias. Atualmente, existe o que chamamos de segunda geração, que são os bancos de dados multi-modelos.

(25)

Dentre as que se destacam, essas ferramentas podem ser divididas também de acordo com seu armazenamento e processamento, conforme demonstrado na figura 3. Falaremos de alguns deles a seguir.

Figura 3 – Espaço dos bancos orientados a grafo.

Fonte: Semantic Community, 2013.

Nas seções a seguir serão apresentadas algumas das ferramentas já demonstradas na Figura 3.

2.2.2.1 Neo4j

É uma ferramenta de alto desempenho, consultas de resolução de dados de grafos robustos e escaláveis. É totalmente escrito em Java e pode ser implantado em múltiplos sistemas. (BATRA; TYAGI, 2012, tradução nossa).

(26)

2.2.2.2 Titan

É um banco de grafos escalável para consultas e armazenamento de centenas de arestas e vértices distribuídos através de um cluster. Uma base transacional capaz de suportar milhares de usuários simultâneos executando travessias complexas em tempo real.

Link para download: < https://github.com/thinkaurelius/titan/wiki/Downloads>.

2.2.2.3 FlockDB

Foi criado pelo Twitter para análise de relacionamentos da ferramenta. A maior diferença entre ele e outros bancos orientados a grafos é a chamada travessia, explicada anteriormente. Este modelo não tem a necessidade de percorrer o grafo social, apenas preocupa-se com os relacionamentos e um nó específico. (FINLEY, 2011).

Link para download: < https://github.com/twitter/flockdb>.

2.2.2.4 AllegroGraph

AllegroGraph é um moderno e de alto desempenho, banco de dados gráfico persistente. Ele usa a utilização eficiente de memória em combinação com armazenamento baseado em disco, permitindo-lhe escalar a bilhões de cadeias, mantendo o desempenho superior. (FRANZ INC, 2016, tradução nossa).

(27)

2.2.2.5 OrientDB

O OrientDB é um banco de dados multi-modelo open source, nascido no final da década passada. Seus algoritmos são mais antigos, iniciado o desenvolvimento na década de 90. Atualmente ele é um banco de dados muito forte, robusto e maduro. (TESORIETO, 2013). Ele é incrivelmente rápido (armazenamento de 220.000 registros por segundo em hardware comum). Suporta diversos modos de esquemas e inclui SQL entre as suas linguagens de consulta, juntamente com uma linguagem baseada em SQL personalizada que reduz a curva de aprendizado para aqueles novos para OrientDB. (ORIENTDB, 2016).

Link para download da ferramenta: < http://orientdb.com/download/>.

2.3 ONTOLOGIA

A ontologia é uma dentre muitas técnicas disponíveis para representação de conhecimento e dados. Atualmente ela vem se destacando e ganhando cada vez mais atenção diante de suas aplicações. Seu surgimento foi dentro do ramo da filosofia e hoje atinge diversas áreas. Nos tópicos seguintes, é mostrado o histórico geral deste tema, sua definição e suas aplicações.

2.3.1 Histórico Geral

Segundo Smith (2003), como um ramo da filosofia, a ontologia é a ciência do que é, das estruturas de objetos e dos tipos, eventos, propriedades, processos e relações em todas as áreas da realidade.

Historicamente o termo ontologia tem origem no grego “ontos”, ser, e “logos”, palavra. O termo original é a palavra aristotélica “categoria”, que pode ser usada para classificar alguma coisa. Aristóteles apresenta categorias que servem de base para classificar qualquer entidade e introduz ainda o termo “differentia” para propriedades

(28)

que distinguem diferentes espécies do mesmo gênero. A conhecida técnica de herança é o processo de mesclar differentias definindo categorias por gênero. (ALMEIDA; BAX, 2003, pg 8).

Do ponto de vista da análise categorial na filosofia, a ontologia foi vista como uma parte da metafísica e como parte da ciência. Historicamente, ela tem sido um ramo da metafísica interessado na formulação de respostas à pergunta do que existe, ou seja, qual é o inventário da realidade, e, consequentemente, na definição de categorias (tipos) de entidades e as relações entre as categorias. (POLI; OBRST, 2009. Tradução nossa.).

O termo “ontologia” foi criado em 1613 por dois filósofos: Rudolf Göckel (Goclenius) e Jacob Lorhard (Lorhardus). Sua primeira ocorrência em inglês apareceu no dicionário em 1721 e define a ontologia como “uma conta de estar no abstrato”. (SMITH, 2003, tradução nossa).

“Hoje é visto por duas perspectivas: (1) a da filosofia, que foi mencionada anteriormente, e (2) pela perspectiva da Ciência da Computação, inicialmente utilizada pela Inteligência Artificial”. (POLI; OBRST, 2010 apud CECI, 2015, p.87).

De uma perspectiva mais moderna, a ontologia veio a ser de interesse para a ciência da computação na década de 1970, quando começaram a desenvolver o campo de inteligência artificial. Eles perceberam que se você pudesse criar um domínio de conhecimento e estabelecer relações formais entre os itens de conhecimento no domínio, você poderia realizar certos tipos de raciocínio automatizados. (JEPSEN, 2009, p 22, tradução nossa).

Formalmente, o termo para a ciência da computação foi introduzido em 1993 por Tom Gruber, um cientista da Standford University. (JEPSEN, 2009, p23, tradução nossa).

2.3.2 Definição

Como a programação orientada a objetos, ontologias usam classes e instâncias para representar itens de conhecimento, mas implementações desses dois meta-modelos usam classes de maneiras significantemente diferentes. (JEPSEN, 2009, p.23, tradução nossa).

Ainda segundo Jepsen (2009), o poder real da ontologia reside na capacidade de criar relações entre as classes e instâncias, e atribuir propriedades a essas relações que nos permitem fazer inferências sobre eles.

(29)

Uma ontologia é composta por um entendimento de um grupo para descrever certa realidade a partir de fatos conhecidos e aceitos (Guarino, 1998 apud CECI, 2013 p.87).

As ontologias tendem a ser de dois tipos gerais: ontologias transcendentes, que são confiáveis e extremamente definidas a partir de aplicações que as utilizam, e ontologias imanente, em que a estrutura é definida pelo conteúdo do conhecimento do domínio. (JEPSEN, 2009, p.24).

Existem classificações para as ontologias de acordo com seu grau de generalidade. Segue algumas dessas classificações segundo Guarino (1998) apud Ceci (2013), p. 88:

 “Ontologias gerais (top-level ontology): possuem definições abstratas para a compreensão de aspectos do mundo como, por exemplo, processos, espaços, tempo, coisas, seres etc.

 Ontologias de tarefa (task ontology): tratam de tarefas genéricas ou de atividades, como diagnosticar ou vender.

 Ontologias de domínio (domain ontology): dedicam-se a um domínio específico de uma área genérica como, por exemplo, uma ontologia sobre família.

 Ontologias de aplicação (application ontology): têm como objetivo solucionar um problema específico de um domínio, normalmente referenciando termos de uma ontologia de domínio. ”

De acordo com Mori (2009), as ontologias são estruturas que podem ser utilizadas para sistematização de conceitos, pois são estruturas de organização do conhecimento.

Na próxima seção são apresentadas as aplicações das ontologias dentro de diversos ramos na atualidade.

2.3.3 Aplicações

Ontologias são utilizadas em projetos de domínios como gestão do conhecimento, comércio eletrônico, processamento de linguagens naturais, recuperação da informação na Web, de cunho educacional, entre outros. (ALMEIDA; BAX, 2003, p.9).

(30)

De acordo com Roe (2012), há literalmente milhares de ontologias existentes no mundo de hoje, em praticamente todos os setores. Da engenharia de software a investigação médica, do e-commerce a serviços bancários, o processamento linguístico para documentar publicações e assim por diante. Mesmo na indústria de gestão de dados há muito para discutir facilmente. Seguem alguns exemplos:

 Dublin Core MetaData Initiative (DCMI): Criado em 1994, o DCMI foi criado para fornecer vocabulários de núcleo de metadados em apoio de soluções interoperáveis para a descoberta e gestão de recursos.

 Good Relations Ontology: Iniciado em 2008, é um simples, mas poderoso e-commerce para a publicação de todos os detalhes de seus produtos e serviços de uma forma amigável para os motores, aplicações móveis e extensões do navegador de busca. Visa agilizar o processo de e-commerce.

Segundo Jurisica, Mylopoulos e Yu (1999, tradução nossa), de uma perspectiva computacional, um grande benefício tem sido o desenvolvimento de algoritmos que suportam a geração de inferências de um dado conjunto de fatos sobre o mundo, ou aqueles que verificam a consistência. Tais auxiliares computacionais são claramente úteis para a gestão do conhecimento, especialmente quando se está lidando com grandes quantidades de conhecimento. Vários métodos foram concebidos para apoiar a organização deles. As ontologias ainda especificam a semântica de um domínio em termos de relações conceituais e teorias lógicas.

De acordo com Sureephong, Chakpitak, Ouzrout e Bouras (tradução nossa), basicamente, o papel da ontologia no processo de gestão do conhecimento é facilitar a construção de um modelo de domínio. Ele fornece um vocabulário de termos e relações em um domínio específico.

(31)

3 MÉTODO

"O método é o conjunto das atividades sistemáticas e racionais que, com maior segurança e economia, permite alcançar o objetivo - conhecimentos válidos e verdadeiros -, traçando o caminho a ser seguido, detectando erros e auxiliando as decisões do cientista." (LAKATOS; MARCONI, 2003, p. 83).

No item a seguir, é descrita a caracterização do tipo de pesquisa deste trabalho científico, bem como a explicação de sua classificação. Além disso, são definidos os próximos passos para a finalização do trabalho. Por fim se tem as delimitações da monografia, seu esquema de solução e seu cronograma baseado nas etapas definidas.

3.1 CARACTERIZAÇÃO DO TIPO DE PESQUISA

“Pesquisa científica é a realização concreta de uma investigação planejada, desenvolvida e redigida de acordo com as normas da metodologia consagradas pela ciência" (RUIZ, 1996, p. 48).

A finalidade da pesquisa científica não é apenas um relatório ou descrição de fatos levantados empiricamente, mas o desenvolvimento de um caráter interpretativo, no que se refere aos dados obtidos. Para tal, é imprescindível correlacionar a pesquisa com o universo teórico, optando-se por um modelo teórico que serve de embasamento à interpretação do significado dos dados e fatos colhidos ou levantados. (LAKATOS, MARCONI, 2003, p. 224.).

"A pesquisa aplicada, visa adquirir ou gerar novos conhecimentos, novos processos, para a solução imediata de problemas determinados e específicos, com objetivo prático. Usa a pesquisa básica como suporte para isto. A pesquisa aplicada operacionaliza as ideias." (SOUZA, MÜLLER, FRACASSI, ROMEIRO, 2013, p.13).

Existem diversas formas de classificar a pesquisa. Uma delas é do ponto de vista da sua natureza, onde podem ser divididas em pesquisa básica e pesquisa aplicada. Outra classificação é de acordo com a forma de abordagem do problema que pode ser quantitativa e qualitativa. (SILVA; MENEZES, 2005).

Segundo Silva e Menezes (2005), a pesquisa aplicada objetiva gerar conhecimentos para direcionar à solução de problemas específicos.

(32)

De acordo com os objetivos deste trabalho sua pesquisa pode ser classificada como aplicada, pois busca gerar conhecimento para solucionar o problema descrito em sua problemática. Do ponto de vista dos procedimentos técnicos, pode-se classificar como pesquisa bibliográfica, pois foi elaborada apoiando-se em materiais já publicados e estudo de caso.

As pesquisas exploratórias têm como principal finalidade desenvolver, esclarecer e modificar conceitos e ideias, tendo em vista a formulação de problemas mais precisos ou hipóteses pesquisáveis para estudos posteriores. De todos os tipos de pesquisa, estas são as que apresentam menor rigidez no planejamento. Habitualmente envolvem levantamento bibliográfico e documental, entrevistas não padronizadas e estudos de caso. (GIL, 2008, p.27).

Sendo assim, se pode classificar esse projeto como pesquisa exploratória onde temos uma pesquisa bibliográfica e uma ontologia e um banco de dados orientado a grafos tendo como estudo o gerenciamento de rotas de um sistema de coleta de dados.

Por último, a classificação deste projeto em relação a forma de abordagem é qualitativa. Isto devido a forma de desenvolvimento do projeto.

3.2 ETAPAS METODOLÓGICAS

As etapas estão definidas e organizadas neste trabalho da seguinte forma:

1) Problemática (Definição do Problema); 2) Definição da Proposta de Solução; 3) Definição do Estudo de Caso; 4) Revisão Bibliográfica;

5) Modelagem da Ontologia; 6) Modelagem da Base de Dados; 7) Execução do Experimento; 8) Apresentação dos Resultados; 9) Considerações Finais.

(33)

Figura 4 – Fluxograma das Etapas do Projeto

Fonte: A Autora (2016)

Com as etapas demonstradas na Figura 4, fica mais clara a organização do processo de desenvolvimento e pesquisa do trabalho. A seguir será mostrado o desenho da solução.

3.3 DESENHO DA SOLUÇÃO

De acordo com o experimento, foi desenvolvida a proposta de solução para o problema. Na Figura 5 pode-se visualizá-la.

(34)

Figura 5 – Desenho da Solução do Projeto

Fonte: A Autora (2016)

As informações de rotas (rastreabilidade dos atributos), são cadastradas no banco de dados orientado a grafos baseadas no modelo ontológico. Esse modelo foi construído pela autora, baseado nas necessidades atuais. Essas informações mostram, por exemplo, o caminho percorrido pelo atributo em questão como: tratamentos recebidos (remoção de caracteres especiais, remoção de espaços desnecessários, etc), ambiente em que se encontra (onde o

(35)

atributo em questão está armazenado), fontes que o utilizam (pagina da web na qual é realizada a pesquisa para coleta dos dados), etc.

Os dados cadastrados permitem que o usuário saiba de forma simples e rápida informações sobre esse atributo que está localizado atualmente em diversos locais dentro de um banco de dados relacional.

3.4 DELIMITAÇÕES

Não foi desenvolvida uma aplicação para inserir os dados de forma automatizada no banco de dados orientado a grafos. Atualmente esses dados são inseridos através de arquivos JSON utilizando um layout pré-definido.

O SGBD onde as buscas por atributos são realizadas é o Postgres, pois a empresa estudada utiliza o mesmo como sua principal base de dados.

Para desenvolvimento da parte de grafos foi utilizada a ferramenta OrientDB, pois é um banco de dados hibrido e de segunda geração, com linguagem de utilização semelhante aos modelos relacionais.

Vale ressaltar que este trabalho não tem como objetivo estudar a web crawlers. Eles serão usados apenas como o local de aplicação.

(36)

4 EXPERIMENTO

Nesta seção do trabalho, é apresentado o cenário do desenvolvimento, ferramentas utilizadas, a modelagem de domínio, execução e avaliação do experimento.

4.1 FERRAMENTAS

A seguir, são listadas as ferramentas utilizadas no desenvolvimento do experimento desta monografia.

A Figura 6 ilustra os softwares que foram utilizados para o desenvolvimento deste experimento.

Figura 6 – Ferramentas

(37)

4.1.1 OrientDB

O OrientDB é uma segunda geração distribuída de banco de dados orientado a grafo com a flexibilidade de documentos em um único produto. Ele é o único verdadeiro modelo equipado para enfrentar grandes desafios de dados atuais e oferece replicação multi-mestre, bem como maior flexibilidade para casos de uso complexos modernos. Tudo isso com uma licença amigável open source. (ORIENTDB, 2016, tradução nossa).

Uma das principais características de uma base de dados orientada a grafo, é sua flexibilidade. Com ela é possível realizar alteração na estrutura da base, sem causar um impacto a todos os atributos.

O OrientDB possui algumas vantagens que os demais bancos orientados a grafos e documentos não possuem. Ele foi projetado do zero com o desempenho sendo um objetivo chave, por isso é rápido para ler e escrever operações. Não utiliza o custoso JOIN, ao invés disso, utiliza ponteiros persistentes entre registros. Pode-se atravessar árvores inteiras e registros em alguns milissegundos. (ORIENTDB, 2016, tradução nossa).

A principal razão para a escolha desta ferramenta no desenvolvimento do trabalho foi sua facilidade de instalação e manuseio. Diferente das demais ferramentas orientadas a grafo, sua linguagem de manipulação é o SQL (Linguagem de Consulta Estruturada). Essa linguagem já é utilizada por boa parte dos profissionais de tecnologia, por esse motivo, a curva de aprendizado para utilização da ferramenta é pequena.

4.1.2 Protégé

Dentre as ferramentas para desenvolvimento de ontologias o protégé se destaca devido a sua facilidade de instalação e uso. Ele é o mais conhecido para esse tipo de desenvolvimento pois permite também a instalação de plug-ins para facilitar a visualização das ontologias criadas.

O Protégé-OWL é um é uma extensão do software Protégé, com suporte a ontologias OWL. Este software permite que sejam manipuladas ontologias no formato OWL e RDF. Pode-se visualizar e editar suas propriedades, definir expressões lógicas para o

(38)

ambiente OWL, aplicar reasoners para a sua completa definição logica e editar todos os indivíduos do formato OWL para deixá-los no formato dos markups da Web Semântica. (PROTÉGÉ, 2013 apud FRITZ, 2013 p.19).

A seguir será apresentado o cenário no qual foi desenvolvido o experimento deste trabalho.

4.2 CENÁRIO

A empresa para o qual este experimento foi desenvolvido, é também o local de trabalho da autora. Essa empresa é consolidada e reconhecida por sua plataforma de Big Data, especializada na criação de soluções de inteligência de mercado.

Os dados dessa plataforma são capturados de fontes públicas, obedecendo rigorosamente seus termos e condições de uso. Posteriormente, são utilizados na geração de inteligência de mercado para verticais como Financeira, Construção Civil, Seguradoras, Telecom, Bens de Consumo e Óleo e Gás.

Atualmente existem cerca de 300 robôs (chamados de “Bots”) capturando informações de diferentes links da internet. Em termos de código, todos os bots são iguais. O que diferencia é a configuração, que vai indicar o link-alvo da captura, os passos de navegação quando se tratar de um sistema web, os atributos que deve capturar, como obter seus inputs (dados de entrada) e armazenar seus outputs (dados de saída), dentre outros parâmetros

Quando um problema nos dados é sinalizado, é vital para a empresa poder identificar os impactos desse evento em seus negócios. Acontece que o processo de captura é complexo não só pelo emaranhado de tecnologias e técnicas utilizadas, estruturas de dados heterogêneas e volumosas, mas principalmente porque se utiliza de muitas etapas de processamento que ocorrem em ambientes diferentes, fazendo com que esses dados percorram um longo caminho desde a captura até a disponibilização. Esse cenário torna a tarefa de identificação do erro extremamente penosa, porque significa percorrer cada uma das etapas do processo de produção de dados até se chegar a uma conclusão. Além disso, por envolver uma série de tecnologias distintas, requer um profissional altamente qualificado para a tarefa.

Esse trabalho propõe uma solução para esse cenário através da combinação de três ideias:

(39)

1) Centralização das informações mais relevantes de cada etapa do processo e captura de dados em um repositório de dados único;

2) Construção de uma ontologia como modelagem para essa nova estrutura; 3) Utilização de um banco de dados de grafo para facilitar a apresentação dos

relacionamentos entre todos os elementos do ecossistema, além de permitir a evolução do modelo de dados de forma rápida e interativa.

Considerando o cenário apresentado, na Figura 7 pode-se entender melhor a estrutura atual.

Figura 7 – Estrutura Atual

Fonte: A Autora (2016)

Ao avaliar uma nova fonte de dados disponível, a equipe de produto entra em contato com os responsáveis pelo desenvolvimento dos bots. A partir daí, é feito um estudo buscando informações como: quais são os dados de entrada e de saída, qual o link inicial, qual

(40)

a navegação para se atingir o resultado esperado, dentre outras análises. Ao final disso, o robô é construído e inicia-se a captura dos dados. As etapas seguintes ocorrem todas no banco de dados relacional. Na etapa 01, estão armazenados os dados brutos, que necessitam de tratamentos, agregações, padronizações, higienizações. Esses tratamentos são realizados de acordo com os domínios de dados de cada atributo, através de regras estabelecidas anteriormente. Como exemplo vamos pensar em um CNPJ. Ao entrar na base esse dado está da seguinte forma: 99.999.999/9999-99. As regras definidas para esse domínio indicam que podem ser apenas caracteres números de tamanho 14. Sendo assim, após o processo de higienização e padronização ficará assim:99999999999999. A próxima etapa (02) ocorre quando os resultados da etapa 01 são copiados para uma nova base, onde são integrados formando as visões que estarão disponíveis ao cliente.

Considerando a quantidade de dados disponíveis nessas visões (tabelas), realizar pesquisas diretamente no banco de dados relacional seria algo demorado e custoso. Pensando nisso, foi desenvolvida a etapa 03. Nela ocorre a indexação desses dados em uma ferramenta de busca de alta performance. Dessa forma, o usuário pode utilizar o sistema de forma rápida e utilizar sua ferramenta de mercado.

4.3 MODELAGEM DE DOMÍNIO

Uma das dificuldades encontradas ao trabalhar com bases de dados de grafos é o desenvolvimento da sua modelagem. Considerando isso e o cenário da proposta do presente trabalho a ontologia foi escolhida como a melhor técnica para organização e modelagem dessa estrutura. Para desenvolver essa modelagem foi utilizado o method 101 que é descrito no item seguinte.

(41)

4.3.1 Method 101

Segundo Noy e McGuinness, não existe uma maneira correta ou metodologia para o desenvolvimento de ontologias. Porém, existem algumas regras que são fundamentais no projeto de ontologia:

1) Não há maneira correta de modelar um domínio, há sempre alternativas viáveis. 2) Desenvolvimento de ontologias é necessariamente um processo iterativo. 3) Os conceitos na ontologia devem ser próximos a objetos (físicos ou lógicos) e

os relacionamentos de seu domínio de interesse. Objetos costumam ser substantivos e os relacionamentos costuma ser verbos.

Ou seja, decidir o que vamos usar na ontologia e se ela vista de forma geral ou detalhada, será baseado em decisões tomadas no caminho do desenvolvimento. Entre várias alternativas viáveis é preciso determinar qual deles iria funcionar melhor para a tarefa projetada, ser mais intuitivo, mais extensível e mais sustentável. Deve-se lembrar também que ela é um modelo da realidade e deve refletir essa realidade. (NOY; MCGUINNESS, p.4, tradução nossa). Seguindo esses conceitos, na seção seguinte são apresentadas cada uma das etapas de desenvolvimento da modelagem.

4.3.2 Etapas

4.3.2.1 Etapa 1 – Determinar o domínio e o escopo da ontologia

Essa ontologia é usada para modelar uma base de dados de grafos utilizada para mostrar a rastreabilidade de um sistema de coleta de dados. Ela deve fornecer respostas a perguntas do dia a dia da empresa, para que caso ocorra problemas no processo de dados, seja possível uma correção rápida. Será disponibilizada para uso de todos os colaboradores que acharem necessário.

(42)

4.3.2.2 Etapa 2 – Considerar a reutilização de ontologias existentes

Atualmente não existem outras ontologias disponíveis.

4.3.2.3 Etapa 3 – Enumerar termos importantes na ontologia

Termos importantes: Bot, Fonte, Ambiente, Atributo, Transformação, Domino, Função, Nome, Descrição, ID, git_link, regras, table, schema, tipo_base, url, total_estimado, periodicidade, tamanho.

4.3.2.4 Etapa 4 – Definir as classes e hierarquia de classes

Classes: Bot, Fonte, Atributo, Transformacao, Ambiente, Domino, Funcao.

Na classe Bot serão armazenadas informações sobre os robôs utilizados para a consulta em cada uma das fontes. Já na classe fonte, são dados do site onde ocorrem as consultas dos bots. Atributos são os campos de dados capturados pelos bots dentro de uma fonte. A Transformação será responsável por armazenar o tipo de tratamento que um atributo irá receber, por exemplo. Ambiente mostrará onde esse atributo está, qual o tipo de base, seu ip. O domínio será o responsável pelas regras definidas. Já a Funcao é quem aplicará as regras de domínio.

4.3.2.5 Etapa 5 – Defina as propriedades de classes de slots

(43)

Propriedades da classe Fonte: ID, nome, descricao, url, total_estimado, periodicidade.

Propriedades da classe Atributo: ID, nome, tamanho.

Propriedades da classe Transformacao: ID, nome, regra, racional.

Propriedades da classe Ambiente: ID, nome, ip, tipo_base, janela_atualizacao. Propriedades da classe Dominio: ID, nome, descricao, regras.

Propriedades da classe Funcao: ID, nome, descricao, git_link.

4.3.2.6 Etapa 6 – Definir os tipos dos atributos

Propriedades da classe Bot:  ID : inteiro

 nome : string  descricao : string  git_link : string

Propriedades da classe Fonte:  ID : inteiro  nome : string  descricao : string  url : string  total_estimado : string  periodicidade : string

Propriedades da classe Atributo:  ID : string

 nome : string  tamanho : string

Propriedades da classe Transformacao:  ID : inteiro

 nome : string  regra : string  racional : string

(44)

 ID : inteiro  nome : string  ip : string

 tipo_base : string

 janela_atualizacao : string

Propriedades da classe Dominio:  ID : inteiro

 nome : string  descricao : string  regras : string

Propriedadesda classe Funcao:  ID : inteiro

 nome : string  descricao : string  git_link : string

4.3.3 Desenvolvimento

De acordo com o método 101 descrito, nas imagens seguintes, pode-se ver as etapas de desenvolvimento. Na Figura 8, pode-se observar a criação das classes.

(45)

Fonte: A Autora (2016).

Na Figura 9, pode-se observar a criação dos relacionamentos, ou seja, propriedades.

(46)

Fonte: A Autora (2016).

Em seguida na Figura 10 é apresentada a criação dos atributos e tipos.

(47)

Fonte: A Autora (2016).

Após a criação de cada uma das etapas, a visualização da ontologia ficou de acordo com a Figura 11, utilizando o software protégé.

(48)

Figura 11 – Versão final da ontologia no software protégé.

Fonte: A Autora (2016).

Para facilitar o uso da ontologia no desenvolvimento do grafo, optou-se também por desenhar de uma melhor forma a ontologia onde a mesma demonstrasse de forma mais clara quais os atributos e relacionamentos de cada nó. Segue a versão final demonstrada na Figura 12.

(49)

Figura 12 – Versão final da ontologia com relacionamentos e atributos.

Fonte: A Autora (2016).

Com essa versão final da ontologia, foi possível visualizar de forma mais clara e simples como o desenvolvimento na ferramenta de banco de dados de grafo deveria ser. A partir daí foi iniciado então o processo de criação da rastreabilidade dos dados no OrientDB que é descrito na seção seguinte.

4.4 EXECUÇÃO

Após a construção da ontologia possibilitando uma visualização mais clara de como deve ficar a estrutura da rastreabilidade, foi realizado um levantamento interno na instituição para mapear as informações de uma das fontes. Estes dados foram recolhidos e iniciou-se então o processo de criação dos nós (classes). A ferramenta orientDB utiliza a linguagem sql para

(50)

manipulação dos dados, sendo assim foram executados os seguintes comandos para a criação das classes:

create class Bot extends V create class Fonte extends V create class Atributo extends V create class Ambiente extends V create class Transformacao extends V create class Dominio extends V create class Funcao extends V

create class Transformacao extends V

Outro ponto forte que levou a escolha desta ferramenta é sua interface gráfica de fácil acesso e manuseio. Segue na Figura 13 um exemplo de criação de classe sem a utilização de linhas de comando em terminal.

Figura 13 – Criação de classe utilizando a interface do OrientDB.

(51)

Após a criação das classes, foi iniciada a carga dos dados de cada uma delas que pode ser observado nas figuras abaixo. Na Figura 14, é demonstrado o cadastro dos ambientes.

Figura 14 – Cadastro dos ambientes.

Fonte: A Autora (2016).

(52)

Figura 15 – Cadastro dos atributos

Fonte: A Autora (2016).

Foram inseridos os dados nas classes Ambiente, Atributo, Bot, Dominio, Fonte, Transformacao e Funcao. Na Figura 16 é demonstrado na forma de nós os dados inseridos.

(53)

Figura 16 – Dados cadastrados.

Fonte: A Autora (2016).

Após o cadastro de todos os dados e seus atributos, foram criados os relacionamentos entre eles. Segue abaixo exemplos de alguns relacionamentos via SQL:

 create edge Consulta from (select from Bot where nome = 'ANTT') to (select from Fonte where nome = 'ANTT')

 create edge Prove from (select from Fonte where nome = 'ANTT') to (select from Atributo where nome = 'ANTT')

 create edge Pertence from (select from Atributo where nome = 'cd_cnpj') to (select from Dominio where nome = 'cnpj')

 create edge Usa from (select from dominio where nome = 'cnpj') to (select from funcao where nome = 'qualidade.fn_gera_conformidade')

(54)

 create edge Deriva from #14:2 to #14:3

Com a criação de todos os relacionamentos (edge), foi concluída a etapa de desenvolvimento. A partir daí, é possível realizar consultas para auxiliar no processo de rastreabilidade dos dados na instituição. Nas figuras seguintes são demonstradas consultas utilizadas no dia a dia da empresa.

Uma das dificuldades é conseguir identificar qual o caminho completo de um atributo desde sua captura até a disponibilização. Na Figura 17 é possível observar esse cenário.

Figura 17 – Caminho percorrido pelo atributo cd_cnpj desde a sua captura.

Fonte: A Autora (2016).

Outra visão que passou a existir com a criação da rastreabilidade no banco de dados de grafo é saber quais atributos pertencem a um determinado domínio. Dessa forma caso ocorra uma troca dele ou uma alteração em sua regra é possível medir qual o impacto dessa modificação. Segue um exemplo na Figura 18.

(55)

Figura 18 – Quais atributos pertencem ao domínio alfa_num_comercial.

Fonte: A Autora (2016).

Ao se deparar com um problema em uma das fontes da estrutura atual, sem a rastreabilidade não era possível saber quais atributos teriam sua produção e preenchimento afetados. Com a proposta apresentada é possível saber quais atributos são providos por essa fonte e serão impactados. Segue abaixo o exemplo na Figura 19.

(56)

Figura 19 – Quais atributos derivam da fonte ANTT.

Fonte: A Autora (2016).

Com a grande quantidade de manipulação dos dados, criação de modelos de negócio e armazenamento, é necessário que existam bases estáveis e de alta performance. Porém, sabe-se que podem ocorrer problemas causando a indisponibilidade de uma dessas bases. Utilizando a rastreabilidade é possível saber, por exemplo, quais atributos ou modelos existem naquele ambiente. Na Figura 20 tem-se um exemplo.

(57)

Figura 20 – Quais atributos existem no ambiente replica.

Fonte: A Autora (2016).

Conforme demonstrado neste capitulo, a rastreabilidade dos sistemas de coletas de dados tem a capacidade de ampliar o conhecimento e mostrar de forma clara todo o processo de produção de uma instituição. Ela permite a medição constante de impacto para diversos tipos de incidentes. Fica mais simples a visualização do problema para pessoas que não possuem o conhecimento de todas as bases desse processo de produção, facilitando a identificação de uma falha e o local onde ela ocorreu permitindo uma diminuição e melhoria de custos.

4.5 AVALIAÇÃO

Neste tópico é apresentada a avaliação da modelagem e do desenvolvimento proposto, utilizando um questionário que foi respondido por membros da empresa da autora. Ele tem como objetivo mostrar a opinião dos colaboradores em relação a ferramenta desenvolvida.

O questionário foi criado de acordo com fluxo exibido na Figura 21. Com ele é possível um resultado qualitativo a respeito da rastreabilidade dos dados.

(58)

Figura 21 - Diagrama da Avaliação

Fonte: A Autora (2016).

De acordo com a Figura 21, é possível observar a definição das etapas de forma clara. Nas seções a seguir é apresentado um detalhamento de cada uma delas.

Todos os usuários ficaram empolgados e interessados na rastreabilidade desenvolvida e com as possibilidades e facilidades que ela trará para a rotina de trabalho.

(59)

4.5.1 Definição do Cenário da Avaliação

A rastreabilidade foi modelada e desenvolvida para que auxilie no dia a dia da companhia e melhore processos internos principalmente para a equipe de qualidade dos dados. Partindo dessas necessidades que são observadas durante o trabalho dos colaboradores, foi possível captar qual a real necessidade desta ferramenta.

O número de entrevistados foi de seis pessoas com perfis distintos, sendo elas: três analistas de qualidade de dados, um desenvolvedor, uma gerente de segurança da informação e um diretor executivo de dados (CDO). Todas as envolvidas foram escolhidas considerando o maior interesse no processo de trabalho.

Para realizar a avaliação foi feita uma explicação e demonstração do grafo e da ontologia desenvolvidos como exemplo.

4.5.2 Elaboração do Questionário

O questionário foi elaborado de acordo com três itens principais:  Objetivos Específicos;

 Título do trabalho;  Questão aberta.

Como principal objetivo do questionário, buscou-se analisar se todo o desenvolvimento está de acordo com os objetivos específicos definidos. Além disso, foi utilizado o título do trabalho para perguntar ao usuário se está de acordo com o proposto. Por último optou-se por colocar uma pergunta aberta para que os colaboradores tivessem a oportunidade de expressar sua opinião a respeito da monografia e seu desenvolvimento.

Na elaboração dos itens de respostas utilizou-se a escala Likert. Segundo Tomás Duarte (2016, pg.1), “ é uma escala de resposta psicométrica utilizada na maioria das vezes em pesquisas de opinião de clientes. Sendo uma das principais KPI’s (Key Performance Indicator) de pesquisas do mundo, a escala é um dos indicadores mais antigos e tradicionais”.

(60)

As perguntas foram disponibilizadas para resposta através de um formulário criado na ferramenta google forms para facilitar o acesso de todos os usuários e gerar estatísticas de forma simples. No item a seguir, é apresentada a aplicação deste questionário.

4.5.3 Aplicação do Questionário

A finalidade da aplicação do questionário é obter resultados para que se possa determinar se os modelos desenvolvidos trarão melhorias no trabalho dos colaboradores e se atendeu realmente as expectativas. Aplicou-se da seguinte forma:

1) Apresentação do objetivo do trabalho e sua necessidade

2) Breve apresentação de conceitos desconhecidos, como ontologias. 3) Demonstração da ontologia final.

4) Demonstração do grafo desenvolvido de exemplo. 5) Aplicação do questionário.

Após a apresentação do tema da monografia, foi enviado aos usuários o formulário para a avaliação buscando saber se o que foi desenvolvido e apresentado atende as expectativas e necessidades que ocorrem atualmente.

4.5.4 Análise dos Resultados

Nesta seção, é demonstrado o resultado da avaliação que foi realizada através do formulário disponibilizado na ferramenta google forms.

O objetivo é verificar se o que foi desenvolvido atende a necessidade da instituição estudada.

O resultado da avaliação foi baseado na resposta de seis pessoas. A perguntas foram apresentadas da seguinte forma:

Referências

Documentos relacionados

 Random storage - refere-se à alocação de um espaço de stock de forma aleatória, segundo o espaço disponível no momento de chegada dos produtos (Petersen e Aase,

Membro_Faculdade (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, Curso: string[30], professor: booleano, aluno: booleano). Membro

A motivação para o tema surgiu a partir de conversas com professores brasileiros, que têm desenvolvido a pesquisa “Paisagem Sonora, Memória e Cultura Urbana” elaborada no Programa

Estes resultados apontam para melhor capacidade de estabelecimento inicial do siratro, apresentando maior velocidade de emergência e percentual de cobertura do solo até os 60

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

Por isso na década de 1960 a prefeitura resolve criar não só o baile, mas também o chamado Voo do Frevo, que tinha por objetivo não só trazer artistas do sul e do sudeste do país

(14) use um método de escrileitura calcado na vontade lúcida de estruturar o texto e não na intenção (absurda) de formular juízos de valor; ou seja, não organize o