PROTÓTIPO DE FERRAMENTA DE CONSULTA DE...
Transcript of PROTÓTIPO DE FERRAMENTA DE CONSULTA DE...
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 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
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»
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?
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. }
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