25
The RDF* and SPARQL* Approach to Annotate Statements in RDF and to Reconcile RDF and Property Graphs Olaf Harg @olaarg

The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

The RDF* and SPARQL* Approachto Annotate Statements in RDF andto Reconcile RDF and Property Graphs

Olaf Hartig@olafhartig

Page 2: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

2Olaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Not supported natively in the RDF data model

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

Kubrick WellesinfluencedBy

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

mentioned

● RDF triples:

Page 3: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

3Olaf Hartig – 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 WellesinfluencedBy

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

mentioned

● RDF triples:

● Certainty scores● Weights● Temporal restrictions● Provenance information● etc.

Page 4: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Standard RDF Reification

  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 WellesinfluencedBy

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

mentioned

Page 5: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

5Olaf Hartig – 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.

Page 6: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

6Olaf Hartig – 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:

Page 7: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

7Olaf Hartig – 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 )}

Page 8: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Other Proposals: Singleton Properties

● 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 )}

Page 9: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Our Proposal: Nested Triples

<<Kubrik influencedBy Welles>> significance 0.8

subject predicate object

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

Page 10: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

… and Nested Triple Patterns

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)}

Page 11: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Grouping of Patterns 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:

Page 12: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

12Olaf Hartig – 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 . }

Page 13: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

13Olaf Hartig – 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 .}

Page 14: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

14Olaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

Example Query 2 RevisitedSELECT ?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)}

Page 15: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Example Query 2 RevisitedSELECT ?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)}

Page 16: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Two Perspectives 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 modeland of SPARQL to capture the notionof 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

Page 17: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Further Possible Applications 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.

Page 18: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Contributions (Perspective 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 andproof that they possess the desirable properties

Page 19: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Contributions (Perspective 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

of 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

Page 20: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Contributions (Perspective 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 whetherthere is redundancy in an RDF* graph or not

redundant

Page 21: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Contributions 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 11th Alberto Mendelzon Int. W. on Foundations of Data Mgmt (AMW), 2017.

● Olaf Hartig: “Reconciliation of RDF* and Property Graphs.” In CoRR abs/1409.3288, 2014– Formal definition of direct mappings b/w RDF* and Property Graphs

● 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

Page 22: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Hold on!

… is this all theory only???

Page 23: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

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

Implementations

● Full support in the Blazegraph triple store– “Reification done right” (RDR)

● Full support in Cambridge Semantics’ AnzoGraph

● RDF* Tools (https://github.com/RDFstar/RDFstarTools)– RDF* / SPARQL* extension of Apache Jena– Conversion tools (RDF* ↔ RDF, SPARQL* → SPARQL)– Simple query execution tool (SPARQL* over RDF*)

● RDF*-PG-Connection Tools (https://github.com/RDFstar/RDFstarPGConnectionTools)– Conversion tools (RDF* ↔ PGs)

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

Page 24: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

24Olaf Hartig – 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 object

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

Page 25: The RDF* and SPARQL* Approach - Olaf Hartigolafhartig.de/slides/W3CWorkshop2019RDFStarAndSPARQLStar.pdfOlaf Hartig – The RDF*/SPARQL* Approach to Statement-Level Metadata in RDF

www.liu.se