site:recherche:logiciels:sparqlwithspark
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
site:recherche:logiciels:sparqlwithspark [13/09/2016 17:56] – [Chain queries] hubert | site:recherche:logiciels:sparqlwithspark [17/11/2023 18:39] (Version actuelle) – amann | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== SPARQL query processing with Apache Spark ====== | ====== SPARQL query processing with Apache Spark ====== | ||
- | This web page is a companion to the "SPARQL query processing with Apache Spark" paper submitted at EDBT 2017. | + | This wiki is a companion to the following publications: |
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
- | It provides access to some resources related to the evaluation section. | + | It provides access to the resources related to the evaluation section |
+ | |||
+ | See also [[en: | ||
===== Data sets ===== | ===== Data sets ===== | ||
* DrugBank | * DrugBank | ||
* DBPedia | * DBPedia | ||
- | * LUBM | + | * LUBM: LU100M, LU1B |
- | * WatDiv | + | * WatDiv: see [[en: |
===== Query processing ===== | ===== Query processing ===== | ||
+ | |||
+ | ==== WatDiv queries ==== | ||
+ | |||
+ | |||
+ | === Query S1 === | ||
+ | <code sparql> | ||
+ | SELECT ?v0 ?v1 ?v3 ?v4 ?v5 ?v6 ?v7 ?v8 ?v9 WHERE { | ||
+ | ?v0 gr:includes ?v1 . %v2% gr:offers ?v0 . | ||
+ | ?v0 gr:price ?v3 . ?v0 gr: | ||
+ | ?v0 gr: | ||
+ | ?v0 sorg: | ||
+ | ?v0 sorg: | ||
+ | ?v0 sorg: | ||
+ | </ | ||
+ | |||
+ | See [[en: | ||
+ | |||
+ | === Query F5 === | ||
+ | <code sparql> | ||
+ | SELECT ?v0 ?v1 ?v3 ?v4 ?v5 ?v6 WHERE { | ||
+ | ?v0 gr:includes ?v1 . %v2% gr:offers ?v0 . | ||
+ | ?v0 gr:price ?v3 . ?v0 gr: | ||
+ | ?v1 og:title ?v5 . ?v1 rdf:type ?v6 . } | ||
+ | </ | ||
+ | |||
+ | See [[en: | ||
+ | == Execution reports for F5 == | ||
+ | |||
+ | ^Plan ^ Execution report | ||
+ | |SPARQL DF | {{: | ||
+ | |SPARQL Hybrid| | ||
+ | |S2RDF | ||
+ | |S2RDF+Hybrid | ||
+ | |||
+ | |||
+ | === Query C3 === | ||
+ | <code sparql> | ||
+ | SELECT ?v0 WHERE { | ||
+ | ?v0 wsdbm:likes ?v1 . ?v0 wsdbm: | ||
+ | ?v0 dc:Location ?v3 . ?v0 foaf:age ?v4 . | ||
+ | ?v0 wsdbm: | ||
+ | </ | ||
+ | |||
+ | See [[en: | ||
+ | |||
==== Star queries ==== | ==== Star queries ==== | ||
+ | Star queries over the DrugBank dataset | ||
+ | Star with 3 branches | ||
+ | <code sparql> | ||
+ | SELECT ?x ?a ?b | ||
+ | WHERE { | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ? | ||
+ | </ | ||
+ | |||
+ | Star with 5 branches | ||
+ | <code sparql> | ||
+ | SELECT ?x ?a ?b ?c ?d | ||
+ | WHERE { | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ? | ||
+ | ?x < | ||
+ | ?x < | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Star with 10 branches | ||
+ | <code sparql> | ||
+ | SELECT ?x ?a ?b ?c ?d ?g ?h ?i | ||
+ | WHERE { | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ? | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Star with 15 branches | ||
+ | <code sparql> | ||
+ | SELECT ?x ?a ?b ?c ?d ?g ?h ?i ?j ?k ?l | ||
+ | WHERE { | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ? | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | ?x < | ||
+ | </ | ||
+ | |||
+ | See [[en: | ||
==== Chain queries ==== | ==== Chain queries ==== | ||
+ | |||
Chain queries over DBPedia data set. | Chain queries over DBPedia data set. | ||
+ | |||
=== Chain4 query === | === Chain4 query === | ||
Chain4 is | Chain4 is | ||
- | < | + | < |
SELECT ?x1, ?x2, ?x3, ?x4, ?x5 WHERE { ?x1 P1 ?x2 . ?x2 P2 ?x3 . ?x3 P3 ?x4 . ?x4 P4 ?x5 } | SELECT ?x1, ?x2, ?x3, ?x4, ?x5 WHERE { ?x1 P1 ?x2 . ?x2 P2 ?x3 . ?x3 P3 ?x4 . ?x4 P4 ?x5 } | ||
</ | </ | ||
with properties | with properties | ||
- | < | + | < |
val P1 = 1389363200 | val P1 = 1389363200 | ||
val P2 = 52239 | val P2 = 52239 | ||
Ligne 30: | Ligne 144: | ||
val P4 = 1164156928 | val P4 = 1164156928 | ||
</ | </ | ||
+ | See [[en: | ||
- | The plans produced by each method are: | + | === Chain6 query === |
- | * SPARQL RDD: | + | <code sparql> |
- | < | + | SELECT ?x1, ?x2, ?x3, ?x4, ?x5, ?x6, ?x7 |
- | val d1 = triples.filter{case(s, | + | |
- | val d2 = triples.filter{case(s, | + | |
- | val d3 = triples.filter{case(s, | + | |
- | val d4 = triples.filter{case(s,(p,o))=> p==P4}.mapValues{case(p,x5) => x5} | + | |
- | + | ||
- | val j1 = d1.join(d2).map{case(x2,(x1, x3))=> (x3, (x1,x2))} | + | |
- | val j2 = j1.join(d3).map{case(x3, | + | |
- | val j3 = j2.join(d4).map{case(x4, | + | |
- | j3.count | + | |
</ | </ | ||
- | + | with properties | |
- | * SPARQL DF: | + | < |
- | < | + | val P1 = 18843 |
- | val t1 = df.where(s" | + | val P2 = 5540 |
- | val t2 = df.where(s" | + | val P3 = 1179222016 |
- | val t3 = df.where(s" | + | val P4 = 1446076416 |
- | val t4 = df.where(s" | + | val P5 = 1446244352 |
- | val res = t1.join(t2, | + | val P6 = 36363 |
</ | </ | ||
+ | See [[en: | ||
- | * SPARQL | + | ==== Snowflake queries ==== |
- | < | + | |
- | val P2 = 52239 | + | SPARQL |
- | val P3 = 1164541952 | + | < |
- | val P4 = 1164156928 | + | PREFIX rdf: < |
- | val subg = df.where(s" | + | PREFIX ub: < |
- | subg.persist | + | SELECT ?X, ?Y, ?Z |
- | subg.count | + | WHERE |
- | val st2 = subg.where(s" | + | {?X rdf:type ub: |
- | val st3 = subg.where(s" | + | ?Y rdf:type ub: |
- | val st4 = subg.where(s" | + | ?X ub:memberOf ?Y . |
- | val res = t1.join(st2, | + | ?Y ub: |
- | res.count | + | ?X ub: |
</ | </ | ||
- | === Chain6 query === | + | See [[en: |
+ | |||
+ | |||
+ | ===== Misc ===== | ||
+ | | ||
+ | |||
- | ==== Snowflake queries ==== | ||
- | ==== WatDiv queries ==== | ||
site/recherche/logiciels/sparqlwithspark.1473782196.txt.gz · Dernière modification : de hubert