{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Sending programs over the wire\n", "\n", "Logic can be sent remotely to the server" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from prologterms import TermGenerator, PrologRenderer, Program, Var, Term\n", "from sparqlprog import SPARQLProg\n", "from rdflib import Namespace\n", "P = TermGenerator()\n", "R = PrologRenderer()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "dbont = Namespace(\"http://dbpedia.org/ontology/\")\n", "dbr = Namespace(\"http://dbpedia.org/resource/\")\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "server = 'http://localhost:9083'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating a program" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "X = Var('X')\n", "Y = Var('Y')\n", "Z = Var('Z')\n", " \n", "rules = [\n", " # in-band if bandMember OR formerBandMember\n", " P.in_band(X,Y) <= P.rdf(Y, dbont['bandMember'], X),\n", " P.in_band(X,Y) <= P.rdf(Y, dbont['formerBandMember'], X),\n", " \n", " # shared band members, at any point in time\n", " P.has_shared_band_member(X,Y,Z) <= (P.in_band(Z, X), P.in_band(Z,Y), Term('\\=', X, Y))\n", "]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "S = SPARQLProg(server=server,\n", " rules=rules,\n", " endpoint='dbpedia')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### setting up a query" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "query = P.has_shared_band_member(dbr['Deep_Purple'], X, Z)\n", "#query = P.has_shared_band_member(Y, X, Z)\n", "#query = P.in_band(X,Y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### running the querry\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "res = S.query(query)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "band: http://dbpedia.org/resource/Angelfire_(band) connecting member: http://dbpedia.org/resource/Steve_Morse\n", "band: http://dbpedia.org/resource/Dixie_Dregs connecting member: http://dbpedia.org/resource/Steve_Morse\n", "band: http://dbpedia.org/resource/Flying_Colors_(band) connecting member: http://dbpedia.org/resource/Steve_Morse\n", "band: http://dbpedia.org/resource/Hollywood_Monsters_(band) connecting member: http://dbpedia.org/resource/Don_Airey\n", "band: http://dbpedia.org/resource/Paice_Ashton_Lord connecting member: http://dbpedia.org/resource/Ian_Paice\n", "band: http://dbpedia.org/resource/Episode_Six connecting member: http://dbpedia.org/resource/Ian_Gillan\n", "band: http://dbpedia.org/resource/WhoCares connecting member: http://dbpedia.org/resource/Ian_Gillan\n", "band: http://dbpedia.org/resource/Ian_Gillan_Band connecting member: http://dbpedia.org/resource/Ian_Gillan\n", "band: http://dbpedia.org/resource/Gillan_(band) connecting member: http://dbpedia.org/resource/Ian_Gillan\n", "band: http://dbpedia.org/resource/Episode_Six connecting member: http://dbpedia.org/resource/Roger_Glover\n", "band: http://dbpedia.org/resource/Kansas_(band) connecting member: http://dbpedia.org/resource/Steve_Morse\n", "band: http://dbpedia.org/resource/Living_Loud connecting member: http://dbpedia.org/resource/Steve_Morse\n", "band: http://dbpedia.org/resource/Empire_(band) connecting member: http://dbpedia.org/resource/Don_Airey\n", "band: http://dbpedia.org/resource/Quatermass_(band) connecting member: http://dbpedia.org/resource/Don_Airey\n", "band: http://dbpedia.org/resource/Ten_(band) connecting member: http://dbpedia.org/resource/Don_Airey\n", "band: http://dbpedia.org/resource/Anthem_(band) connecting member: http://dbpedia.org/resource/Don_Airey\n", "band: http://dbpedia.org/resource/Earthshaker_(band) connecting member: http://dbpedia.org/resource/Don_Airey\n", "band: http://dbpedia.org/resource/The_Company_of_Snakes connecting member: http://dbpedia.org/resource/Don_Airey\n", "band: http://dbpedia.org/resource/Hughes/Thrall connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/Hughes_Turner_Project connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/Black_Country_Communion connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/Finders_Keepers_(band) connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/Mikhail_Men__Michael_Men_Project__1 connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/Whitesnake connecting member: http://dbpedia.org/resource/David_Coverdale\n", "band: http://dbpedia.org/resource/Paice_Ashton_Lord connecting member: http://dbpedia.org/resource/Jon_Lord\n", "band: http://dbpedia.org/resource/Over_the_Rainbow_(band) connecting member: http://dbpedia.org/resource/Joe_Lynn_Turner\n", "band: http://dbpedia.org/resource/Hughes_Turner_Project connecting member: http://dbpedia.org/resource/Joe_Lynn_Turner\n", "band: http://dbpedia.org/resource/Brazen_Abbot connecting member: http://dbpedia.org/resource/Joe_Lynn_Turner\n", "band: http://dbpedia.org/resource/Mikhail_Men__Michael_Men_Project__1 connecting member: http://dbpedia.org/resource/Joe_Lynn_Turner\n", "band: http://dbpedia.org/resource/Rainbow_(rock_band) connecting member: http://dbpedia.org/resource/Ritchie_Blackmore\n", "band: http://dbpedia.org/resource/Blackmore's_Night connecting member: http://dbpedia.org/resource/Ritchie_Blackmore\n", "band: http://dbpedia.org/resource/Trapeze_(band) connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/Brazen_Abbot connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/California_Breed connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/Kings_of_Chaos_(band) connecting member: http://dbpedia.org/resource/Glenn_Hughes\n", "band: http://dbpedia.org/resource/The_Greg_Kihn_Band connecting member: http://dbpedia.org/resource/Joe_Satriani\n", "band: http://dbpedia.org/resource/Coverdaleā€¢Page connecting member: http://dbpedia.org/resource/David_Coverdale\n", "band: http://dbpedia.org/resource/WhoCares connecting member: http://dbpedia.org/resource/Jon_Lord\n", "band: http://dbpedia.org/resource/The_Artwoods connecting member: http://dbpedia.org/resource/Jon_Lord\n", "band: http://dbpedia.org/resource/Santa_Barbera_Machine_Head connecting member: http://dbpedia.org/resource/Jon_Lord\n", "band: http://dbpedia.org/resource/Quatermass_(band) connecting member: http://dbpedia.org/resource/Nick_Simper\n", "band: http://dbpedia.org/resource/Johnny_Kidd_&_the_Pirates connecting member: http://dbpedia.org/resource/Nick_Simper\n", "band: http://dbpedia.org/resource/Warhorse_(British_band) connecting member: http://dbpedia.org/resource/Nick_Simper\n", "band: http://dbpedia.org/resource/Zephyr_(band) connecting member: http://dbpedia.org/resource/Tommy_Bolin\n", "band: http://dbpedia.org/resource/James_Gang connecting member: http://dbpedia.org/resource/Tommy_Bolin\n", "band: http://dbpedia.org/resource/Fandango_(US_band) connecting member: http://dbpedia.org/resource/Joe_Lynn_Turner\n", "band: http://dbpedia.org/resource/The_Outlaws_(band) connecting member: http://dbpedia.org/resource/Ritchie_Blackmore\n", "band: http://dbpedia.org/resource/Captain_Beyond connecting member: http://dbpedia.org/resource/Rod_Evans\n", "band: http://dbpedia.org/resource/Bogus_Deep_Purple connecting member: http://dbpedia.org/resource/Rod_Evans\n" ] } ], "source": [ "for r in res:\n", " print(f\"band: {r['X']} connecting member: {r['Z']}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }