#!/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: <>" % 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)