From c754fc1da4032cc04719a57b38d3a46b1916e438 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me>
Date: Sun, 5 Nov 2023 02:53:41 -0500
Subject: [PATCH] Added sparql example

---
 .gitignore            |   1 +
 examples/sparql.ipynb | 253 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 254 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 examples/sparql.ipynb

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c0fc44d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*/.ipynb_checkpoints/
diff --git a/examples/sparql.ipynb b/examples/sparql.ipynb
new file mode 100644
index 0000000..d6351f3
--- /dev/null
+++ b/examples/sparql.ipynb
@@ -0,0 +1,253 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "4d7d4c73-bd83-4017-abc6-ba394e63b8fb",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div class=\"krn-spql\"><div class=\"magic\">Endpoint set to: http://dbpedia.org/sparql</div><div class=\"magic\">Label preferred languages: ['en']</div><div class=\"magic\">Logging set to DEBUG</div></div>"
+      ],
+      "text/plain": [
+       "Endpoint set to: http://dbpedia.org/sparql\n",
+       "Label preferred languages: ['en']\n",
+       "Logging set to DEBUG\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "%endpoint http://dbpedia.org/sparql\n",
+    "%lang en\n",
+    "\n",
+    "# This is optional, it would increase the log level.\n",
+    "# The default logfile (unless changed upon kernel installation) is [TMPDIR]/sparqlkernel.log, \n",
+    "# where [TMPDIR] is the platform default temporal directory\n",
+    "%log debug"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "94e96b72-bdb6-4e4f-82ff-1bb5c48821e8",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div class=\"krn-spql\"><div class=\"magic\">Request format: JSON</div><div class=\"magic\">Display: table</div></div>"
+      ],
+      "text/plain": [
+       "Request format: JSON\n",
+       "Display: table\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<div class=\"krn-spql\"><table><tr class=hdr><th>person</th>\n",
+       "<th>name</th></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Vincent_van_Gogh\" target=\"_other\">http://dbpedia.org/resource/Vincent_van_Gogh</a></td>\n",
+       "<td class=val>Vincent van Gogh</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/Theo_van_Gogh_(art_dealer)\" target=\"_other\">http://dbpedia.org/resource/Theo_van_Gogh_(art_dealer)</a></td>\n",
+       "<td class=val>Theo van Gogh (art dealer)</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Theo_van_Gogh_(film_director)\" target=\"_other\">http://dbpedia.org/resource/Theo_van_Gogh_(film_director)</a></td>\n",
+       "<td class=val>Theo van Gogh (film director)</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/Anna_van_Gogh-Kaulbach\" target=\"_other\">http://dbpedia.org/resource/Anna_van_Gogh-Kaulbach</a></td>\n",
+       "<td class=val>Anna van Gogh-Kaulbach</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Lieuwe_van_Gogh\" target=\"_other\">http://dbpedia.org/resource/Lieuwe_van_Gogh</a></td>\n",
+       "<td class=val>Lieuwe van Gogh</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/Lothar_van_Gogh\" target=\"_other\">http://dbpedia.org/resource/Lothar_van_Gogh</a></td>\n",
+       "<td class=val>Lothar van Gogh</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Wil_van_Gogh\" target=\"_other\">http://dbpedia.org/resource/Wil_van_Gogh</a></td>\n",
+       "<td class=val>Wil van Gogh</td></tr></table><div class=\"tinfo\">Total: 7, Shown: 7</div></div>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "%format json\n",
+    "%display table \n",
+    "\n",
+    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
+    "PREFIX foaf:  <http://xmlns.com/foaf/0.1/>\n",
+    "SELECT ?person ?name\n",
+    "WHERE {\n",
+    "    ?person a foaf:Person .\n",
+    "    ?person rdfs:label ?name\n",
+    "    FILTER regex(?name,\"van gogh\",\"i\")\n",
+    "    FILTER langMatches(lang(?name),\"en\")\n",
+    "} LIMIT 20"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "cc024354-fc00-4221-8f73-54d7100d4837",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div class=\"krn-spql\"><div class=\"magic\">Request format: JSON</div><div class=\"magic\">Display: table<br/>Show Types: on</div></div>"
+      ],
+      "text/plain": [
+       "Request format: JSON\n",
+       "Display: table\n",
+       "Show Types: on\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<div class=\"krn-spql\"><table><tr class=hdr><th>prop</th><th>type</th>\n",
+       "<th>value</th><th>type</th></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/birthDate\" target=\"_other\">http://dbpedia.org/ontology/birthDate</a></td><td class=typ>uri</td>\n",
+       "<td class=val>07:51:23.983040</td><td class=typ>typed-literal</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/birthPlace\" target=\"_other\">http://dbpedia.org/ontology/birthPlace</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Zundert\" target=\"_other\">http://dbpedia.org/resource/Zundert</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/deathDate\" target=\"_other\">http://dbpedia.org/ontology/deathDate</a></td><td class=typ>uri</td>\n",
+       "<td class=val>15897-03-09T07:51:23.983040</td><td class=typ>typed-literal</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/deathPlace\" target=\"_other\">http://dbpedia.org/ontology/deathPlace</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Auvers-sur-Oise\" target=\"_other\">http://dbpedia.org/resource/Auvers-sur-Oise</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Camille_Pissarro\" target=\"_other\">http://dbpedia.org/resource/Camille_Pissarro</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Paul_Cézanne\" target=\"_other\">http://dbpedia.org/resource/Paul_Cézanne</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Paul_Gauguin\" target=\"_other\">http://dbpedia.org/resource/Paul_Gauguin</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Andries_Bonger\" target=\"_other\">http://dbpedia.org/resource/Andries_Bonger</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Anna_Boch\" target=\"_other\">http://dbpedia.org/resource/Anna_Boch</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Henri_de_Toulouse-Lautrec\" target=\"_other\">http://dbpedia.org/resource/Henri_de_Toulouse-Lautrec</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Qu_Yi_(actor)\" target=\"_other\">http://dbpedia.org/resource/Qu_Yi_(actor)</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Benedict_Cumberbatch\" target=\"_other\">http://dbpedia.org/resource/Benedict_Cumberbatch</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Deb_Talan\" target=\"_other\">http://dbpedia.org/resource/Deb_Talan</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/John_Simm\" target=\"_other\">http://dbpedia.org/resource/John_Simm</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Juan_Abelló\" target=\"_other\">http://dbpedia.org/resource/Juan_Abelló</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Jules_Michelet\" target=\"_other\">http://dbpedia.org/resource/Jules_Michelet</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Perry_Richardson_Bass\" target=\"_other\">http://dbpedia.org/resource/Perry_Richardson_Bass</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Petr_Pavlensky\" target=\"_other\">http://dbpedia.org/resource/Petr_Pavlensky</a></td><td class=typ>uri</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Richard_L._Feigen\" target=\"_other\">http://dbpedia.org/resource/Richard_L._Feigen</a></td><td class=typ>uri</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/ontology/wikiPageWikiLink\" target=\"_other\">http://dbpedia.org/ontology/wikiPageWikiLink</a></td><td class=typ>uri</td>\n",
+       "<td class=val><a href=\"http://dbpedia.org/resource/Robert_Kost\" target=\"_other\">http://dbpedia.org/resource/Robert_Kost</a></td><td class=typ>uri</td></tr></table><div class=\"tinfo\">Total: 473, Shown: 20</div></div>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "%format json\n",
+    "%display table withtypes\n",
+    "\n",
+    "# We might have more than one triple pointing to the same object, so we group by object\n",
+    "# and take one arbitrary predicate\n",
+    "\n",
+    "SELECT (SAMPLE(?pred) AS ?prop) ?value\n",
+    "WHERE {\n",
+    "\n",
+    "    # Places and dates\n",
+    "    {\n",
+    "        dbr:Vincent_van_Gogh ?pred ?value  .\n",
+    "        { ?pred rdfs:range xsd:date }\n",
+    "        UNION\n",
+    "        { ?pred rdfs:range dbo:Place }\n",
+    "    }\n",
+    "    # People van Gogh relates to\n",
+    "    UNION \n",
+    "    { \n",
+    "        dbr:Vincent_van_Gogh ?pred ?value  .\n",
+    "        ?value a foaf:Person \n",
+    "    }\n",
+    "    # People related to van Gogh\n",
+    "    UNION \n",
+    "    { \n",
+    "        ?value ?pred dbr:Vincent_van_Gogh   .\n",
+    "        ?value a foaf:Person \n",
+    "    }\n",
+    "\n",
+    "} GROUP BY ?value ORDER BY ?prop"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "9d7e9f40-3337-47b4-97ee-8e16a42731eb",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div class=\"krn-spql\"><div class=\"magic\">Request format: JSON</div><div class=\"magic\">Display: table</div></div>"
+      ],
+      "text/plain": [
+       "Request format: JSON\n",
+       "Display: table\n"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "data": {
+      "text/html": [
+       "<div class=\"krn-spql\"><table><tr class=hdr><th>picture</th>\n",
+       "<th>name</th></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Café_Terrace_at_Night\" target=\"_other\">http://dbpedia.org/resource/Café_Terrace_at_Night</a></td>\n",
+       "<td class=val>Café Terrace at Night</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/Night_in_paintings_(Western_art)\" target=\"_other\">http://dbpedia.org/resource/Night_in_paintings_(Western_art)</a></td>\n",
+       "<td class=val>Night in paintings (Western art)</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/The_Night_Café\" target=\"_other\">http://dbpedia.org/resource/The_Night_Café</a></td>\n",
+       "<td class=val>The Night Café</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/The_Starry_Night\" target=\"_other\">http://dbpedia.org/resource/The_Starry_Night</a></td>\n",
+       "<td class=val>The Starry Night</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Starry_Night_Over_the_Phone\" target=\"_other\">http://dbpedia.org/resource/Starry_Night_Over_the_Phone</a></td>\n",
+       "<td class=val>Starry Night Over the Phone</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/Starry_Night_Over_the_Rhône\" target=\"_other\">http://dbpedia.org/resource/Starry_Night_Over_the_Rhône</a></td>\n",
+       "<td class=val>Starry Night Over the Rhône</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Starry_Night_(Millet)\" target=\"_other\">http://dbpedia.org/resource/Starry_Night_(Millet)</a></td>\n",
+       "<td class=val>Starry Night (Millet)</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/Where_Are_You_Tonight%3F_(Journey_Through_Dark_Heat)\" target=\"_other\">http://dbpedia.org/resource/Where_Are_You_Tonight%3F_(Journey_Through_Dark_Heat)</a></td>\n",
+       "<td class=val>Where Are You Tonight? (Journey Through Dark Heat)</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/White_House_at_Night\" target=\"_other\">http://dbpedia.org/resource/White_House_at_Night</a></td>\n",
+       "<td class=val>White House at Night</td></tr><tr class=even><td class=val><a href=\"http://dbpedia.org/resource/Dodge_MacKnight\" target=\"_other\">http://dbpedia.org/resource/Dodge_MacKnight</a></td>\n",
+       "<td class=val>Dodge MacKnight</td></tr><tr class=odd><td class=val><a href=\"http://dbpedia.org/resource/Midnight_in_Paris\" target=\"_other\">http://dbpedia.org/resource/Midnight_in_Paris</a></td>\n",
+       "<td class=val>Midnight in Paris</td></tr></table><div class=\"tinfo\">Total: 11, Shown: 11</div></div>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "%format json\n",
+    "%display table \n",
+    "\n",
+    "\n",
+    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n",
+    "PREFIX foaf:  <http://xmlns.com/foaf/0.1/>\n",
+    "SELECT DISTINCT (?picture) ?name\n",
+    "WHERE {\n",
+    "        ?picture ?p1 dbr:Vincent_van_Gogh .\n",
+    "        ?picture rdfs:label ?name .\n",
+    "        FILTER regex(?name,\"night\", \"i\")\n",
+    "        FILTER langMatches(lang(?name),\"en\")    \n",
+    "}"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "cd4a214a-063e-4abb-9c25-d7b5a09c4e05",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "SPARQL",
+   "language": "sparql",
+   "name": "sparql"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "sparql"
+   },
+   "mimetype": "application/sparql-query",
+   "name": "sparql",
+   "pygments_lexer": "sparql-nb"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
-- 
GitLab