SPARQL UniProt.RDF    Jerven Bolleman      Developer      Swiss-Prot Group      Swiss Institute of BioinformaticsTuesday, ...
A few notes before we begin     • SPARQL 1        – Some what useful        – Standardized in 2008     • SPARQL 1.1       ...
Raise your hand if you have questions    © 2012 SIBTuesday, December 4, 2012
Tutorial plan     • Set up Topbraid Composer        – Skipped in talk        – On VM     • Gather data from uniprot websit...
Download and install Topbraid composer     • Requirements        – Sun/Oracle JVM     • Go to        – http://www.topquadr...
Start Topbraid    © 2012 SIBTuesday, December 4, 2012
Setting up a workspace for this tutorial     • http://www.topquadrant.com/products/TB_download.html    © 2012 SIBTuesday, ...
New project     • File > New Project > General    © 2012 SIBTuesday, December 4, 2012
Gather data from uniprot.org website                 • In the navigator select the new project you just made.    © 2012 SI...
Gather data from uniprot.org website  Right click on your new project.  Select “Import” in the drop down menu          • I...
Using the same process download core.owl                 You can see a html view of this schema                 ontology a...
Gather data from uniprot.org website             You can see a html view of this entry at                http://www.unipro...
Gather data from uniprot.org website     • Open the mammalia.rdf file by double clicking    © 2012 SIBTuesday, December 4,...
You get a very helpfull dialog.      Hit yes    © 2012 SIBTuesday, December 4, 2012
Its SPARQLy mammal time !!    © 2012 SIBTuesday, December 4, 2012
Lets look at an single taxon record    © 2012 SIBTuesday, December 4, 2012
Lets navigate to it in TopBraid     • Type the uri as is with the angle brackets    © 2012 SIBTuesday, December 4, 2012
Investigate the taxon record    © 2012 SIBTuesday, December 4, 2012
The “Eastern Chipmunk” in turtle    © 2012 SIBTuesday, December 4, 2012
Turtle is the RDF serialization aligned with     SPARQL     • Shorthand to avoid typing so much        – . ‘dot’ is end st...
Why don’t these queries work on the web?     • PREFIX        – Topbraid composer uses the prefixes defined in the         ...
a = rdf:type = <http://www.w3.org/1999/02/22-rdf-     syntax-ns#type>    © 2012 SIBTuesday, December 4, 2012
rdfs:subClassOf     taxon:45474 is a more specific classification than     taxon:13712    © 2012 SIBTuesday, December 4, 2...
rank => “The level, for nomenclatural purposes, of     a taxon in a taxonomic hierarchy”    © 2012 SIBTuesday, December 4,...
Why learn SPARQL     • Standardized formal query language        – implementation independent           • SPARQL ➔ SQL (vi...
Apparently it helps      kill vampires !!!    © 2012 SIBTuesday, December 4, 2012
Lets learn SPARQL     • Queries over RDF data.       – Four basic types          • SELECT              – Returns “tab deli...
SPARQL:queries triple pattern                 taxon:9606 rdf:type core:Taxon .    © 2012 SIBTuesday, December 4, 2012
SPARQL:queries triple pattern                 ?anyTaxon rdf:type core:Taxon .    © 2012 SIBTuesday, December 4, 2012
SPARQL:queries triple pattern          SELECT ?anyTaxon          WHERE {            ?anyTaxon rdf:type core:Taxon .       ...
SPARQL:queries triple pattern                 taxon:9606 rdf:type core:Taxon .                 taxon:9606 core:reviewed “t...
SPARQL:queries triple pattern                 ?anyTaxon rdf:type core:Taxon .                 ?anyTaxon core:reviewed “tru...
SPARQL:queries triple pattern          SELECT ?anyTaxon          WHERE {            ?anyTaxon rdf:type core:Taxon .       ...
SPARQL:queries triple pattern          SELECT ?anyTaxon          WHERE {            ?anyTaxon rdf:type core:Taxon .       ...
SPARQL:queries triple pattern          SELECT ?anyTaxon          WHERE {            ?anyTaxon rdf:type core:Taxon .       ...
Lets learn SPARQL    © 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
Shorthand a = rdf:type    © 2012 SIBTuesday, December 4, 2012
AND join (default)    © 2012 SIBTuesday, December 4, 2012
Now you type    © 2012 SIBTuesday, December 4, 2012
Remember ‘;’ shortcut    © 2012 SIBTuesday, December 4, 2012
Two variables one output column    © 2012 SIBTuesday, December 4, 2012
Optional     • When values may be missing        – yet interesting when they are there     • Use as sub query     • bound ...
© 2012 SIBTuesday, December 4, 2012
UNION     • Allows you to combine query patterns as an OR       operation.     • Joins are still from outer to inner.    ©...
UNION    © 2012 SIBTuesday, December 4, 2012
Negation     • When you do not want a certain category of matches.                            SELECT ?pet                 ...
Oooops    © 2012 SIBTuesday, December 4, 2012
Not exists (Negation 1)    © 2012 SIBTuesday, December 4, 2012
Minus (Negation 2)    © 2012 SIBTuesday, December 4, 2012
MINUS{} or FILTER (NOT EXISTS{})     • Whats the difference?       – MINUS subtracts results       – NOT EXITS tests if th...
MINUS all data    © 2012 SIBTuesday, December 4, 2012
FILTER (NOT EXISTS{}) no results    © 2012 SIBTuesday, December 4, 2012
Negation option 3       SPARQL 1.0                 SELECT ?subject ?rank                 WHERE {                    ?subje...
© 2012 SIBTuesday, December 4, 2012
FILTERS     • You just saw it twice        – Once in the !BOUND        – Once in the NOT EXISTS     • FILTERS a result set...
Filter    © 2012 SIBTuesday, December 4, 2012
Filter on not in    © 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
IN    © 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
FILTER on numbers     • <        –        FILTER (1 < 2)     • >        –        FILTER (2 > 1)     • =        –        FI...
Filters     • ?x = ?y does casting (value conversions)        – 1.0^^xsd:float = 1^^xsd:int is true     • sameTerm(?x, ?y)...
FILTER on strings     • Functions        – STRLEN            –   ENCODE_FOR_URI        – SUBSTR            –   CONCAT     ...
STRLEN == String Length    © 2012 SIBTuesday, December 4, 2012
CONTAINS is case sensitive is it in there    © 2012 SIBTuesday, December 4, 2012
REGEX, just like java regex    © 2012 SIBTuesday, December 4, 2012
BIND     • Builds new Values        – Closes the basic graph pattern                 SELECT ?p WHERE {                   {...
© 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
BIND can assign any output    © 2012 SIBTuesday, December 4, 2012
Aggregate functions     • on select line     • limited in number         – count         – sum         – avg         – min...
count    © 2012 SIBTuesday, December 4, 2012
SAMPLE should give a random result back    © 2012 SIBTuesday, December 4, 2012
Follow the path    © 2012 SIBTuesday, December 4, 2012
Path queries    © 2012 SIBTuesday, December 4, 2012
Finding a grand parent using normal joins    © 2012 SIBTuesday, December 4, 2012
Finding a grandParent using a path query    © 2012 SIBTuesday, December 4, 2012
| is OR for predicate    © 2012 SIBTuesday, December 4, 2012
Same result with UNION    © 2012 SIBTuesday, December 4, 2012
Finding any ancestor    © 2012 SIBTuesday, December 4, 2012
Can use the variable in a normal join afterwards    © 2012 SIBTuesday, December 4, 2012
GROUP BY    © 2012 SIBTuesday, December 4, 2012
GROUP BY     • Needed for aggregate values     • After closing the where clause        – ... WHERE {?x ?y ?z} GROUP BY ?x ...
GROUP BY    © 2012 SIBTuesday, December 4, 2012
HAVING                            I have carrot !    © 2012 SIBTuesday, December 4, 2012
HAVING     • FILTER for aggregates     • After the GROUP BY clause        – ... GROUP BY ?x HAVING (count(?y) > 2)        ...
HAVING    © 2012 SIBTuesday, December 4, 2012
LIMITS         &            OFFSET    © 2012 SIBTuesday, December 4, 2012
LIMIT and OFFSET     • OFFSET is skip first results     • LIMIT return no more than x results    © 2012 SIBTuesday, Decemb...
ORDER    © 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
VALUES     • Super BIND     • Provide inline data    © 2012 SIBTuesday, December 4, 2012
© 2012 SIBTuesday, December 4, 2012
Examples     • Parameter lists are between ()                   VALUES (?annotation) {                     (core:Disease_A...
Examples     • Undef means no value at        – all not bound                 VALUES (?annotation ?begin) {               ...
VALUES     • After declaring a set of values you can use them in your       query.                 SELECT ?comment WHERE {...
SERVICE: Using other sparql endpoints     • SERVICE<URL of other endpoint>        – Runs a sub query on the other endpoint...
“Life is better with friends who understand you.”    © 2012 SIBTuesday, December 4, 2012
SERVICE    © 2012 SIBTuesday, December 4, 2012
SERVICE     • Useful        – Quick experimenting with combing multiple          datasources        – Quick for queries wh...
Lets make                            some triples    © 2012 SIBTuesday, December 4, 2012
Construction     • CONSTRUCT        – New triples           • downloads RDF        – Does not update store    © 2012 SIBTu...
New triples    © 2012 SIBTuesday, December 4, 2012
Constructing an owl:sameAs between two URI    © 2012 SIBTuesday, December 4, 2012
INSERT     • Adds data        – like construct    © 2012 SIBTuesday, December 4, 2012
Modifies data    © 2012 SIBTuesday, December 4, 2012
DELETE     • Removes data        – Triples matching are removed from the data        – Triples can be bound using where cl...
DELETE    © 2012 SIBTuesday, December 4, 2012
DELETE     INSERT     • Single atomic operation.    © 2012 SIBTuesday, December 4, 2012
Atomic operation    © 2012 SIBTuesday, December 4, 2012
I’m exhausted now    © 2012 SIBTuesday, December 4, 2012
QuestionsTuesday, December 4, 2012
Upcoming SlideShare
Loading in...5
×

Learning sparql 2012 12

3,251

Published on

Tutorial on SPARQL 1.1 given at SWAT4LS 2012 in paris to a full room. This material covers enough to get started and includes working with Topbraid Composer.

Published in: Technology

Transcript of "Learning sparql 2012 12"

  1. 1. SPARQL UniProt.RDF Jerven Bolleman Developer Swiss-Prot Group Swiss Institute of BioinformaticsTuesday, December 4, 2012
  2. 2. A few notes before we begin • SPARQL 1 – Some what useful – Standardized in 2008 • SPARQL 1.1 – Very useful – Currently in recommended standard • Still finding incompatibilities • Or not yet implemented features © 2012 SIBTuesday, December 4, 2012
  3. 3. Raise your hand if you have questions © 2012 SIBTuesday, December 4, 2012
  4. 4. Tutorial plan • Set up Topbraid Composer – Skipped in talk – On VM • Gather data from uniprot website – Already there. Text • Learn sparql You do not need Topbraid Composer to use UniProt RDF data or do sparql queries. You can use beta.sparql.uniprot.org as well. © 2012 SIBTuesday, December 4, 2012
  5. 5. Download and install Topbraid composer • Requirements – Sun/Oracle JVM • Go to – http://www.topquadrant.com/products/ TB_download.html – Register – Select any edition, free is ok for today © 2012 SIBTuesday, December 4, 2012
  6. 6. Start Topbraid © 2012 SIBTuesday, December 4, 2012
  7. 7. Setting up a workspace for this tutorial • http://www.topquadrant.com/products/TB_download.html © 2012 SIBTuesday, December 4, 2012
  8. 8. New project • File > New Project > General © 2012 SIBTuesday, December 4, 2012
  9. 9. Gather data from uniprot.org website • In the navigator select the new project you just made. © 2012 SIBTuesday, December 4, 2012
  10. 10. Gather data from uniprot.org website Right click on your new project. Select “Import” in the drop down menu • Import RDF or OWL file from the web © 2012 SIBTuesday, December 4, 2012
  11. 11. Using the same process download core.owl You can see a html view of this schema ontology at http://www.uniprot.org/core/ © 2012 SIBTuesday, December 4, 2012
  12. 12. Gather data from uniprot.org website You can see a html view of this entry at http://www.uniprot.org/taxonomy/40674 © 2012 SIBTuesday, December 4, 2012
  13. 13. Gather data from uniprot.org website • Open the mammalia.rdf file by double clicking © 2012 SIBTuesday, December 4, 2012
  14. 14. You get a very helpfull dialog. Hit yes © 2012 SIBTuesday, December 4, 2012
  15. 15. Its SPARQLy mammal time !! © 2012 SIBTuesday, December 4, 2012
  16. 16. Lets look at an single taxon record © 2012 SIBTuesday, December 4, 2012
  17. 17. Lets navigate to it in TopBraid • Type the uri as is with the angle brackets © 2012 SIBTuesday, December 4, 2012
  18. 18. Investigate the taxon record © 2012 SIBTuesday, December 4, 2012
  19. 19. The “Eastern Chipmunk” in turtle © 2012 SIBTuesday, December 4, 2012
  20. 20. Turtle is the RDF serialization aligned with SPARQL • Shorthand to avoid typing so much – . ‘dot’ is end statement – ; ‘semi-colon’ repeat subject – , ‘comma’ is repeat subject and predicate • prefix – before ‘:’ is abbreviation of uri © 2012 SIBTuesday, December 4, 2012
  21. 21. Why don’t these queries work on the web? • PREFIX – Topbraid composer uses the prefixes defined in the files “overview” tab. – On the web you often have to add these. PREFIX :<http://purl.uniprot.org/core/> SELECT ?x FROM <http://purl.uniprot.org/taxonomy/> WHERE {?x a :Taxon} © 2012 SIBTuesday, December 4, 2012
  22. 22. a = rdf:type = <http://www.w3.org/1999/02/22-rdf- syntax-ns#type> © 2012 SIBTuesday, December 4, 2012
  23. 23. rdfs:subClassOf taxon:45474 is a more specific classification than taxon:13712 © 2012 SIBTuesday, December 4, 2012
  24. 24. rank => “The level, for nomenclatural purposes, of a taxon in a taxonomic hierarchy” © 2012 SIBTuesday, December 4, 2012
  25. 25. Why learn SPARQL • Standardized formal query language – implementation independent • SPARQL ➔ SQL (via R2ML) • SPARQL ➔ webservice (via SADI) • SPARQL ➔ LDAP (e.g. SquirrelRDF) • SPARQL ➔ RDF (triplestore e.g. OWLIM-se) • SPARQL ➔ HADOOP/HIVE (e.g. SHARD) – How you query independent of how you store! © 2012 SIBTuesday, December 4, 2012
  26. 26. Apparently it helps kill vampires !!! © 2012 SIBTuesday, December 4, 2012
  27. 27. Lets learn SPARQL • Queries over RDF data. – Four basic types • SELECT – Returns “tab delimited” results • CONSTRUCT – Makes new triples • DESCRIBE – Returns all triples mentioning a resource • ASK – Return true if anything matches © 2012 SIBTuesday, December 4, 2012
  28. 28. SPARQL:queries triple pattern taxon:9606 rdf:type core:Taxon . © 2012 SIBTuesday, December 4, 2012
  29. 29. SPARQL:queries triple pattern ?anyTaxon rdf:type core:Taxon . © 2012 SIBTuesday, December 4, 2012
  30. 30. SPARQL:queries triple pattern SELECT ?anyTaxon WHERE { ?anyTaxon rdf:type core:Taxon . } © 2012 SIBTuesday, December 4, 2012
  31. 31. SPARQL:queries triple pattern taxon:9606 rdf:type core:Taxon . taxon:9606 core:reviewed “true” . © 2012 SIBTuesday, December 4, 2012
  32. 32. SPARQL:queries triple pattern ?anyTaxon rdf:type core:Taxon . ?anyTaxon core:reviewed “true” . © 2012 SIBTuesday, December 4, 2012
  33. 33. SPARQL:queries triple pattern SELECT ?anyTaxon WHERE { ?anyTaxon rdf:type core:Taxon . ?anyTaxon core:reviewed “true” . } © 2012 SIBTuesday, December 4, 2012
  34. 34. SPARQL:queries triple pattern SELECT ?anyTaxon WHERE { ?anyTaxon rdf:type core:Taxon . ?anyTaxin core:reviewed “true” . } © 2012 SIBTuesday, December 4, 2012
  35. 35. SPARQL:queries triple pattern SELECT ?anyTaxon WHERE { ?anyTaxon rdf:type core:Taxon . $anyTaxon core:reviewed “true” . } © 2012 SIBTuesday, December 4, 2012
  36. 36. Lets learn SPARQL © 2012 SIBTuesday, December 4, 2012
  37. 37. © 2012 SIBTuesday, December 4, 2012
  38. 38. © 2012 SIBTuesday, December 4, 2012
  39. 39. Shorthand a = rdf:type © 2012 SIBTuesday, December 4, 2012
  40. 40. AND join (default) © 2012 SIBTuesday, December 4, 2012
  41. 41. Now you type © 2012 SIBTuesday, December 4, 2012
  42. 42. Remember ‘;’ shortcut © 2012 SIBTuesday, December 4, 2012
  43. 43. Two variables one output column © 2012 SIBTuesday, December 4, 2012
  44. 44. Optional • When values may be missing – yet interesting when they are there • Use as sub query • bound values from outside stay bound inside – ?x ?y?z . OPTIONAL {?x ?b ?c} • ?x same variable = same thing © 2012 SIBTuesday, December 4, 2012
  45. 45. © 2012 SIBTuesday, December 4, 2012
  46. 46. UNION • Allows you to combine query patterns as an OR operation. • Joins are still from outer to inner. © 2012 SIBTuesday, December 4, 2012
  47. 47. UNION © 2012 SIBTuesday, December 4, 2012
  48. 48. Negation • When you do not want a certain category of matches. SELECT ?pet WHERE { ?pet a pets:Friendly . } © 2012 SIBTuesday, December 4, 2012
  49. 49. Oooops © 2012 SIBTuesday, December 4, 2012
  50. 50. Not exists (Negation 1) © 2012 SIBTuesday, December 4, 2012
  51. 51. Minus (Negation 2) © 2012 SIBTuesday, December 4, 2012
  52. 52. MINUS{} or FILTER (NOT EXISTS{}) • Whats the difference? – MINUS subtracts results – NOT EXITS tests if the sub pattern is possible at all. • Normally the faster option. © 2012 SIBTuesday, December 4, 2012
  53. 53. MINUS all data © 2012 SIBTuesday, December 4, 2012
  54. 54. FILTER (NOT EXISTS{}) no results © 2012 SIBTuesday, December 4, 2012
  55. 55. Negation option 3 SPARQL 1.0 SELECT ?subject ?rank WHERE { ?subject core:rank ?rank . OPTIONAL { ?subject core:rank core:Genus . ?subject core:rank ?genus .} FILTER(! BOUND(?genus)) } © 2012 SIBTuesday, December 4, 2012
  56. 56. © 2012 SIBTuesday, December 4, 2012
  57. 57. FILTERS • You just saw it twice – Once in the !BOUND – Once in the NOT EXISTS • FILTERS a result set by possibly removing values – FILTER do not add a value to the result • Inside the same graph pattern order independent. © 2012 SIBTuesday, December 4, 2012
  58. 58. Filter © 2012 SIBTuesday, December 4, 2012
  59. 59. Filter on not in © 2012 SIBTuesday, December 4, 2012
  60. 60. © 2012 SIBTuesday, December 4, 2012
  61. 61. © 2012 SIBTuesday, December 4, 2012
  62. 62. IN © 2012 SIBTuesday, December 4, 2012
  63. 63. © 2012 SIBTuesday, December 4, 2012
  64. 64. FILTER on numbers • < – FILTER (1 < 2) • > – FILTER (2 > 1) • = – FILTER (1 =1) • != – FILTER(1 != 2) • © 2012 SIBTuesday, December 4, 2012
  65. 65. Filters • ?x = ?y does casting (value conversions) – 1.0^^xsd:float = 1^^xsd:int is true • sameTerm(?x, ?y) does not – sameTerm(1.0^^xsd:float, 1^^xsd:int) © 2012 SIBTuesday, December 4, 2012
  66. 66. FILTER on strings • Functions – STRLEN – ENCODE_FOR_URI – SUBSTR – CONCAT – UCASE – langMatches – LCASE – REGEX – STRSTARTS – REPLACE – STRENDS – CONTAINS – IRI – STRBEFORE – STRAFTER © 2012 SIBTuesday, December 4, 2012
  67. 67. STRLEN == String Length © 2012 SIBTuesday, December 4, 2012
  68. 68. CONTAINS is case sensitive is it in there © 2012 SIBTuesday, December 4, 2012
  69. 69. REGEX, just like java regex © 2012 SIBTuesday, December 4, 2012
  70. 70. BIND • Builds new Values – Closes the basic graph pattern SELECT ?p WHERE { { ?taxon a :Taxon . } BIND (?taxon AS ?p) } • Always declare before use. © 2012 SIBTuesday, December 4, 2012
  71. 71. © 2012 SIBTuesday, December 4, 2012
  72. 72. © 2012 SIBTuesday, December 4, 2012
  73. 73. BIND can assign any output © 2012 SIBTuesday, December 4, 2012
  74. 74. Aggregate functions • on select line • limited in number – count – sum – avg – min – max – groupConcat – sample © 2012 SIBTuesday, December 4, 2012
  75. 75. count © 2012 SIBTuesday, December 4, 2012
  76. 76. SAMPLE should give a random result back © 2012 SIBTuesday, December 4, 2012
  77. 77. Follow the path © 2012 SIBTuesday, December 4, 2012
  78. 78. Path queries © 2012 SIBTuesday, December 4, 2012
  79. 79. Finding a grand parent using normal joins © 2012 SIBTuesday, December 4, 2012
  80. 80. Finding a grandParent using a path query © 2012 SIBTuesday, December 4, 2012
  81. 81. | is OR for predicate © 2012 SIBTuesday, December 4, 2012
  82. 82. Same result with UNION © 2012 SIBTuesday, December 4, 2012
  83. 83. Finding any ancestor © 2012 SIBTuesday, December 4, 2012
  84. 84. Can use the variable in a normal join afterwards © 2012 SIBTuesday, December 4, 2012
  85. 85. GROUP BY © 2012 SIBTuesday, December 4, 2012
  86. 86. GROUP BY • Needed for aggregate values • After closing the where clause – ... WHERE {?x ?y ?z} GROUP BY ?x © 2012 SIBTuesday, December 4, 2012
  87. 87. GROUP BY © 2012 SIBTuesday, December 4, 2012
  88. 88. HAVING I have carrot ! © 2012 SIBTuesday, December 4, 2012
  89. 89. HAVING • FILTER for aggregates • After the GROUP BY clause – ... GROUP BY ?x HAVING (count(?y) > 2) – ... GROUP BY ?x HAVING (min(?y) = 2) – etc... © 2012 SIBTuesday, December 4, 2012
  90. 90. HAVING © 2012 SIBTuesday, December 4, 2012
  91. 91. LIMITS & OFFSET © 2012 SIBTuesday, December 4, 2012
  92. 92. LIMIT and OFFSET • OFFSET is skip first results • LIMIT return no more than x results © 2012 SIBTuesday, December 4, 2012
  93. 93. ORDER © 2012 SIBTuesday, December 4, 2012
  94. 94. © 2012 SIBTuesday, December 4, 2012
  95. 95. © 2012 SIBTuesday, December 4, 2012
  96. 96. © 2012 SIBTuesday, December 4, 2012
  97. 97. VALUES • Super BIND • Provide inline data © 2012 SIBTuesday, December 4, 2012
  98. 98. © 2012 SIBTuesday, December 4, 2012
  99. 99. Examples • Parameter lists are between () VALUES (?annotation) { (core:Disease_Annotation) Text (core:Disulfide_Bond_Annotation) } © 2012 SIBTuesday, December 4, 2012
  100. 100. Examples • Undef means no value at – all not bound VALUES (?annotation ?begin) { (core:Disease_Annotation UNDEF) Text (core:Disulfide_Bond_Annotation 2) } © 2012 SIBTuesday, December 4, 2012
  101. 101. VALUES • After declaring a set of values you can use them in your query. SELECT ?comment WHERE { VALUES (?annotation ?begin) { (core:Disease_Annotation UNDEF) (core:Disulfide_Bond_Annotation 2) } ?annotation rdfs:comment ?comment . } © 2012 SIBTuesday, December 4, 2012
  102. 102. SERVICE: Using other sparql endpoints • SERVICE<URL of other endpoint> – Runs a sub query on the other endpoint and merges it back into your query. © 2012 SIBTuesday, December 4, 2012
  103. 103. “Life is better with friends who understand you.” © 2012 SIBTuesday, December 4, 2012
  104. 104. SERVICE © 2012 SIBTuesday, December 4, 2012
  105. 105. SERVICE • Useful – Quick experimenting with combing multiple datasources – Quick for queries where not to much data is send to the remote point • Slow – When you ask for to much data – Remote endpoint not resourced for your questions © 2012 SIBTuesday, December 4, 2012
  106. 106. Lets make some triples © 2012 SIBTuesday, December 4, 2012
  107. 107. Construction • CONSTRUCT – New triples • downloads RDF – Does not update store © 2012 SIBTuesday, December 4, 2012
  108. 108. New triples © 2012 SIBTuesday, December 4, 2012
  109. 109. Constructing an owl:sameAs between two URI © 2012 SIBTuesday, December 4, 2012
  110. 110. INSERT • Adds data – like construct © 2012 SIBTuesday, December 4, 2012
  111. 111. Modifies data © 2012 SIBTuesday, December 4, 2012
  112. 112. DELETE • Removes data – Triples matching are removed from the data – Triples can be bound using where clause © 2012 SIBTuesday, December 4, 2012
  113. 113. DELETE © 2012 SIBTuesday, December 4, 2012
  114. 114. DELETE INSERT • Single atomic operation. © 2012 SIBTuesday, December 4, 2012
  115. 115. Atomic operation © 2012 SIBTuesday, December 4, 2012
  116. 116. I’m exhausted now © 2012 SIBTuesday, December 4, 2012
  117. 117. QuestionsTuesday, December 4, 2012

×