protótipo de sistema de consultas utilizando a linguagem...
TRANSCRIPT
![Page 1: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/1.jpg)
Protótipo de sistema de
consultas utilizando a
linguagem SPARQL
Aluno(a): André Luiz Nunes
Orientador: Roberto Heinzle
![Page 2: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/2.jpg)
Roteiro
• Introdução
• Objetivos
• Web semântica
• Tecnologias para web semântica
• Trabalhos correlatos
• Requisitos
• Especificação
• Implementação
• Operacionalidade
• Resultados e Discussões
• Conclusões
![Page 3: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/3.jpg)
Introdução
• Web atual possui conexões entre páginas, porém não são interpretadas por máquinas;
• Web semântica propõe tornar as informações legíveis para máquinas;
• SPARQL é uma recomendação do World Wide Web Consortium (W3C);
• Não há web semântica sem SPARQL (BERNERS-LEE).
![Page 4: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/4.jpg)
Objetivos
• Desenvolver um protótipo que realize consultas na estrutura da web semântica utilizando SPARQL;
• Demonstrar a utilização da linguagem SPARQL e seu papel na web semântica;
• Evidenciar como a web semântica está implementada atualmente;
• Fornecer um mecanismo de integração das ferramentas que implementam a websemântica.
![Page 5: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/5.jpg)
Fundamentação Teórica
• A web sintática e a web semântica;
• Linked Data;
• Armazenando dados semânticos, o modelo Resource Descriptor Framework (RDF);
• Como consultar informação ?
![Page 6: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/6.jpg)
Formato de uma tripla RDF
![Page 7: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/7.jpg)
Formato de uma query
SPARQL
# declarações dos prefixos
PREFIX foo: <http://example.com/resources/>
...
# definição dos datasets
FROM ...
# cláusula de resultado
SELECT ...
# padrão da consulta
WHERE {
...
}
# modificadores da consulta
ORDER BY ...
![Page 8: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/8.jpg)
Trabalhos Correlatos
![Page 9: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/9.jpg)
Onto busca• Suporta várias ontologias que podem ser
carregadas na aplicação;
• Através de linguagem natural, permite que o usuário faça perguntas que serão interpretadas e verificadas nas ontologias consultadas;
• O usuário pode editar a ontologia através da ferramenta, podendo adicionar ou remover informações e substantivos da ontologia.
![Page 10: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/10.jpg)
Nitelight• Área de design de querys: o coração da
aplicação. No canvas o usuário pode construir querys semânticas interagindo com a tela ao arrastar componentes;
• Navegador de ontologias: para facilitar o processo de formulação das querys e para que o usuário tenha um ponto de partida para suas consultas;
• Visualizador de sintaxe SPARQL: provê ao usuário uma forma de visualizar a query SPARQL gerada pela estrutura desenhada no canvas;
• Visualizar de resultado da query: exibe através de uma tabela os resultados obtidos com a submissão da query.
![Page 11: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/11.jpg)
Requisitos
• Permitir executar consultas utilizando a linguagem SPARQL (RF);
• Submeter pesquisas textuais em bases RDF que possuam um frontend SPARQL (RF);
• Exibir os resultados da consulta em formato textual (RF);
• exibir os resultados da consulta em formato gráfico (árvore) (RF);
• Permitir a seleção da base SPARQL a ser consultada (RF);
• Ser implementada utilizando a linguagem JAVA em ambiente eclipse (RNF);
• Utilizar Java Swing para camada de visão;
• Ser implementada seguindo o padrão Model-View-Controller(MVC) (RNF);
![Page 12: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/12.jpg)
Especificação
• Os formatos suportados para busca;
• Construção do resultado da pesquisa
textual;
• Construção do grafo do linked data;
![Page 13: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/13.jpg)
Diagrama de casos de uso
![Page 14: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/14.jpg)
Diagrama de classes
![Page 15: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/15.jpg)
Diagrama de sequência
![Page 16: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/16.jpg)
Implementação
• Processamento de querys SPARQL;
• Processamento de pesquisas textuais;
• Construção do linked data;
• Query SPARQL padrão.
![Page 17: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/17.jpg)
Método runQuery
public Model runQuery(SparqlQuery query, String frontend) {Query qry = QueryFactory.create(query.getQueryText());QueryExecution qexec =
QueryExecutionFactory.sparqlService(Frontend, qry);
try {if (query.getQueryType().equals("Ask")) {
model = qexec.execAsk();} else if
(query.getQueryType().equals("Construct")) {model = qexec.execConstruct();
} else {results = qexec.execSelect();model = results.getResourceModel();
}} finally {
qexec.close();}return model;
}
![Page 18: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/18.jpg)
Pesquisas textuais
• Executa busca no índice utilizando o
Apache Lucene;
• Se o item for encontrado no índice, é
gerado um Model através de uma consulta
DESCRIBE;
• Não encontrando o índice, é executada a
consulta no frontend utilizando a query
SPARQL padrão;
![Page 19: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/19.jpg)
Query SPARQL padrão
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?URI ?LABEL WHERE {
?URI rdfs:label ?LABEL .
?LABEL <bif:contains> '"+ bifTextToSearch +"'.
FILTER (regex(str(?LABEL), '^"+ textToSearch +"', 'i')) .
FILTER (!regex(str(?URI), '^http://dbpedia.org/resource/Category:')).
FILTER (!regex(str(?URI), '^http://dbpedia.org/resource/List')).
FILTER (!regex(str(?URI), '^http://sw.opencyc.org/')).
FILTER (!regex(str(?URI), '^http://rdf.basekb.com/')).
FILTER (!regex(str(?URI), '^http://rdf.freebase.com/'))
FILTER (lang(?LABEL) = 'en').
}
Limit 100";
![Page 20: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/20.jpg)
Operacionalidade da
Implementação
![Page 21: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/21.jpg)
Operacionalidade da
Implementação
![Page 22: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/22.jpg)
Resultados e Discussões
• Dificuldades encontradas devido a grande mutação dos ambientes utilizados;
• Alguns materiais pesquisados não trouxeram informações claras, o que dificultou o andamento do trabalho;
• Tentativas de implementar um motor de busca sem a ajuda de bibliotecas falharam devido a falta de especificação nos materiais pesquisados;
• Pesquisa utiliza o campo label, limitando de certa forma os resultados;
• Não foi utilizada a propriedade owl:sameAs.
![Page 23: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/23.jpg)
Conclusões e Sugestões
• Todos os objetivos citados foram atendidos;
• Possibilidade de pesquisas textuais, pesquisas com SPARQL e resultados em forma gráfica;
• Objetivos foram atendidos com a ajuda do framework Jena;
• Jena possui formas limitadas de manipulação dos dados;
![Page 24: Protótipo de sistema de consultas utilizando a linguagem ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2014_1_andre-luiz-nunes… · Introdução • Web atual possui conexões](https://reader035.vdocuments.net/reader035/viewer/2022071218/605016328389384e762857f1/html5/thumbnails/24.jpg)
Conclusões e Sugestões
• Converter a ferramenta de forma que seja possível utilizá-la via interface web;
• Incrementar o processamento de pesquisas textuais;
• Melhorar a visualização do grafo do linked data;
• Exibir vários resultados em forma de tabela, permitindo que seja gerado o linked data para cada um deles;
• Através do mapeamento da DBpedia, localizar os frontends na internet, sem a necessidade de cadastrá-los;
• Criar um mecanismo de pesquisa que implemente um agente da web semântica para realizar as buscas.