MI-PDB, MIE-PDB: Advanced Database Systems

Similar documents
RDF AND SPARQL. Part IV: Syntax of SPARQL. Dresden, August Sebastian Rudolph ICCL Summer School

Semantic Web Information Management

SPARQL ME-E4300 Semantic Web,

SEMANTIC WEB 07 SPARQL TUTORIAL BY EXAMPLE: DBPEDIA IMRAN IHSAN ASSISTANT PROFESSOR, AIR UNIVERSITY, ISLAMABAD

SPARQL By Example: The Cheat Sheet

SPARQL. Fausto Giunchiglia and Mattia Fumagallli. University of Trento

Day 2. RISIS Linked Data Course

FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES

Querying RDF & RDFS. Several query languages exist to retrieve

KNOWLEDGE GRAPHS. Lecture 4: Introduction to SPARQL. TU Dresden, 6th Nov Markus Krötzsch Knowledge-Based Systems

SPARQL. Dr Nicholas Gibbins

INFO216: Advanced Modelling

RDF AND SPARQL. Part V: Semantics of SPARQL. Dresden, August Sebastian Rudolph ICCL Summer School

SPARQL QUERY LANGUAGE WEB:

SPARQL: An RDF Query Language

B4M36DS2, BE4M36DS2: Database Systems 2

Lars Schmidt-Thieme, Information Systems and Machine Learning Lab (ISMLL), University of Hildesheim, Germany, Course on XML and Semantic Web

XQ: An XML Query Language Language Reference Manual

Filter: Evaluable Expression. List Syntax. Tests. Filter: Evaluable Expression. Tests : functions. Tests 06/09/2013. (1?x v )

SPAR-QL. Mario Arrigoni Neri

SQL Data Querying and Views

Introduction to a Web of Linked Data

Chapter 3 Querying RDF stores with SPARQL

Web NDL Authorities SPARQL API Specication

SQL: Data Querying. B0B36DBS, BD6B36DBS: Database Systems. h p:// Lecture 4

Querying the Semantic Web

XML and Semantic Web Technologies. III. Semantic Web / 3. SPARQL Query Language for RDF

Using SPARQL with RDFS and OWL Entailment

Scheme Tutorial. Introduction. The Structure of Scheme Programs. Syntax

Implementing and extending SPARQL queries over DLVHEX

SPARQL Protocol And RDF Query Language

Interacting with Linked Data Part I: General Introduction

Unit 2 RDF Formal Semantics in Detail

Introduction to Semantic Web Databases. Version 1 Prepared By: Amgad Madkour Ph.D. Candidate Purdue University April 2018

COMPUTER AND INFORMATION SCIENCE JENA DB. Group Abhishek Kumar Harshvardhan Singh Abhisek Mohanty Suhas Tumkur Chandrashekhara

Today s Plan. INF3580 Semantic Technologies Spring Outline. Oblig 4. Lecture 13: More SPARQL. Kjetil Kjernsmo.

Multi-agent Semantic Web Systems: RDF Models

Shape Constraint Language

Unit 1 a Bird s Eye View on RDF(S), OWL & SPARQL

BASI DI DATI II 2 modulo Parte VIII: SPARQL

RESOURCES DESCRIPTION FRAMEWORK: RDF

The PCAT Programming Language Reference Manual

3. Queries Applied Artificial Intelligence Prof. Dr. Bernhard Humm Faculty of Computer Science Hochschule Darmstadt University of Applied Sciences

From the Web to the Semantic Web: RDF and RDF Schema

Semantic Web. Querying on the Web: XQuery, RDQL, SparQL. Morteza Amini. Sharif University of Technology Fall 94-95

Database Systems: Design, Implementation, and Management Tenth Edition. Chapter 7 Introduction to Structured Query Language (SQL)

Transforming Data from into DataPile RDF Structure into RDF

FOUNDATIONS OF DATABASES AND QUERY LANGUAGES

Web 2.0 Lecture 8: Resource Description Framework

SEMANTIC WEB 03 RDF DATA MODEL RESOURCE DESCRIPTION FRAMEWORK IMRAN IHSAN ASSISTANT PROFESSOR, AIR UNIVERSITY, ISLAMABAD

CA4003 Compiler Construction Assignment Language Definition

Semantic Web In Depth: Resource Description Framework. Dr Nicholas Gibbins 32/4037

SQL functions fit into two broad categories: Data definition language Data manipulation language

Today s Plan. INF3580/4580 Semantic Technologies Spring Reminder: RDF triples. Outline. Lecture 4: The SPARQL Query Language.

infoh509 xml & web technologies lecture 9: sparql Stijn Vansummeren February 14, 2017

Semantic Web Technologies: Assignment 1. Axel Polleres Siemens AG Österreich

Semantic Web and Python Concepts to Application development

CS Knowledge Representation and Reasoning (for the Semantic Web)

Data Formats. Course NDBI040: Big Data Management and NoSQL Databases. Lecture 06: Martin Svoboda

R2RML: RDB to RDF Mapping Language

SMURF Language Reference Manual Serial MUsic Represented as Functions

KNOWLEDGE GRAPHS. Lecture 11: Cypher / Knowledge Graph Quality. TU Dresden, 8th Jan Markus Krötzsch Knowledge-Based Systems

Querying Semantic Web Data

Semantic Days 2011 Tutorial Semantic Web Technologies

Flat triples approach to RDF graphs in JSON

PGQL 0.9 Specification

The SPL Programming Language Reference Manual

Tequila - a query language for the Semantic Web

Building Blocks of Linked Data

Nested Queries in SPARQL

Z Notation. June 21, 2018

CS 582 Database Management Systems II

Chapter # 7 Introduction to Structured Query Language (SQL) Part II

Today s Plan. 1 Repetition: RDF. 2 Jena: Basic Datastructures. 3 Jena: Inspecting Models. 4 Jena: I/O. 5 Example. 6 Jena: ModelFactory and ModelMaker

KNOWLEDGE GRAPHS. Lecture 2: Encoding Graphs with RDF. TU Dresden, 23th Oct Markus Krötzsch Knowledge-Based Systems

Formalising the Semantic Web. (These slides have been written by Axel Polleres, WU Vienna)

II. Structured Query Language (SQL)

Parser Tools: lex and yacc-style Parsing

II. Structured Query Language (SQL)

Multi-agent and Semantic Web Systems: Querying

SQL. Lecture 4 SQL. Basic Structure. The select Clause. The select Clause (Cont.) The select Clause (Cont.) Basic Structure.

Exact Numeric Data Types

INF3580/4580 Semantic Technologies Spring 2015

Semantic Web Systems Querying Jacques Fleuriot School of Informatics

Contents. G52IWS: The Semantic Web. The Semantic Web. Semantic web elements. Semantic Web technologies. Semantic Web Services

B E C Y. Reference Manual

Topic Maps Query Language

Towards Equivalences for Federated SPARQL Queries

Semantic Web. MPRI : Web Data Management. Antoine Amarilli Friday, January 11th 1/29

Oracle Database 11g: SQL and PL/SQL Fundamentals

Optional SQL Feature Summary

Today s Plan. 1 Repetition: RDF. 2 Jena: Basic Datastructures. 3 Jena: Inspecting Models. 4 Jena: I/O. 5 Example. 6 Jena: ModelFactory and ModelMaker

Chapter 7. Introduction to Structured Query Language (SQL) Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel

CSC Web Programming. Introduction to SQL

Semantics in RDF and SPARQL Some Considerations

Semantic reasoning for dynamic knowledge bases. Lionel Médini M2IA Knowledge Dynamics 2018

Knowledge Representation for the Semantic Web

Reminder: RDF triples

On the Semantics of Heterogeneous Querying of Relational, XML and RDF Data with XSPARQL

Processing SparQL Queries in an Object-Oriented Mediator

Transcription:

MI-PDB, MIE-PDB: Advanced Database Systems http://www.ksi.mff.cuni.cz/~svoboda/courses/2015-2-mie-pdb/ Lecture 11: RDF, SPARQL 3. 5. 2016 Lecturer: Martin Svoboda svoboda@ksi.mff.cuni.cz Author: Martin Svoboda Faculty of Mathematics and Physics, Charles University in Prague Course NSWI144: Linked Data

RDF Resource Description Framework

Introduction RDF Resource Description Framework Language for representing information about resources in the World Wide Web W3C recommendations Concepts and abstract syntax http://www.w3.org/tr/rdf-concepts/ Semantics http://www.w3.org/tr/rdf-mt/ MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 3

Statements RDF Idea: statements about resources Resource Anything that is identifiable by an IRI Usually things identified by standard URLs but also things that may not be directly retrievable Statements Triples inspired by natural languages Subject Predicate Object http://example.cz/is#student358 http://example.cz/is#name "John" MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 4

Statements Components of triples Subject Describes the thing the statement is about Predicate Describes the property or characteristic of the subject Object Describes the value of that property MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 5

Statements Resource identifiers IRIs IRI with an optional fragment identifier http://example.cz/is#student358 mailto:svoboda@ksi.mff.cuni.cz urn:issn:0167-6423 Unicode characters Qualified names Similar idea as prefixes for namespaces in XML ex: = http://example.cz/is# ex:student358 MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 6

Statements Domains for triple components Identifiers IRIs Blank node identifiers Literals Special and only locally valid identifiers (within a file etc.) _:a185 Plain or typed values with or without language tags "John" "John"^^xsd:string "Praha"@cs "Prague"@en MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 7

Statements Allowed structure of triples Subject IRI or blank node identifier Predicate IRI Object IRI or blank node identifier or literal MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 8

Data Model RDF data model Directed labeled multigraph Vertices for subjects and objects Labeled directed edges for particular triples MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 9

Data Model Example my:index.html dc:creator my:staff/85740. my:index.html my:created "June 16, 1999". my:index.html dc:language "en". my:index.html dc:creator my:created dc:language my:staff/85740 June 16, 1999 en MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 10

Blank Nodes Example my:staff/8574 my:hasaddress _:a185. _:a185 my:street "Malostranske nam. 25". _:a185 my:city "Prague". _:a185 my:zipcode "11800". my:staff/8574 my:hasaddress my:street my:city my:zipcode Malostranske nam. 25 Prague 11800 MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 11

SPARQL Query Language for RDF

Introduction SPARQL Protocol and RDF Query Language RDF query language Required and optional graph patterns, their conjunctions and disjunctions, subqueries, negation, aggregation, value constructors, W3C recommendations Version 1.0 (2008) https://www.w3.org/tr/rdf-sparql-query/ Version 1.1 (2013) 11 recommendations: query language, update facility, federated queries, protocol, result formats, https://www.w3.org/tr/sparql11-query/ MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 13

Sample Data Data @prefix ex: <http://example.cz/is#>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. ex:s1 rdf:type ex:student ; ex:name "Thomas" ; ex:age "26". ex:s2 rdf:type ex:student ; ex:name "Peter". ex:s3 rdf:type ex:student ; ex:name "John" ; ex:age "30". ex:s1 foaf:knows ex:s2. ex:s2 foaf:knows ex:s3. MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 14

Sample Query Query expression PREFIX ex: <http://example.cz/is#> SELECT?n?a WHERE { }?s rdf:type ex:student ; ex:name?n ; ex:age?a. Query result?n?a "Thomas" "26" "John" "30" MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 15

Graph Pattern Matching Graph pattern expressions Based on ordinary triples Subject, predicate and object components IRI references, blank nodes, literals and variables?name or $name We are attempting to find subgraphs of the data graph that are matched by the query patterns Based on substitution of variables However, SPARQL is not just a simple graph matching! MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 16

Graph Pattern Matching ex:student rdf:type foaf:knows rdf:type ex:s1 ex:age ex:name 26 Thomas rdf:type ex:s3 ex:age foaf:knows ex:name 30 ex:s2 John ex:name Peter ex:student rdf:type?s ex:age?a?s?n?a ex:name ex:s1 "Thomas" "26"?n ex:s3 "John" "30" MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 17

Graph Pattern Matching Graph pattern expressions Basic graph pattern as a set of triples and other more complex patterns E.g. group, optional, How the matching works? Basic graph pattern matches a subgraph of the RDF data graph when terms from that subgraph may be substituted for the variables and the result is RDF graph equivalent to the subgraph MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 18

Graph Pattern Matching Equivalency of literals Language tags When tags are specified, they must be identical "Praha" "Praha"@cs "Prague"@en Typed literals When types are specified, they must be identical Shortcuts available for literals of common types 1 = "1"^^xsd:integer 1.5 = "1.5"^^xsd:decimal true = "true"^^xsd:boolean MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 19

Graph Pattern Matching Equivalency of blank nodes in a data graph Distinct nodes within a given document scope in a query pattern Blank nodes act as non-selectable variables Blank node labels in a query expression cannot be expected to correspond to blank nodes from a source data graph! in a query result Distinct nodes within a given result scope Blank node labels in a query result may not correspond to blank nodes from the source graph and nor the query! MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 20

Query Result Variable binding (?n, "Thomas") Solution Set of variable bindings Represents one way how query variables can be substituted Not all variables need to be bound! { (?n, "Thomas"), (?a, "26") } Solution sequence Ordered multiset of solutions { (?n, "Thomas"), (?a, "26") }, { (?n, "John"), (?a, "30") }?n "Thomas"?n?a "Thomas" "26"?n?a "Thomas" "26" "John" "30" MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 21

Query Result Solution compatibility Two solutions are mutually compatible if and only if for each variable they share both the corresponding variable bindings are equivalent Examples { (?s, ex:s1), (?a, "26") } and { (?s, ex:s1), (?n, "Thomas") } are compatible solutions { (?s, ex:s1), (?n, "Thomas"), (?a, "26") } and { (?s, ex:s1), (?n, "John") } are not compatible solutions (since there is at least one conflict) MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 22

Select Queries Basic query structure Optional prologue declarations PREFIX, BASE Selection clauses SELECT list of output variables FROM dataset to be queried WHERE required graph pattern and filtering expressions Optional solution modifiers GROUP BY, HAVING ORDER BY, LIMIT, OFFSET MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 23

Select Queries Basic query structure Both the prologue declarations and solution modifiers are optional Prologue declarations: BASE and PREFIX clauses MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 24

Prologue Declarations PREFIX clause Definition of prefix labels for IRI references Example PREFIX my: <http://example.cz/> Then a prefixed name my:x corresponds to <http://example.cz/x> MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 25

Prologue Declarations BASE clause Usage of relative IRI references Example BASE <http://example.cz/> Then a relative IRI <x> corresponds to <http://example.cz/x> MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 26

Graph Patterns WHERE clause Graph patterns Basic when a set of triple patterns must all match Group when a set of graph patterns must all match Optional when additional patterns may extend solutions Alternative when two or more possible patterns are tried Graph when a particular dataset should be queried Inductive construction Patterns can be combined into more complex ones MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 27

Graph Patterns Basic graph pattern... when a set of triple patterns must all match Syntax Ordinary triples separated by dots and their abbreviated forms inspired by Turtle notation Object lists using, Predicate-object lists using ; Blank nodes using [] Collections using () Examples s p1 o1. s p1 o2. s p2 o3 s p1 o1, o2 ; p2 o3 MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 28

Graph Patterns Example PREFIX ex: <http://example.cz/is#> SELECT?n?a WHERE { }?s rdf:type ex:student.?s ex:age?a.?s ex:name?n.?s?a ex:s1 "26"?s ex:s1 ex:s2 ex:s3?s?n ex:s3 "30" ex:s1 ex:s2 ex:s3 "Thomas" "Peter" "John"?s?n?a ex:s1 "Thomas" "26" ex:s3 "John" "30" MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 29

Graph Patterns Basic graph pattern Interpretation All the involved triple patterns must match I.e. we combine them as if they were in conjunction Note that all variables need to be bound I.e. if any of the involved variables cannot be bound, then the entire basic graph pattern cannot be matched! MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 30

Graph Patterns Group graph pattern when a set of graph patterns must all match Syntax two alternatives: Nested select query SELECT clause, WHERE clause, and solution modifiers Block with a set of graph patterns: MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 31

Graph Patterns Group graph pattern Notes Empty group patterns {} are also allowed Interpretation All the involved patterns must match I.e. we combine them as if they were in conjunction MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 32

Graph Patterns Optional graph pattern when additional patterns may extend the solution Syntax Interpretation If the optional part does not match, it creates no bindings but does not eliminate the solution MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 33

Graph Patterns Optional graph pattern Example PREFIX ex: <http://example.cz/is#> SELECT?n?a WHERE { }?s rdf:type ex:student ; ex:name?n. OPTIONAL {?s ex:age?a. }?n?a "Thomas" "26" "Peter" "John" "30" MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 34

Graph Patterns Alternative graph pattern when two or more possible patterns are tried Syntax Interpretation Standard union of multisets of solutions MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 35

Dataset Clause Dataset Collection of graphs to be queried It contains one default graph, and zero or more named graphs Each of these graphs is indentified by an IRI Active graph Particular graph used for the evaluation We can switch the default graph to a selected named graph MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 36

Dataset Clause FROM clause Definition of all the graphs to be used in a query Default graph = merge of all the declared unnamed graphs It is empty, when no unnamed FROM clause is available Examples FROM <http://example.cz/students> FROM <http://example.cz/teachers> FROM NAMED <http://example.cz/courses> MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 37

Graph Patterns Graph graph pattern when a particular named graph should be queried Syntax Examples GRAPH <http://example.cz/courses> { } Sets the specified named graph as the active one GRAPH?g { } Ranges over all the named graphs defined in the dataset MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 38

Variable Assignments Bind "graph pattern" Assigns a value to a (not yet bound!) variable Syntax MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 39

Filter Constraints Filter "graph pattern" Motivation Impose constraints on variables and their values Preserves only solutions that satisfy a given condition Example FILTER ( BOUND(?age) && (?age < 20) ) Usage Boolean expressions with operators and functions Filters are applied on the entire group graph patterns MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 40

Filter Constraints Boolean expressions Logical connectives! && 3 value logic True, false, error MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 41

Filter Constraints Relational expressions Comparisons < <= >= > Unbound variable < blank node < IRI < literal =!= Set membership tests IN NOT IN MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 42

Filter Constraints Numeric expressions Arithmetic operators Unary + Binary + * / Primary expressions Literals: numeric, Boolean, RDF Variables Built-in calls Parenthesized expression MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 43

Filter Constraints Built-in calls Term accessors STR lexical form of IRI or literal LANG language tag of a literal DATATYPE data type of a literal Variable tests BOUND whether a variable is assigned a value isiri, isblank, isliteral Existence tests EXISTS and NOT EXISTS MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 44

Select Clause SELECT clause Specification of output variables Asterisk * selects all the variables Solution modifiers DISTINCT Removes all duplicates from the solution sequence REDUCED Permits elimination of some non-unique solutions MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 45

Solution Modifiers Query structure PREFIX SELECT DISTINCT REDUCED FROM WHERE { } ORDER BY LIMIT OFFSET Objective Modification of the entire sequence of solutions MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 46

Solution Modifiers ORDER BY clause Mutually orders solutions in the solutions sequence Behavior ASC( ) = ascending (default), DESC( ) = descending Unbound variable < blank node < IRI < literal Example ORDER BY?name DESC(?age) MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 47

Solution Modifiers LIMIT clause Limits the number of solutions in the result (Always) should be preceded by ORDER BY modifier Otherwise the order of solutions is undefined Example ORDER BY?name LIMIT 10 OFFSET clause Index of the first reported item from the sequence Example ORDER BY?name LIMIT 10 OFFSET 20 MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 48

Solution Modifiers LIMIT and OFFSET clauses MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 49

Query Forms Forms SELECT standard solutions sequence ASK test for a solution existence DESCRIBE retrieval of a graph about resources CONSTRUCT construction of a graph from a pattern MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 50

Query Forms SELECT query form SPARQL querying considered so far Result Solutions sequence as an ordered multiset of solutions Syntax MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 51

Query Forms ASK query form Checks whether at least one solution exists Result true or false Syntax MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 52

Query Forms DESCRIBE query form Retrieves an RDF graph with data about selected resources Result Non-deterministic implementation-dependent behavior MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 53

Query Forms DESCRIBE query form Examples DESCRIBE <http://example.cz/is#s1> PREFIX ex: <http://example.cz/is#> DESCRIBE?s FROM <http://example.cz/is> WHERE {?s rdf:type ex:student } MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 54

Query Forms CONSTRUCT query form Construction of new graphs from solutions sequences Result RDF graph constructed from a template Illegal triples (unbound or invalid) are thrown away MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 55

Query Forms CONSTRUCT query form Example PREFIX ex: <http://example.cz/is#> CONSTRUCT {?s ex:name concat(?n1, " ",?n2). } FROM <http://example.cz/is> WHERE {?s ex:firstname?n1 ; ex:lastname?n2. } MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 56

Advanced Constructs SPARQL 1.1 Constructs that were not available in SPARQL 1.0 Aggregation GROUP BY and HAVING clauses (solution modifiers) Negation NOT EXSITS constraint MINUS graph pattern Property paths MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 57

Aggregation Motivation Standard aggregation of solution sequences (tables) inspired by relational databases and SQL GROUP BY + HAVING clauses MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 58

Aggregation Aggregates MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 59

Aggregation Example Total capacity of all rooms in each building PREFIX ex: <http://example.cz/is#> SELECT?b (SUM(?c) AS?capacity) FROM <http://example.cz/faculty/> WHERE {?r ex:inbuilding?b ; ex:capacity?c. } GROUP BY?b MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 60

Negation EXISTS constraint when the existence of solutions should be tested Syntax Notes Does not generate any additional bindings MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 61

Negation MINUS graph pattern when compatible solutions should be removed Syntax Idea Solutions of the left pattern are preserved if and only if they are not compatible with any solution from the right pattern I.e. note that this minus graph pattern does not correspond to a traditional set minus operator! MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 62

Conclusion SPARQL Model Graph pattern matching and substitution of variables Result = ordered multiset of solutions Solution = set of variable bindings Syntax PREFIX SELECT DISTINCT REDUCED FROM WHERE { } GROUP BY HAVING ORDER BY LIMIT OFFSET MI-PDB, MIE-PDB: Advanced Database Systems Lecture 11: RDF, SPARQL 3. 5. 2016 63