3 METODOLOGIA DE PESQUISA
3.2 ESTAPAS METODOLÓGICAS
Para obtenção dos resultados esperados, este projeto fica dividido em cinco etapas:
a) Fundamentação teórica: pesquisa bibliográfica sobre as áreas de interesse para ampliação do conhecimento e melhor compreensão do problema.
b) Modelagem do problema, tendo como base o conhecimento levando na
Fundamentação Teórica e objetivos gerais e específicos.
c) Pesquisa de ferramentas, componentes e linguagens de apoio à construção, manutenção e evolução da ontologia de domínio, através de uma análise de adequação ao problema proposto.
d) Desenvolvimento: construção, manutenção e evolução efetiva da
ontologia através de uma linguagem de definição e das ferramentas de apoio necessárias.
e) Validação: Verificação dos resultados obtidos e alinhamento aos objetivos do trabalho.
3.3 PROPOSTA DA SOLUÇÃO
Fontes de dados serão utilizadas como subsídio para manutenção e evolução da ontologia. Através de ferramentas de apoio, serão obtidos os componentes essenciais para construção, manutenção e evolução de uma ontologia e terá como artefato final a ontologia construída.
Figura 11 – Arquitetura lógica.
Fonte: Elaboração do autor, 2012.
3.4 DELIMITAÇÃO
A evolução da ontologia se dará através da escolha de um domínio em específico e dependerá de linguagens e ferramentas já existentes.
Textos servirão como fontes de dados da ontologia e, para auxiliar na a sua extração e anotação, serão utilizadas ferramentas de apoio.
O processo de evolução da ontologia será dependente de um especialista de domínio que será o responsável por fornecer o conhecimento necessário em relação ao domínio do assunto. É possível que o especialista no domínio seja o mesmo que o especialista em ontologias.
4 MODELAGEM E DESENVOLVIMENTO
Neste capítulo, serão apresentados os passos para a evolução da ontologia em questão. Será iniciado com uma descrição detalhada sobre a ontologia Pizza. Após isso, as ferramentas juntamente com os métodos que elas utilizam serão pormenorizados e, então, serão apresentados os resultados da evolução, na forma de uma ontologia atualizada.
4.1 DESCRIÇÃO DA ONTOLOGIA
O domínio da ontologia escolhida, como tema para este trabalho, foi Pizza. Atualmente, já existe uma ontologia para o domínio do conhecimento sobre Pizza e, portanto, será mantido como foco desde trabalho a sua evolução, através da criação de novos domínios, relações, etc.
4.1.1 Classes
A seguir, serão apresentadas as principais classes da ontologia Pizza. Os principais conceitos pelos quais ela começa são os seguintes:
Figura 12 – Classes iniciais da Ontologia Pizza.
A partir da classe DomainConcept, são originadas as duas principais classes da ontologia, de onde, a partir destas, respectivamente, País e Comida, na figura abaixo, diversas outras serão originadas.
Figura 13 – Subclasses da DomainConcept da Ontologia Pizza.
Fonte: Elaboração do autor, 2012.
Como sub-conceitos do conceito comida, são apresentados abaixo na seguinte sequência: Cobertura da Pizza, Sorvete, Pizza e Base da Pizza.
Figura 14 – Subclasses do conceito Food.
Fonte: Elaboração do autor, 2012.
O conceito Sorvete não possui sub-conceito. Já a Pizza desdobra-se em Pizza com Queijo, Pizzas Interessantes, Pizzas apimentadas, Pizzas de carne, Pizzas finas e crocantes, Pizzas típicas de regiões, Pizzas vegetarianas, entre outras, como podemos ver abaixo.
Figura 15 – Subclasses do conceito Pizza.
Fonte: Elaboração do autor, 2012.
A classe NamedPizza, a qual representa pizzas com nomes próprios, tais como nome do local de sua origem ou um nome o qual foi dado por qualquer outro motivo, possui diversas sub-classes, como Napolitana, Marguerita, Americana, entre outras. Abaixo, podemos ver todas as sub-classes da classe NamedPizza.
Figura 16 – Subclasses do conceito NamedPizza.
Fonte: Elaboração do autor, 2012.
A classe PizzaBase é a responsável por representar a massa com a qual é feita a pizza, ou seja, a característica de como é preparada a base da pizza para os ingredientes que irão sobre ela. Temos duas subclasses, como podemos ver a seguir.
Figura 17 – Subclasses do conceito PizzaBase.
A cobertura da pizza é definida através das subclasses da PizzaTopping, em que são encontrados os diversos ingredientes que cobrem a pizza. Podemos encontrar peixes, vegetais, carnes, queijos, entre outros, como vemos na figura abaixo.
Figura 18 – Subclasses do conceito PizzaTopping.
Fonte: Elaboração do autor, 2012.
Dentre os diversos tipos de coberturas de pizzas apresentados anteriormente, todos eles terão subclasses mais específicas que irão, gradualmente, pormenorizar cada cobertura e suas várias diversificações. Abaixo, seguirão as figuras de todas essas subclasses.
Figura 19 – Subclasses do conceito CheeseTopping.
Fonte: Elaboração do autor, 2012.
Figura 20 – Subclasses do conceito FishTopping.
Figura 21 – Subclasses do conceito FruitTopping.
Fonte: Elaboração do autor, 2012.
Figura 22 – Subclasses do conceito HerbSpiceTopping.
Figura 23 – Subclasses do conceito MeatTopping.
Fonte: Elaboração do autor, 2012.
Figura 24 – Subclasses do conceito HamTopping.
Figura 25 – Subclasses do conceito NutTopping.
Fonte: Elaboração do autor, 2012.
Figura 26 – Subclasses do conceito VegetableTopping.
Figura 27 – Subclasses do conceito OnionTopping.
Fonte: Elaboração do autor, 2012.
Figura 28 – Subclasses do conceito PepperTopping.
Fonte: Elaboração do autor, 2012.
Figura 29 – Subclasses do conceito GreenPepperTopping.
Figura 30 – Subclasses do conceito TomatoTopping.
Fonte: Elaboração do autor, 2012.
4.1.2 Relações
Além das classes, são encontradas propriedades que indicam as relações existentes entre si. Abaixo, seguem essas relações juntamente com suas descrições.
• hasCountryOfOrigin: indica o país de origem de uma determinada pizza,
quando aplicável;
• hasIngredient: propriedade transitiva de onde se originam as relações hasBase e hasTopping, indicando os ingredientes que a base ou a cobertura da pizza possuem;
• isIngredientOf: relação transitiva, possuindo função de navegação inversa à anterior, onde os ingredientes é que mencionam as pizzas as quais pertencem, tendo como relações sub-sequentes isBaseOf e isToppingOf.
4.2 ARQUITETURA DA SOLUÇÃO
Neste trabalho, a evolução da ontologia se dará através de um ambiente de desenvolvimento integrado (IDE) chamado GATE (Cunningham, 2011), em que diversos componentes para processamento de textos são usados para extração de informação. Além dos componentes diretamente ligados ao processamento de linguagem, existem outros que auxiliam na manipulação, visualização e evolução da ontologia.
Dentro da IDE supracitada, encontra-se um sistema de extração de informação pré-configurado chamado ANNIE. ANNIE é um acrônimo de Nearly-New Information Extraction System, literalmente traduzido para “Quase novo Sistema de Extração de Informação”.
Os principais componentes usados pelo ANNIE incluem documentos textuais, corpus, ontologias pré-existentes e componentes de processamentos textuais, tais como Tokeniser, Gazetteer, Sentence Splitter, POS Tagger, Transducer e OrthoMatcher.
Na figura a seguir, podemos ter uma visão geral da arquitetura da solução proposta neste trabalho. Para sua representação foi utilizado um fluxograma multifuncional, em que as diferentes partes que compõem a solução são melhor visualizadas.
Figura 31 – Arquitetura da solução.
Fonte: Elaboração do autor, 2012.
A seguir, será pormenorizado de como cada componente do fluxograma acima foi utilizado no desenvolvimento deste trabalho.
4.2.1 CORPUS
Segundo Manning & Schutze (1999), um corpus é conjunto de textos coletados conforme critérios específicos. Como fonte de informações para extração de novos conceitos para a ontologia pizza, foram concatenados textos encontrados na internet sobre este domínio do conhecimento.
A partir da ferramenta utilizada, neste trabalho, é possível a união de diversos documentos dentro de um corpus único, que, por sua vez, será a fonte de dados a qual as técnicas de extração de termos utilizarão.
Vale ressaltar que foram buscados na internet textos em inglês, devido à ferramenta não trazer de forma nativa o processamento sobre a língua portuguesa, e, convenientemente escolhida, será utilizada uma compilação de informações, sobre o referido assunto, da Wikipédia4, enciclopédia on-line colaborativa amplamente conhecida. O texto colhido encontra-se no Anexo A deste trabalho.
Abaixo, podemos ver como se dá o passo a passo na criação do referido corpus. Primeiramente, são criados documentos para cada texto encontrado na internet, posteriormente, é criado um corpus, unindo todos estes textos. Abaixo, podemos ver a configuração de um documento e, posteriormente, a criação do corpus a partir do mesmo. Neste trabalho, estará contido apenas um documento, já tendo sido mencionada sua fonte anteriormente.
Figura 32 – Tela de configuração de documento.
Fonte: Elaboração do autor, 2012.
Figura 33 – Tela de configuração de corpus.
4.2.2 Tokeniser
Normalmente, uma das primeiras etapas dentro de um processo de extração de informação é a divisão do texto em unidades chamadas tokens. Cada token representa um segmento de texto ou símbolo. O nome que é dado a esse processo é Tokenização que, segundo Gasperin & Lima (2001), devido a sua complexidade, normalmente, são utilizados como separadores os espaços em branco, tabulação ou início de uma nova linha.
Encontram-se definidos na documentação do ANNIE, os seguintes tipos de tokens:
• Palavra: qualquer conjunto de letras continuas, podendo incluir um hífen;
• Número: qualquer combinação de dígitos consecutivos;
• Símbolo: separados em símbolos monetários($, £) e símbolos
comuns(&,*); e
• Pontuação: podendo ser inicial(<), final(>) e outros tipos (:,;).
Figura 34 – Tela de configuração de Tokeniser.
4.2.3 Gazetteer
O papel do Gazetteer é fornecer meios para busca e identificação de entidades nomeadas no texto. Seu funcionamento é simples e consiste em utilizar arquivos, separados por assuntos, contendo um registro por linha. O processamento se dá ao percorrer todo o texto em busca de alguma ocorrência desses registros e, por conseguinte, a sua marcação de acordo com o tema da lista. Logo abaixo, podemos ver uma lista dos principais temas utilizados e a sua tela de configuração:
• Abreviações; • Locais; • Aeroportos; • Países; • Cidades; • Organizações; • Nomes de pessoas; • Datas; • Entre outras.
Figura 35 – Tela de configuração de Gazetteer.
4.2.4 Sentence Splitter
Literalmente, traduzido para o português como separador de sentença, seu papel é delimitar um conjunto de tokens como sendo parte de uma única frase. Manning e Schutze (1999) afirmam que a maioria das soluções envolvem métodos heurísticos.
Delimitadores como “?”, “!” ou “.” são normalmente tokens delimitadores de sentença, porém existem exceções à regra que precisam ser tratadas independentemente. No sistema Annie, é usada uma lista de gazetteer de abreviações para a distinção de separadores sentenças de outros tipos não desejados.
Figura 36 – Tela de configuração do Sentence Splitter.
Fonte: Elaboração do autor, 2012.
4.2.5 POS Tagger
POS Tagger é um etiquetador gramatical, ou seja, sua função é associar cada token a uma categoria gramatical, tais como artigo, substantivo, adjetivo, etc. A posição da palavra dentro da frase, morfologia da palavra e outras características são usadas para fazer essa distinção.
Para sua configuração, é necessário um conjunto de regras e um corpus pré- etiquetado, que serve como fonte de dados estatísticos para a etiquetagem do corpus em questão. Abaixo, podemos ver a sua tela de configuração.
Figura 37 – Tela de configuração de POS Tagger.
Fonte: Elaboração do autor, 2012.
4.2.6 Transducer e OrthoMatcher
Um dos problemas do processamento de linguagem natural são as co-referências. Duas entidades nomeadas reconhecidas como diferentes, devido somente a uma variação na sua escrita, podem ter relação de igualdade entre si. Portanto, desta forma, esses módulos fornecem a funcionalidade de relacionar estas diferentes entidades, fornecendo relação de igualdade. Abaixo, temos as suas telas de configuração.
Figura 38 – Tela de configuração do Transducer.
Figura 39 – Tela de configuração do OrthoMatcher.
Fonte: Elaboração do autor, 2012.
4.2.7 Documento Anotado
O processamento do texto é realizado em forma de cascata, em que cada recurso de processamento textual é executado consecutivamente. O resultado do processamento é um texto com marcações correspondentes a diferentes categorias.
Na parte lateral direita da tela, pode-se selecionar as opções disponíveis e, na parte central, as palavras correspondentes são identificadas pela marcação colorida, como vemos na figura a seguir.
Figura 40 – Tela com o corpus anotado às categorias.
Fonte: Elaboração do autor, 2012.
4.2.8 Ontology Annotation Tool (OAT)
O OAT é um complemento da ferramenta GATE que permite a anotação manual de fragmentos do texto a classes, instâncias e propriedades pertencentes à ontologias. Seu uso é bastante simples, bastando selecionar o termo e a classe a serem relacionados, uma tela, conforme ilustrada na figura, a seguir, é aberta e, então, a anotação é realizada.
Figura 41 – Tela de relacionamento de classes.
Fonte: Elaboração do autor, 2012.