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
Linguagens
Resource
e representação de uma área de conhecimento
W3C:
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
FUNDAMENTAÇÃO TEÓRICA
LINGUAGENS DE DESCRIÇÃO E CONSULTA
PARA WEB SEMÂNTICA
PROCESSAMENTO DE LINGUAGEM
NATURAL
TRABALHOS CORRELATOS
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.
6.
7.
8.
9.
10.
11.
<rdf:RDF>
<rdf:Description about:"http://www.exemplo.com.br">
<f:criou>
Peter
</f:criou>
</rdf:Description>
</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.
6.
<owl:Class rdf:ID="carnivoro">
<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.
13.
<rdfs:subClassOf rdf:type="carnivoro"/>
</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
Análise sintática
Estrutura
palavras
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
ESPECIFICAÇÃO
REQUISITOS
PERGUNTAS SUPORTADAS
DIAGRAMA DE CASOS DE USO
DIAGRAMA DE CLASSES
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
Cadastros e Manutenção
UC03 - Manter
Ontologia
«extend»
UC04 - Recuperar
Arquiv o OWL
Busca
UC06 - Buscar com
Linguagem SPARQL
UC01 - Cadastrar
Ontologia
«include»
Usuário
UC07 - Buscar com
Linguagem Natural
UC02 - Cadastrar
Substantiv o
UC05 - Manter
Substantiv o
DIAGRAMA DE CLASSES
DIAGRAMA DE CLASSES
DIAGRAMA DE CLASSES
IMPLEMENTAÇÃO
TÉCNICAS E FERRAMENTAS
ONTOLOGIAS
GRAMÁTICA
ESTUDO DE CASO
TÉCNICAS E FERRAMENTAS
C#
ASP.NET
MVC
Entity Framework
Razor
dotNetRDF
JavaScript
JQUERY
HTML5
GALS
NeOn Toolkit
Visual Studio 2010
SQL Server
SQL
Managment Studio
ONTOLOGIAS
Gestão de Segurança
da Informação
Ativo de informação
Vulnerabilidade
Vulnerabilidade Lógica
Vulnerabilidade Física
Controle
Ambiente Físico
Software
Hardware
Controle Lógico
Controle Físico
Ameaça
Malware
Atacante Interno
Atacante Externo
Alimentos
Bebida
Suco
Futebol
Ingrediente
Prato
Doce
Salgado
País
Posição
Time
Campeonato
Copa
Liga
Jogador
Continente
GRAMÁTICA
1.
2.
<frase> ::= <sujeito> <negacao> <verbo> <objeto> pontuacao
| <sujeito_> <ligacao> <objeto_> <negacao> <verbo___> pontuacao
3.
4.
5.
<sujeito> ::= <pre_sujeito> <nucleo> <pos_sujeito>
| 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?
1
VERBO X PROPRIEDADE
owl:InverseOf
2
SUJEITO X RECURSO
SUPERIORES
rdf:type
rdfs:subClassOf
3
OBJETO X RECURSO
INFERIORES
4 OBJETOS X PROPRIEDADES
5
(RECURSOS PASSO 4)
!(RECURSOS 2)
CÓDIGO SPARQL
1.
SELECT ?ehDoTipo
2.
WHERE {
{
3.
recurso a ?ehDoTipo
4.
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 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