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
|
#!/usr/bin/python
# -*- coding: utf-8 -*-
from SPARQLWrapper import SPARQLWrapper2, SPARQLWrapper, TURTLE
import sys, getopt
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)
|