38
PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS PETER ANTONY RAUSCH JOYCE MARTINS

PROTÓTIPO DE FERRAMENTA DE CONSULTA DE …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-24-AP-PeterARausch.pdf · OBJETIVOS Ferramenta para extrair informações de base de dados baseada

Embed Size (px)

Citation preview

PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS PETER ANTONY RAUSCH JOYCE MARTINS

ROTEIRO

Introdução Objetivos Fundamentação Teórica Especificação Implementação Operacionalidade Resultados e discussão Conclusão Extensões

INTRODUÇÃO

Internet X Linguagem Natural Web Semântica

Metadados Ontologia Descrição e representação de uma área de conhecimento

Linguagens W3C: Resource Description Framework (RDF) Web Ontology Language (OWL) Simple Protocol And Rdf Query Language (SPARQL)

OBJETIVOS

Ferramenta para extrair informações de base de dados baseada em ontologias: Definir uma base de dados de domínio específico

baseado em ontologias, fazendo uso das linguagens RDF e OWL, adotadas como padrão pela W3C

Processar consultas em língua portuguesa, convertendo em consultas na linguagem SPARQL

Gerar como resultado links para informações obtidas como respostas às consultas

LINGUAGENS DE DESCRIÇÃO E CONSULTA PARA WEB SEMÂNTICA

PROCESSAMENTO DE LINGUAGEM NATURAL

TRABALHOS CORRELATOS

FUNDAMENTAÇÃO TEÓRICA

RDF – Resource Description Language

Padrão de uso do XML Grafo dirigido

Nós = recursos RECURSO: sobre o que se deseja falar OBJETO: valor dado para a propriedade

Aresta = propriedade PROPRIEDADE: relaciona RECURSO x OBJETO

Recurso = endereço web

RDF – Resource Description Language

1. <?xml version="1.0"?>

2. <rdf:RDF

3. xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

4. xmlns:f="http://www.meudominio.com.br/vocabulario/#">

5. <rdf:RDF>

6. <rdf:Description about:"http://www.exemplo.com.br">

7. <f:criou>

8. Peter

9. </f:criou>

10. </rdf:Description>

11. </rdf:RDF>

RDFs – RDF-Schema

Definição de vocabulários Orientação a objetos

1. [...]

2. <rdfs:Class rdf:ID="animal"/>

3. <rdfs:Class rdf:ID="cavalo">

4. <rdfs:subClassOf rdf:resource="#animal"/>

5. </rdfs:Class>

6. [...]

OWL – Web Ontology Language

Ontologias Explicitação de fatos sobre determinado domínio Namespaces Cabeçalhos Classes Indivíduos Propriedades Restrições

OWL – Web Ontology Language

1. <?xml version="1.0"?>

2. <rdf:RDF

3. [...]

4. <owl:Ontology rdf:about="#animais">

5. <owl:Class rdf:ID="carnivoro">

6. <owl:Restriction>

7. <owl:onProperty rdf:resource="comer"/>

8. <owl:someValuesFrom rdf:resource="animal"/>

9. </owl:Restriction>

10. </owl:Class>

11. <owl:Class rdf:ID="leao">

12. <rdfs:subClassOf rdf:type="carnivoro"/>

13. </owl:Class>

14. </owl:Ontology>

15. </rdf:RDF>

SPARQL – Simple Protocol And Rdf Query Language

RDF | RDFS | OWL Consultar Inserir Excluir Alterar

SPARQL – Simple Protocol And Rdf Query Language 1. PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

2. PREFIX an: <http://www.exemplo.com.br/animais#>

3.

4. SELECT ?a ?e

5. WHERE

6. {

7. ?a rdf:Class an:animal;

8. an:carnivoro ?e.

9. }

1. ASK

2. WHERE

3. {

4. ?a rdf:Class an:animal;

5. an:carnivoro ?e.

6. }

PROCESSAMENTO DE LINGUAGEM NATURAL

Análise morfológica Identifica palavras

Análise sintática Estrutura do texto

Análise semântica Significado

Análise pragmática Contexto

TRABALHOS CORRELATOS

Jena (APACHE SOFTWARE FOUNDATION, 2011) Framework Java

Geração automática de ontologias (BRAVO, 2010) Semantic Lattes (COSTA; YAMATE, 2009)

Domínio: Currículos acadêmicos

REQUISITOS PERGUNTAS SUPORTADAS DIAGRAMA DE CASOS DE USO

DIAGRAMA DE CLASSES

ESPECIFICAÇÃO

PRINCIPAIS REQUISITOS

Requisitos Funcionais permitir cadastrar ontologias no formato OWL; disponibilizar uma interface para entrada de consultas em

SPARQL; disponibilizar uma interface para entrada de consultas em

língua portuguesa; disponibilizar o resultado de consultas em língua

portuguesa;

Requisitos Não-Funcionais ter uma base de dados baseada em ontologias; ser implementada em C# e ASP.NET, utilizando o ambiente

de desenvolvimento Microsoft Visual Studio 2010;

PERGUNTAS SUPORTADAS

Pergunta Exemplo

Quais RECURSOS cadastrados? Quais vulnerabilidades cadastradas?

O RECURSO é um OBJETO? O atacante externo é uma ameaça?

O RECURSO PROPRIEDADE OBJETO? A vulnerabilidade é explorada pelo concorrente?

Quais OBJETO PROPRIEDADE RECURSO? Quais vulnerabilidades estão contidas no software ERP?

Que OBJETO RECURSO PROPRIEDADE? Que vulnerabilidade o concorrente explora?

O que PROPRIEDADE RECURSO? O que está localizado no servidor de arquivos?

Em que OBJETO PROPRIEDADE RECURSO? Em que posição joga o Messi?

Como PROPRIEDADE RECURSO? Como é explorada a vulnerabilidade?

Quem PROPRIEDADE RECURSO? Quem mitiga uma vulnerabilidade física?

Onde PROPRIEDADE RECURSO? Onde está localizada a folha de pagamento?

DIAGRAMA DE CASOS DE USO

Busca

Cadastros e Manutenção

UC01 - Cadastrar Ontologia

Usuário

UC02 - Cadastrar Substantiv o

UC06 - Buscar com Linguagem SPARQL

UC07 - Buscar com Linguagem Natural

UC03 - Manter Ontologia

UC05 - Manter Substantiv o

UC04 - Recuperar Arquiv o OWL

«include»

«extend»

DIAGRAMA DE CLASSES

DIAGRAMA DE CLASSES

DIAGRAMA DE CLASSES

TÉCNICAS E FERRAMENTAS

ONTOLOGIAS

GRAMÁTICA

ESTUDO DE CASO

IMPLEMENTAÇÃO

TÉCNICAS E FERRAMENTAS

GALS NeOn Toolkit Visual Studio 2010 SQL Server

SQL Managment Studio

C# ASP.NET MVC Entity Framework Razor dotNetRDF

JavaScript JQUERY

HTML5

ONTOLOGIAS

Gestão de Segurança da Informação

Ativo de informação Ambiente Físico Software Hardware

Vulnerabilidade Vulnerabilidade Lógica Vulnerabilidade Física

Controle Controle Lógico Controle Físico

Ameaça Malware Atacante Interno Atacante Externo

Alimentos Bebida

Suco

Ingrediente

Prato Doce Salgado

Futebol País

Posição

Time

Campeonato Copa Liga

Jogador

Continente

GRAMÁTICA

1. <frase> ::= <sujeito> <negacao> <verbo> <objeto> pontuacao

2. | <sujeito_> <ligacao> <objeto_> <negacao> <verbo___> pontuacao

3.

4. <sujeito> ::= <pre_sujeito> <nucleo> <pos_sujeito>

5. | adverbio #5

6.

7. <pre_sujeito> ::= ε | pronome #1 <pre_sujeito_> | artigo

8. <pre_sujeito_> ::= ε | artigo

9. <nucleo> ::= substantivo #2

10. <pos_sujeito> ::= ε

11. | preposicao #3 <nucleo> <pos_sujeito>

12. | artigo_preposicionado #4 <nucleo> <pos_sujeito>

13. | artigo <nucleo> <pos_sujeito>

14. | <nucleo> <pos_sujeito>

ESTUDO DE CASO Quais ingredientes contém a batata recheada?

ESTUDO DE CASO Quais ingredientes contém a batata recheada?

SUJEITO X RECURSO SUPERIORES

rdf:type

rdfs:subClassOf

2

OBJETO X RECURSO INFERIORES

3

OBJETOS X PROPRIEDADES 4

(RECURSOS PASSO 4)

-

!(RECURSOS 2)

5

VERBO X PROPRIEDADE owl:InverseOf

1

CÓDIGO SPARQL

1. SELECT ?ehDoTipo

2. WHERE {

3. {

4. recurso a ?ehDoTipo

5. }

6. FILTER(!isBlank(?ehDoTipo)

7. }

1. SELECT ?filho

2. WHERE {

3. ?filho rdfs:subClassOf recurso.

4. FILTER(!isBlank(?filho)

5. }

OPERACIONALIDADE

OPERACIONALIDADE DA IMPLEMENTAÇÃO

OPERACIONALIDADE

OPERACIONALIDADE

OPERACIONALIDADE

OPERACIONALIDADE

RESULTADOS E DISCUSSÃO

Funcionalidade OnTo Busca Semantic Lattes

Plataforma Web Web

Domínios de ontologia suportados

Diversos Específico

Reconhecimento de linguagem natural

Sim, as perguntas podem ser elaboradas conforme a gramática especificada

Não, as perguntas são fixas (no protótipo)

Possibilidade de realizar consultas em linguagem

natural

Sim, as perguntas são traduzidas para consultas

SPARQL durante a execução

Sim, mas como as perguntas são fixas, as consultas SPARQL

também são

Possibilidade de realizar consultas em SPARQL

Sim Não

Capacidade de agregar conhecimento à ontologia

existente Não Sim

CONCLUSÃO

Dificuldade em formalizar linguagem natural Limitou Gramática Criação de ontologias Singular Propriedades = verbos

Ontologias de domínios distintos

GALS Entity Framework dotNetRDF

EXTENSÕES

Aperfeiçoar a gramática, não restringindo o tipo das perguntas elaboradas

Utilizar técnicas de Inteligência Artificial (IA) no reconhecimento das perguntas

Permitir a agregação de conhecimento em linguagem SPARQL e em linguagem natural

Implementar cadastros de verbos e de sinônimos para substantivos e verbos para melhorar exatidão das consultas

Permitir que as consultas em linguagem natural sejam realizadas sem a necessidade de escolha de ontologia

APRESENTAÇÃO DO APLICATIVO