Esempio n. 1
0
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
Esempio n. 2
0
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']