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
Download

PeterARausch