def get_text_response(triplestore_endpoint, graph, SPARQLquery): text_response = None result = query_triplestore(triplestore_endpoint + "/query", graph, SPARQLquery) out = [] for binding in result['results']['bindings']: out.append(binding['o']['value']) return out
def get_text_response(triplestore_endpoint, graph, SPARQLquery): text_response = None result = query_triplestore(triplestore_endpoint + "/query", graph, SPARQLquery) for binding in result['results']['bindings']: text_response = binding['o']['value'] return text_response
def qanary_service(): triplestore_endpoint = request.json["values"]["urn:qanary#endpoint"] triplestore_ingraph = request.json["values"]["urn:qanary#inGraph"] triplestore_outgraph = request.json["values"]["urn:qanary#outGraph"] SPARQLsubj = """ PREFIX oa: <http://www.w3.org/ns/openannotation/core/> SELECT ?p ?o FROM <{graph_guid}> WHERE {{ VALUES ?p {{oa:object oa:relation oa:result}} . ?s ?p ?o . }}""".format(graph_guid=triplestore_ingraph) res = None res = query_triplestore(triplestore_endpoint + "/query", triplestore_ingraph, SPARQLsubj) out = [] for binding in res['results']['bindings']: out.append(binding['o']['value']) if out[2:] == None: out1 = 'I_cannot_find_the_answer.' else: out1 = make(out[0],out[1],out[2:]) SPARQLquery = """ PREFIX qa: <http://www.wdaqua.eu/qa#> PREFIX oa: <http://www.w3.org/ns/openannotation/core/> PREFIX dbo: <http://dbpedia.org/ontology/> INSERT {{ GRAPH <{uuid}> {{ ?a oa:answer <{answer_uri}> . ?a oa:annotatedBy <urn:qanary:{app_name}> . ?a oa:annotatedAt ?time . }} }} WHERE {{ BIND (IRI(str(RAND())) AS ?a) . BIND (now() as ?time) }} """.format( uuid=triplestore_ingraph, app_name="{0}:{1}:Python".format(configuration.servicename, configuration.serviceversion), answer_uri=out1 ) insert_into_triplestore(triplestore_endpoint, triplestore_ingraph, SPARQLquery) return jsonify(request.get_json())
def get_result(endpoint, in_graph): """ returns a result of Qanary pipeline execution SPARQL query can be customized """ SPARQLquery = """ PREFIX oa: <http://www.w3.org/ns/openannotation/core/> SELECT ?p ?o FROM <{graph_guid}> WHERE {{ VALUES ?p {{oa:relation}} . ?s ?p ?o . }}""".format(graph_guid=in_graph) result = query_triplestore(endpoint + "/query", in_graph, SPARQLquery) return result['results']['bindings']
def ask_result(endpoint, in_graph, expected_result): """ asks if the annotated result is correct SPARQL query can be customized """ SPARQLquery = """ PREFIX oa: <http://www.w3.org/ns/openannotation/core/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX qa: <http://www.wdaqua.eu/qa#> ASK FROM <{graph_guid}> WHERE {{ ?annotationId rdf:type qa:AnnotationOfInstance . ?annotationId oa:relation <{relation_uri}> . }}""".format(graph_guid=in_graph, relation_uri=expected_result) result = query_triplestore(endpoint + "/query", in_graph, SPARQLquery) return result['boolean']