1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import getopt
from SPARQLWrapper import SPARQLWrapper2
localSparqler = "http://localhost:2020/sparql"
localVirtuoso = "http://localhost:8890/sparql"
def main(server, query, sponge=False):
sparql = SPARQLWrapper2(server)
if sponge:
sparql.addExtraURITag("should-sponge", "grab-everything")
sparql.setQuery(query)
res = sparql.query()
variables = res.variables
print("Variables:")
print(variables)
print()
print("Bindings:")
for b in res.bindings:
for v in res.variables:
try:
val = b[v]
if val.lang:
str = "%s: %s@%s" % (v, val.value, val.lang)
elif val.datatype:
str = "%s: %s^^%s" % (v, val.value, val.datatype)
else:
str = "%s: %s" % (v, val.value)
except KeyError:
# no binding to that one...
str = "%s: <<None>>" % v
print(str.encode('utf-8'))
print()
# -------------------------------------------------------------------------------------------------------------
server = localSparqler
query = ""
sponge = False
usagetxt = """%s [-s] [-u url] [file]
-s: use local sparqler (default)
-v: use local virtuoso
-u url: server url
-p: issue an extra sponge for virtuoso
file: sparql query file
"""
def usage():
print(usagetxt % sys.argv[0])
sys.exit(1)
if __name__ == '__main__':
if len(sys.argv) == 1:
usage()
try:
opts, args = getopt.getopt(sys.argv[1:], "shu:pv")
for o, a in opts:
if o == "-s":
server = localSparqler
elif o == "-v":
server = localVirtuoso
sponge = True
elif o == "-h":
print(usage)
sys.exit(0)
elif o == "-u":
server = a
elif o == "-p":
sponge = True
if query == "" and len(args) > 0:
inp = file(args[0])
query = ""
for l in inp:
query += l
except:
usage()
if query == "":
usage()
main(server, query, sponge)
|