PROTTIPO DE FERRAMENTA DE CONSULTA DE INFORMAES BASEADAS
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 Resource W 3 C: 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 W 3 C � 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 q q q 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. w 3. 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: sub. Class. Of 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: on. Property rdf: resource="comer"/> 8. <owl: some. Values. From rdf: resource="animal"/> 9. </owl: Restriction> 10. </owl: Class> 11. <owl: Class rdf: ID="leao"> 12. 13. <rdfs: sub. Class. Of 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. w 3. 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 q REQUISITOS q PERGUNTAS SUPORTADAS q DIAGRAMA DE CASOS DE USO q 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
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?
DIAGRAMA DE CASOS DE USO
DIAGRAMA DE CLASSES
DIAGRAMA DE CLASSES
DIAGRAMA DE CLASSES
IMPLEMENTAÇÃO q TÉCNICAS E FERRAMENTAS q ONTOLOGIAS q GRAMÁTICA q ESTUDO DE CASO
TÉCNICAS E FERRAMENTAS C# � ASP. NET MVC � Entity Framework � Razor � dot. Net. RDF Java. Script � JQUERY HTML 5 GALS Ne. On Toolkit Visual Studio 2010 SQL Server � SQL Managment Studio
ONTOLOGIAS Gestão de Segurança da Informação � Ativo de informação � 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: Inverse. Of 2 SUJEITO X RECURSO SUPERIORES rdf: type rdfs: sub. Class. Of 3 OBJETO X RECURSO INFERIORES 4 OBJETOS X PROPRIEDADES 5 (RECURSOS PASSO 4) !(RECURSOS 2)
CÓDIGO SPARQL 1. SELECT ? eh. Do. Tipo 2. WHERE { { 3. recurso a ? eh. Do. Tipo 4. 5. } 6. FILTER(!is. Blank(? eh. Do. Tipo) 7. } 1. SELECT ? filho 2. WHERE { 3. ? filho rdfs: sub. Class. Of recurso. 4. FILTER(!is. Blank(? filho) 5. }
OPERACIONALIDADE
OPERACIONALIDADE DA IMPLEMENTAÇÃO
OPERACIONALIDADE
OPERACIONALIDADE
RESULTADOS E DISCUSSÃO Funcionalidade On. To Busca Semantic Lattes Plataforma 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 � dot. Net. RDF
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
APRESENTAÇÃO DO APLICATIVO
- Slides: 36