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

Connected Papers: Uma abordagem alternativa para revisão da literatura

Durante um projeto de pesquisa podemos encontrar um artigo que nos identificamos em termos de problema de pesquisa e também de solução. Então surge a vontade de saber como essa área de pesquisa se desenvolveu até chegar a esse ponto ou quais desdobramentos ocorreram a partir dessa solução proposta para identificar o estado da arte nesse tema. Podemos seguir duas abordagens:  realizar uma revisão sistemática usando palavras chaves que melhor caracterizam o tema em bibliotecas digitais de referência para encontrar artigos relacionados ou realizar snowballing ancorado nesse artigo que identificamos previamente, explorando os artigos citados (backward) ou os artigos que o citam (forward)  Mas a ferramenta Connected Papers propõe uma abordagem alternativa para essa busca. O problema inicial é dado um artigo de interesse, precisamos encontrar outros artigos relacionados de "certa forma". Find different methods and approaches to the same subject Track down the state of the art rese...

Knowledge Graph Embedding with Triple Context - Leitura de Abstract

  Jun Shi, Huan Gao, Guilin Qi, and Zhangquan Zhou. 2017. Knowledge Graph Embedding with Triple Context. In Proceedings of the 2017 ACM on Conference on Information and Knowledge Management (CIKM '17). Association for Computing Machinery, New York, NY, USA, 2299–2302. https://doi.org/10.1145/3132847.3133119 ABSTRACT Knowledge graph embedding, which aims to represent entities and relations in vector spaces, has shown outstanding performance on a few knowledge graph completion tasks. Most existing methods are based on the assumption that a knowledge graph is a set of separate triples, ignoring rich graph features, i.e., structural information in the graph. In this paper, we take advantages of structures in knowledge graphs, especially local structures around a triple, which we refer to as triple context. We then propose a Triple-Context-based knowledge Embedding model (TCE). For each triple, two kinds of structure information are considered as its context in the graph; one is the out...

KnOD 2021

Beyond Facts: Online Discourse and Knowledge Graphs A preface to the proceedings of the 1st International Workshop on Knowledge Graphs for Online Discourse Analysis (KnOD 2021, co-located with TheWebConf’21) https://ceur-ws.org/Vol-2877/preface.pdf https://knod2021.wordpress.com/   ABSTRACT Expressing opinions and interacting with others on the Web has led to the production of an abundance of online discourse data, such as claims and viewpoints on controversial topics, their sources and contexts . This data constitutes a valuable source of insights for studies into misinformation spread, bias reinforcement, echo chambers or political agenda setting. While knowledge graphs promise to provide the key to a Web of structured information, they are mainly focused on facts without keeping track of the diversity, connection or temporal evolution of online discourse data. As opposed to facts, claims are inherently more complex. Their interpretation strongly depends on the context and a vari...