Protótipo de sistema de consultas utilizando a linguagem...

24
Protótipo de sistema de consultas utilizando a linguagem SPARQL Aluno(a): André Luiz Nunes Orientador: Roberto Heinzle

Transcript of Protótipo de sistema de consultas utilizando a linguagem...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.