PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS PETER ANTONY RAUSCH...
Transcript of PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS PETER ANTONY RAUSCH...
PROTÓTIPO DE FERRAMENTA DE CONSULTA DE INFORMAÇÕES BASEADAS EM ONTOLOGIAS
PETER ANTONY RAUSCHJOYCE 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
uc Primary Use Cases
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 Campeona
to 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 CASOQuais ingredientes contém a batata recheada?
ESTUDO DE CASOQuais ingredientes contém a batata recheada?
SUJEITO X RECURSO
SUPERIORES
rdf:type
rdfs:subClassOf
2
OBJETO X RECURSO
INFERIORES
3
OBJETOS X PROPRIEDADES4
(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
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
SPARQLSim 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