""" Main script for DBpedia quepy. """ import bottle from bottle import template, request import os import quepy from SPARQLWrapper import SPARQLWrapper, JSON sparql = SPARQLWrapper("http://dbpedia.org/sparql") dbpedia = quepy.install("dbpedia") bottle.debug(True) quepy.set_loglevel("DEBUG") @bottle.route("/") def index(): return template("index") @bottle.post("/result") def result(): q = request.forms.get('input') target, query, metadata = dbpedia.get_query(q) if isinstance(metadata, tuple): query_type = metadata[0] metadata = metadata[1] else: query_type = metadata metadata = None
"Who is George Lucas?", "Who is Mirtha Legrand?", # "List Microsoft software", "Name Fiat cars", "time in argentina", "what time is it in Chile?", "List movies directed by Martin Scorsese", "How long is Pulp Fiction", "which movies did Mel Gibson starred?", "When was Gladiator released?", "who directed Pocahontas?", "actors of Fight Club", ] if "-d" in sys.argv: quepy.set_loglevel("DEBUG") sys.argv.remove("-d") if len(sys.argv) > 1: question = " ".join(sys.argv[1:]) if question.count("wikipedia.org"): print wikipedia2dbpedia(sys.argv[1]) sys.exit(0) else: questions = [question] else: questions = default_questions print_handlers = { "define": print_define,
def startquepy(args): nltk.download('wordnet') nltk.download('averaged_perceptron_tagger') default_questions = [ #"What is a car?", #"Who is Tom Cruise?", #"Who is George Lucas?", #"Who is Mirtha Legrand?", #"List Microsoft software", #"Name Fiat cars", #"time in argentina", #"what time is it in Chile?", #"List movies directed by Martin Scorsese", #"How long is Pulp Fiction", #"which movies did Mel Gibson starred?", #"When was Gladiator released?", #"who directed Pocahontas?", #"actors of Fight Club", "Who is Pep Guardiola?", "Who won more La Liga title?", "Who manages Monaco?", "Who is Monaco chairman?", "Which is the ground of Porto?", "Which are the players of Manchester United? 2010" ] if "-d" in sys.argv: quepy.set_loglevel("DEBUG") sys.argv.remove("-d") if len(args) > 1: #args_as_str = unicodedata.normalize('NFKD', args).encode('ascii', 'ignore') question = unicodedata.normalize('NFKD', args).encode('ascii', 'ignore') if question.count("wikipedia.org"): print wikipedia2dbpedia(question) sys.exit(0) else: questions = [question] else: questions = default_questions print_handlers = { "define": print_define, "enum": print_enum, "time": print_time, "literal": print_literal, "age": print_age, } print question print "-" * len(question) target, query, metadata = dbpedia.get_query(question) if isinstance(metadata, tuple): query_type = metadata[0] metadata = metadata[1] else: query_type = metadata metadata = None if query is None: return "Query not generated :(\n" print query if target.startswith("?"): target = target[1:] if query: sparql.setQuery(query) sparql.setReturnFormat(JSON) results = sparql.query().convert() if not results["results"]["bindings"]: return "No answer found :(" return print_handlers[query_type](results, target, metadata)
def main(): default_questions = [ "What is a car?", "Who is Tom Cruise?", "Who is George Lucas?", "Who is Mirtha Legrand?", # "List Microsoft software", "Name Fiat cars", "time in argentina", "what time is it in Chile?", "List movies directed by Martin Scorsese", "How long is Pulp Fiction", "which movies did Mel Gibson starred?", "When was Gladiator released?", "who directed Pocahontas?", "actors of Fight Club", ] if "-d" in sys.argv: quepy.set_loglevel("DEBUG") sys.argv.remove("-d") if len(sys.argv) > 1: question = " ".join(sys.argv[1:]) if question.count("wikipedia.org"): print wikipedia2dbpedia(sys.argv[1]) sys.exit(0) else: questions = [question] else: questions = default_questions print_handlers = { "define": print_define, "enum": print_enum, "time": print_time, "literal": print_literal, "age": print_age, } for question in questions: print question print "-" * len(question) target, query, metadata = dbpedia.get_query(question) if isinstance(metadata, tuple): query_type = metadata[0] metadata = metadata[1] else: query_type = metadata metadata = None if query is None: print "Query not generated :(\n" continue print query if target.startswith("?"): target = target[1:] if query: sparql.setQuery(query) sparql.setReturnFormat(JSON) results = sparql.query().convert() if not results["results"]["bindings"]: print "No answer found :(" continue print_handlers[query_type](results, target, metadata) print
def answerQuestion(question): default_questions = [question] if "-d" in sys.argv: quepy.set_loglevel("DEBUG") sys.argv.remove("-d") if len(sys.argv) > 1: question = " ".join(sys.argv[1:]) if question.count("wikipedia.org"): print wikipedia2dbpedia(sys.argv[1]) sys.exit(0) else: questions = [question] else: questions = default_questions print_handlers = { "define": print_define, "enum": print_enum, "time": print_time, "literal": print_literal, "age": print_age, } for question in questions: print question print "-" * len(question) target, query, metadata = dbpedia.get_query(question) if isinstance(metadata, tuple): query_type = metadata[0] metadata = metadata[1] else: query_type = metadata metadata = None if query is None: print "Query not generated :(\n" continue #print query if target.startswith("?"): target = target[1:] if query: sparql.setQuery(query) sparql.setReturnFormat(JSON) results = sparql.query().convert() if not results["results"]["bindings"]: return ["No answer found :("] continue # a = print_handlers[query_type](results, target, metadata) output_list = print_define(results, target, metadata=None) #print output_list output_str = ''.join(output_list).encode('utf-8') return output_str