results=结果['results']['bindings']Flas

2024-06-13 06:47:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试通过这个Sparql查询获得结果绑定。 通过这个Sparql入口点:http://digitale.bncf.firenze.sbn.it/openrdf-workbench/repositories/NS_03_2014/query

我有一个错误:“TypeError:query()至少有2个参数(给定1个)

谢谢你!!!在

@app.route('/caricaArgomento/<type>', methods=['GET'])
def getArgomento(type):
    #sparql = SPARQLUpdateStore("http://digitale.bncf.firenze.sbn.it/openrdf-      workbench/repositories/NS_03_2014/query")
    sparql=SPARQLUpdateStore("http://digitale.bncf.firenze.sbn.it/openrdf-workbench/repositories/NS_03_2014/query")
    sparql.setQuery("""
    PREFIX dc:<http://purl.org/dc/elements/1.1/>
    PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
    PREFIX nsogi:<http://prefix.cc/nsogi>
    PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
    PREFIX dcterms:<http://purl.org/dc/terms/>
        SELECT ?risultato
        WHERE {
         ?item a skos:Concept .
         ?item skos:prefLabel ?risultato .
         filter regex(?risultato, """+type+""", "i")
        } ORDER BY  ?risultato
         """)

     #FILTER regex(str(?aConcept), "http://thes.bncf.firenze.sbn.it/", "i").}

    sparql.setReturnFormat(JSON)
    results = sparql.query().convert()
    results = results['results']['bindings']
    results = json.dumps(results)

return results

在digitale.bncf.firenze.sbn.it公司 digitale.bncf.firenze.sbn.it公司在


Tags: orghttpprefixitskosquerysparqlresults
1条回答
网友
1楼 · 发布于 2024-06-13 06:47:57

查看相关的documentationsparql.query()...需要一个查询参数。在

sparql=SPARQLUpdateStore("http://digitale.bncf.firenze.sbn.it/openrdf-workbench/repositories/NS_03_2014/query")

sparql.setReturnFormat(JSON)

query = """
    PREFIX dc:<http://purl.org/dc/elements/1.1/>
    PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
    PREFIX nsogi:<http://prefix.cc/nsogi>
    PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
    PREFIX dcterms:<http://purl.org/dc/terms/>
    SELECT ?risultato
    WHERE {
     ?item a skos:Concept .
     ?item skos:prefLabel ?risultato .
     filter regex(?risultato, """+type+""", "i")
    } ORDER BY  ?risultato
"""

results = sparql.query(query).convert()

我不知道sparql.setQuery(...)的目的是什么,但很明显这不是你想要的。在

编辑:

查看了源代码setQuery(...)实际上是供内部使用的(例如,编写子类的人),而不是普通api用户。它取出查询表单并记录查询文本。query(...)在内部调用它。在

相关问题 更多 >