RDF* and SPARQL* An Alternatjve Approach to Statement-Level - - PowerPoint PPT Presentation

rdf and sparql
SMART_READER_LITE
LIVE PREVIEW

RDF* and SPARQL* An Alternatjve Approach to Statement-Level - - PowerPoint PPT Presentation

RDF* and SPARQL* An Alternatjve Approach to Statement-Level Metadata in RDF Olaf Hartjg @olafiartjg Olaf Hartjg The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF 2 Picture


slide-1
SLIDE 1

RDF* and SPARQL*

An Alternatjve Approach to Statement-Level Metadata in RDF

Olaf Hartjg

@olafiartjg

slide-2
SLIDE 2

2 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF Picture source:htp://akae.blogspot.se/2008/08/dios-mo-doc-has-construido-una-mquina.html

slide-3
SLIDE 3

4 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Property Graphs

htp://tjnkerpop.apache.org/docs/current/reference/#intro Picture source:htp://akae.blogspot.se/2008/08/dios-mo-doc-has-construido-una-mquina.html

slide-4
SLIDE 4

5 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Technically, RDF is beter in many aspects ...

  • Formally defined data model
  • Various well-defined serialization formats
  • Well-defined query language with a formal semantics
  • Natural support for globally unique identifiers
  • Semantics of data can be made explicit in the data itself
  • W3C recommendations (i.e., standards!)
slide-5
SLIDE 5

6 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

But ...

Technically, RDF is beter in many aspects ...

  • Formally defined data model
  • Various well-defined serialization formats
  • Well-defined query language with a formal semantics
  • Natural support for globally unique identifiers
  • Semantics of data can be made explicit in the data itself
  • W3C recommendations (i.e., standards!)

? ? ? ? ?

Picture source:htp://akae.blogspot.se/2008/08/dios-mo-doc-has-construido-una-mquina.html

slide-6
SLIDE 6

7 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Not supported natjvely in the RDF data model

Welles name "Orson Welles" . Welles mentioned Kubrick . Kubrick name "Stanley Kubrick" . Kubrick influencedBy Welles . ??? significance 0.8 .

Kubrick Welles influencedBy significance = 0.8 name = "Stanley Kubrick" name = "Orson Welles" mentioned

  • RDF triples:
slide-7
SLIDE 7

8 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Main Use Case: Statement-Level Metadata

Welles name "Orson Welles" . Welles mentioned Kubrick . Kubrick name "Stanley Kubrick" . Kubrick influencedBy Welles . ??? significance 0.8 .

Kubrick Welles influencedBy significance = 0.8 name = "Stanley Kubrick" name = "Orson Welles" mentioned

  • RDF triples:
  • Certainty scores
  • Weights
  • Temporal restrictions
  • Provenance information
  • etc.
slide-8
SLIDE 8

9 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Standard RDF Reifjcatjon

Welles name "Orson Welles" . Welles mentioned Kubrick . Kubrick name "Stanley Kubrick" . Kubrick influencedBy Welles . s significance 0.8 . s rdf:type rdf:Statement . s rdf:subject Kubrick . s rdf:predicate influencedBy . s rdf:object Welles .

Kubrick Welles influencedBy significance = 0.8 name = "Stanley Kubrick" name = "Orson Welles" mentioned

slide-9
SLIDE 9

10 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Queries?

SELECT ?x WHERE { ?x influencedBy Welles . ?t significance ?sig . ?t rdf:type rdf:Statement . ?t rdf:subject ?x . ?t rdf:predicate influencedBy . ?t rdf:object Welles . FILTER ( ?sig > 0.7 ) } Example 1: List all people that Welles had a significant influence on.

slide-10
SLIDE 10

11 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Queries?

SELECT ?x WHERE { ?x influencedBy Welles . Welles influencedBy ?x . ?t1 rdf:type rdf:Statement . ?t1 rdf:subject ?x . ?t1 rdf:predicate influencedBy . ?t1 rdf:object Welles . ?t1 significance ?sig1 . ?t2 rdf:type rdf:Statement . ?t2 rdf:subject Welles . ?t2 rdf:predicate influencedBy . ?t2 rdf:object ?x . ?t2 significance ?sig2 . FILTER (?sig1 > 0.7 && ?sig2 > 0.7) } Example 2:

slide-11
SLIDE 11

12 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Other Proposals: Single-Triple Named Graphs

  • Example:

– Query:

g1 { Kubrick influencedBy Welles } g1 significance 0.8 . SELECT ?x WHERE { GRAPH ?g { ?x influencedBy Welles } ?g significance ?sig . FILTER ( ?sig > 0.7 ) }

slide-12
SLIDE 12

13 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Other Proposals: Singleton Propertjes

  • Example:

– Query:

Kubrick influencedBy Welles . Kubrick p1 Welles . p1 singletonPropertyOf influencedBy . p1 significance 0.8 . SELECT ?x WHERE { ?x influencedBy Welles . ?x ?p Welles . ?p singletonPropertyOf influencedBy . ?p significance ?sig . FILTER ( ?sig > 0.7 ) }

slide-13
SLIDE 13

15 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Our Proposal: Nested Triples

<<Kubrik influencedBy Welles>> significance 0.8

subject predicate

  • bject

Kubrick influencedBy Welles . s rdf:type rdf:Statement . s rdf:subject Kubrick . s rdf:predicate influencedBy . s rdf:object Welles . s significance 0.8 .

slide-14
SLIDE 14

16 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

… and Nested Triple Paterns

SELECT ?x WHERE { ?x influencedBy Welles . ?t significance ?sig . ?t rdf:type rdf:Statement . ?t rdf:subject ?x . ?t rdf:predicate influencedBy . ?t rdf:object Welles . FILTER ( ?sig > 0.7 ) } SELECT ?x WHERE { <<?x influencedBy Welles>> significance ?sig FILTER (?sig > 0.7) }

slide-15
SLIDE 15

17 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Grouping of Paterns with the Same Subject

SELECT ?x WHERE { ?x influencedBy Welles . ?t significance ?sig ; rdf:type rdf:Statement ; rdf:subject ?x ; rdf:predicate influencedBy ; rdf:object Welles . FILTER ( ?sig > 0.7 ) } SELECT ?x ?sig ?src WHERE { <<?x influencedBy Welles>> significance ?sig ; source ?src . }

  • By the standard SPARQL syntax, we may write:
  • Hence, we may easily query for multiple metadata triples:
slide-16
SLIDE 16

18 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Extension of the BIND Clause

  • Assign matching triples to variables:

SELECT ?x ?sig ?src WHERE { BIND(<<?x influencedBy Welles>> AS ?t) ?t significance ?sig ; source ?src . } SELECT ?x ?sig ?src WHERE { <<?x influencedBy Welles>> significance ?sig ; source ?src . }

slide-17
SLIDE 17

19 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Extension of the BIND Clause

  • Assign matching triples to variables:
  • Now, we may even output triples in query results:

SELECT ?x ?sig ?src WHERE { BIND(<<?x influencedBy Welles>> AS ?t) ?t significance ?sig ; source ?src . } SELECT ?t ?c WHERE { BIND(<<?x influencedBy Welles>> AS ?t) ?t certainty ?c . }

slide-18
SLIDE 18

20 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Example Query 2 Revisited

SELECT ?x WHERE { ?x influencedBy Welles . Welles influencedBy ?x . ?t1 rdf:type rdf:Statement . ?t1 rdf:subject ?x . ?t1 rdf:predicate influencedBy . ?t1 rdf:object Welles . ?t1 significance ?sig1 . ?t2 rdf:type rdf:Statement . ?t2 rdf:subject Welles . ?t2 rdf:predicate influencedBy . ?t2 rdf:object ?x . ?t2 significance ?sig2 . FILTER (?sig1 > 0.7 && ?sig2 > 0.7) }

slide-19
SLIDE 19

21 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Example Query 2 Revisited

SELECT ?x WHERE { ?x influencedBy Welles . Welles influencedBy ?x . ?t1 rdf:type rdf:Statement . ?t1 rdf:subject ?x . ?t1 rdf:predicate influencedBy . ?t1 rdf:object Welles . ?t1 significance ?sig1 . ?t2 rdf:type rdf:Statement . ?t2 rdf:subject Welles . ?t2 rdf:predicate influencedBy . ?t2 rdf:object ?x . ?t2 significance ?sig2 . FILTER (?sig1 > 0.7 && ?sig2 > 0.7) } SELECT ?x WHERE { <<?x influencedBy Welles>> significance ?sig1 . <<Welles influencedBy ?x>> significance ?sig2 . FILTER (?sig1 > 0.7 && ?sig2 > 0.7) }

slide-20
SLIDE 20

22 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Two Perspectjves on RDF* and SPARQL*

  • 2. A logical model in its own

right, with the possibility of a dedicated physical schema

– Extension of the

RDF data model and of SPARQL to capture the notion

  • f nested triples

– Supported by

Blazegraph

  • 1. Purely syntactic sugar on

top of standard RDF and SPARQL

– Can be parsed directly

into standard RDF and SPARQL

– Can be implemented

easily by a small wrapper on top of any existing RDF DBMS

slide-21
SLIDE 21

23 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Further Possible Applicatjons of SPARQL*

  • 2. A logical model in its own

right, with the possibility of a dedicated physical schema

  • 1. Purely syntactic sugar on

top of standard RDF and SPARQL

  • Query datasets that use RDF reification

(or singleton properties, or single-triple named graphs)

– By straightforward translation into ordinary SPARQL queries

  • Query Property Graphs including their edge properties

– By translation into Gremlin, Cypher, etc.

slide-22
SLIDE 22

24 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Contributjons (Perspectjve 1)

  • 1. Purely syntactic sugar on

top of standard RDF and SPARQL

  • 2. A logical model in its own

right, with the possibility of a dedicated physical schema

  • Definition of desirable properties of RDF*-to-RDF mappings

– Information preservation and query result preservation

  • Definition of RDF reification related mappings and

proof that they possess the desirable properties

slide-23
SLIDE 23

25 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Contributjons (Perspectjve 2)

  • 2. A logical model in its own

right, with the possibility of a dedicated physical schema

  • Formalization of the RDF* data model

– Extends the RDF data model with the notions

  • f an RDF* triple and an RDF* graph
  • Definition of syntax and formal semantics of SPARQL*

– Extends the semantics of SPARQL by defining the

result of a SPARQL* query Q over an RDF* graph G eval(Q,G) = { m1, m2, …, mn }

  • 1. Purely syntactic sugar on

top of standard RDF and SPARQL

slide-24
SLIDE 24

26 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Contributjons (Perspectjve 2), cont’d

  • 2. A logical model in its own

right, with the possibility of a dedicated physical schema

  • 1. Purely syntactic sugar on

top of standard RDF and SPARQL

  • Results regarding redundancy in RDF* graphs

– Example:

<<Kubrik influencedBy Welles>> certainty 0.8 .

Kubrik influencedBy Welles .

– Query results are equivalent no matter whether

there is redundancy in an RDF* graph or not

redundant

slide-25
SLIDE 25

27 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Contributjons in Detail

  • 2. A logical model in its own

right, with the possibility of a dedicated physical schema

  • 1. Purely syntactic sugar on

top of standard RDF and SPARQL

  • O Hartig: “Foundations of RDF* and SPARQL* - An Alternative

Approach to Statement-Level Metadata in RDF.” In Proc. of the 11th Alberto Mendelzon International Workshop on Foundations of Data Management (AMW), 2017.

  • O Hartig and Bryan Thompson: “Foundations of an Alternative

Approach to Reification in RDF.” CoRR abs/1406.3399, 2014

Specifies Turtle*

All relevant extensions of the SPARQL spec

slide-26
SLIDE 26

28 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Hold on!

… is this all theory only???

slide-27
SLIDE 27

29 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Implementatjons

  • Full support in the Blazegraph triple store

– “Reification done right” (RDR)

  • Turtle* parser (https://github.com/RDFstar/RDFstarTools)
  • Ongoing:

– Conversion tools

(RDF* ↔ RDF, SPARQL* → SPARQL, RDF* ↔ PGs)

– RDF* store

  • Other implementation attempts

– Oracle Research, OpenLink (Virtuoso), Franz (AllegroGraph)

have indicated interest in standardizing something along the lines of RDF* & SPARQL*

slide-28
SLIDE 28

30 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Streaming data?

slide-29
SLIDE 29

31 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

How can RDF*/SPARQL* be applied in Web stream processing?

  • Extension as in the static-data context
  • Abstraction to model and formalize triple streams
slide-30
SLIDE 30

32 Olaf Hartjg – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

RDF* and SPARQL* in a Nutshell

  • 2. A logical model in its own

right, with the possibility of a dedicated physical schema

  • 1. Purely syntactic sugar on

top of standard RDF and SPARQL <<Kubrik influencedBy Welles>> significance 0.8

subject predicate

  • bject

SELECT ?x WHERE { <<?x influencedBy Welles>> significance ?sig FILTER (?sig > 0.7) }

slide-31
SLIDE 31

www.liu.se