Pular para o conteúdo principal

Aula SPARQL - Setembro/21

Como parte das atividades de docência da disciplina INF de 2021.2, ministrei duas aulas de SPARQL no curso do CCE

Planejamento

* requer uma introdução sobre Grafo, Modelo RDF e Schema RDFS, Semantic Web Stack

Dataset de exercício Linked Internet Movie Database (Linkedmdb) - https://triplydb.com/Triply/linkedmdb

Subset do ... IMDb is an online database of information related to world films, television programs, home videos and video games, and internet streams, including cast, production crew, personnel and fictional character biographies, plot summaries, trivia, and fan reviews and ratings.

SPARQL EndPoint para consulta no LinkedMDB - https://triplydb.com/Triply/linkedmdb/sparql/linkedmdb

Download em formato NTriple do LinkedMDB - https://www.cs.toronto.edu/~oktie/linkedmdb/
* caso o EndPoint esteja indisponível podemos carregar em um repositório no Allegro como contingência

Exemplos de sub grafos

The title of the films directed by Quentin Tarantino.

image.png

image.png


15/09

  • Contexto e Motivação para SPARQL 
  • Sintaxe SPARQL - Parte 1

 
Os Dados Conectados podem ser definidos como dados cuja interpretação e valor requerem um bom entendimento das relações de seus elementos. Redes sociais e interação de proteínas em sistemas biológicos são exemplos de dados conectados. Este tipo de dados geralmente é modelado como grafos.
 
RDBMS - SQL x NoSQL
Labeled Property Graph (LPG) and Resource Description Framework (RDF) são os dois modelos de dados em grafo mais populares usados ​​pelos bancos de dados NoSQL na prática.
LPG - Neo4J e TigerGraph
RDF - Triple Store
basic path (navigational/traversal): é usada para determinar a existência de um caminho conectando dois nós de um grafo de propriedades, independentemente dos rótulos de arestas
pattern matching query: é usada para encontrar todos os subgráficos de um grafo de dados que são isomórficos (ou seja, equivalentes na estrutura e nos rótulos) para um determinado padrão de grafo.

OFFSET faz com que as soluções geradas comecem após o número especificado de triplas. Um OFFSET de zero não tem efeito. Usar LIMIT e OFFSET para selecionar subconjuntos diferentes das soluções de consulta se combinado com ORDER BY. 
 
 
SELECT (projeção), CONSTRUCT (recuperar/criar o subgrafo), ASK (verificar existência ou validade) e DESCRIBE (subgrafo centrado no recurso)

20/09

  • Exemplos Sintaxe SPARQL - Parte 1
  • Sintaxe SPARQL - Parte 2
  • LOD
  • Exemplos Sintaxe SPARQL - Parte 2

AVG: Calcula o valor médio de uma expressão numérica.
COUNT: conta o número de vezes que o valor especificado é associado à variável fornecida.
GROUP_CONCAT: executa uma concatenação de string de todos os valores vinculados à variável fornecida.
MAX: Retorna o valor máximo do conjunto de valores especificado.
MIN: Retorna o valor mínimo do conjunto de valores especificado.
SAMPLE: Retorna um valor arbitrário do conjunto de valores especificado.
SUM: Adiciona os valores especificados.

Uma consulta SPARQL pode especificar o conjunto de dados a ser usado para correspondência usando a cláusula FROM e a cláusula FROM NAMED para descrever o conjunto de dados RDF. O FROM/WHERE especifica um OR e não AND. Quando não especifica o FROM é sempre o default graph que faz o merge de todos os grafos. Todos são grafos do mesmo repositório (local).

 

Federated Query SPARQL 1.1: encapsular vários repositórios remotos em um único repositório virtual que pode ser manipulada como se fosse uma executando uma consulta SPARQL paralela. EndPoint é um repositório que responde a consultas SPARQLs


SERVICE <URI>

 

DELETE / INSERT pq não tem UPDATE

A operação LOAD lê um documento RDF de um IRI e insere as triplas no grafo especificado.
A operação CLEAR remove todos as triplas no(s) grafo(s) especificado(s) sem remover o grafo. … Semelhante ao TRUNCATE

A operação CREATE cria um novo grafo em repositórios que suportam grafos vazios.
A operação DROP remove um grafo e todo o seu conteúdo.
A operação COPY modifica um grafo para conter uma cópia de outro.
A operação MOVE move todos os dados de um grafo para outro. 

 

Linked Open Data (LOD) é um conjunto de princípios para o compartilhamento na web de dados, que podem ser usados ​​e distribuídos livremente, de modo interligado com outras bases e legíveis por máquina.


★   torne seus dados disponíveis na Web sob uma licença aberta

★★ torne seus dados disponíveis em formato estruturados

★★★ utilize formatos não-proprietários (ex. CSV e não excel)

★★★★ utilize identificadores únicos e universais (URIs) para identificar recursos

★★★★★  conecte seus dados com dados de outras fontes para prover contexto (dados linkado)

 

Exemplo de queries simples

1) Todas as triplas de um grafo

SELECT ?s ?p ?o
FROM <https://triplydb.com/Triply/linkedmdb/graphs/vocab>
WHERE {?s ?p ?o }

Ou

PREFIX graphs: <https://triplydb.com/Triply/linkedmdb/graphs/>
SELECT ?s ?p ?o
FROM graphs:vocab
WHERE {?s ?p ?o }

2) Todos os predicados de um grafo

PREFIX graphs: <https://triplydb.com/Triply/linkedmdb/graphs/>

SELECT distinct ?pred
FROM graphs:data
WHERE {?s ?pred ?o }

3) Todas as classes de um grafo

PREFIX graphs: <https://triplydb.com/Triply/linkedmdb/graphs/>

SELECT distinct ?class
FROM graphs:data
WHERE {?s a ?class }
ORDER BY ?class

4) Quem são diretores

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX lmdb: <https://triplydb.com/Triply/linkedmdb/vocab/>

SELECT ?d1 ?name
WHERE {?d1 a lmdb:Director; rdfs:label ?name  }
ORDER BY ?name

5) Quem são diretores dos filmes

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX lmdb: <https://triplydb.com/Triply/linkedmdb/vocab/>

SELECT distinct ?title ?name
WHERE {?d1 a lmdb:Director; rdfs:label ?name .
               ?f1 a lmdb:Film; rdfs:label ?title; lmdb:director ?d1
}
ORDER BY ?title

6) Quem são os diretores dos filmes sobre o Batman

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX lmdb: <https://triplydb.com/Triply/linkedmdb/vocab/>

SELECT distinct ?title ?name
WHERE {?d1 a lmdb:Director; rdfs:label ?name .
       ?f1 a lmdb:Film; rdfs:label ?title; lmdb:director ?d1
  FILTER regex(?title, "^Batman")}
ORDER BY ?title

7) Obter todas as triplas ligadas a um nó


8) Verificar se existem filmes brasileiros

PREFIX country: <https://triplydb.com/Triply/linkedmdb/id/country/>
PREFIX lmdb: <https://triplydb.com/Triply/linkedmdb/vocab/>

ASK
WHERE { ?s a lmdb:Film; lmdb:country country:BR .
}

9) Quantidades de filmes por gênero em ordem decrescente (formatar a visualização em um gráfico)

PREFIX lmdb: <https://triplydb.com/Triply/linkedmdb/vocab/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?genre_name (count(?genre_name) AS ?total)
WHERE {
    ?s lmdb:genre ?genre . ?genre rdfs:label ?genre_name
}
GROUP BY ?genre_name
ORDER BY DESC(?total)

10) Frequência das classes - Exercício para o pontuação

PREFIX graphs: <https://triplydb.com/Triply/linkedmdb/graphs/>

SELECT ?class (count(?class) AS ?total)
FROM graphs:data
WHERE {?s a ?class }
GROUP BY ?class
ORDER BY DESC(?total)

Comentários

Postagens mais visitadas deste blog

Aprendizado de Máquina Relacional

 Extraído de -> https://www.lncc.br/~ziviani/papers/Texto-MC1-SBBD2019.pdf   Aprendizado de máquina relacional (AMR) destina-se à criação de modelos estatísticos para dados relacionais (seria o mesmo que dados conectados) , isto é, dados cuja a informação relacional é tão ou mais impor tante que a informação individual (atributos) de cada elemento.    Essa classe de aprendizado tem sido utilizada em diversas aplicações, por exemplo, na extração de informação de dados não estruturados [Zhang et al. 2016] e na modelagem de linguagem natural [Vu et al. 2018].   A adoção de técnicas de aprendizado de máquina relacional em tarefas de comple mentação de grafo de conhecimento se baseia na premissa de existência de regularidades semânticas presentes no mesmo . Modelos grafos probabilísticos  Baseada em regras / heurísticas que não podem garantir 100% de precisão no resultado da inferência mas os resultados podem ser explicados. Modelos de características de ...

Defesa de Doutorado de Grettel Monteagudo Garcia

A última atividade presencial que fiz na PUC-Rio foi assistir a defesa de tese da Grettel Monteagudo Garcia , em 13/03/2020 (uma sexta-feira 13 !!!!). O título da tese é “ A Keyword-based Query Processing Method for Datasets with Schemas ” e me interessou por causa do projeto do NIMA. A proposta parte do cenário onde usuários possam consultar dados, armazenados em bancos de dados relacionais e TripleStores, de maneira semelhante ao Google, ou seja, digitando palavras-chave, e deixando para o sistema recuperar os dados que melhor correspondem ao conjunto de palavras-chave.  Na tese estão descritos um algoritmo e um framework projetados para processar consultas baseadas em palavras-chave para bases de dados com esquema, especificamente bancos relacionais e bases de dados em RDF. A primeira etapa do algoritmo é a conversão do conjunto de palavras chaves em uma consulta abstrata explorando um esquema abstrato . Nesta etapa o principal desafio é achar onde a informação está (os matches...

Metodologia Científica II - continuação

No primeiro post  foram detalhados os 6 primeiros vídeos do canal do Youtube do professor Eduardo Ogasawara do CEFET/RJ   Mais 3 vídeos foram disponibilizados e estão comentados a seguir: Gráficos, Figuras e Tabelas (33 minutos) - como apresentar os resultados das avaliações experimentais. Gráficos: associar análises dos resultados a cada gráfico apresentado, problemas comuns na montagem de gráficos (não usar todo eixo X ou Y, não usar área útil com uma escala adequada a ver o comportamento dos números, não marcar os pontos de observação da série, inconsistência no uso de cores ), escala logarítmica x linear, eixo X para a variável independente e Y para a dependente (resposta), escrever boas legendas para os gráficos, observar se diferenças entre variáveis apresentadas em gráficos separados podem atrapalhar a interpretação dos resultados. Diagramas devem ser pensados de acordo com o propósito, trata-se de uma abstração e cada elemento deve ser explicado no texto, rótulos...