SPARQLWrapper未返回JSON

2024-10-01 13:24:40 发布

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

下面的代码应该返回本体中所有三元组主题的字典。相反,它以XML字符串的形式返回整个本体。在

from SPARQLWrapper import SPARQLWrapper, JSON

sparql = SPARQLWrapper("http://purl.org/sudo/ontology/sudo.owl")
sparql.setQuery("""
    SELECT ?subject
    WHERE {?subject ?verb  ?object}
    """)

sparql.setReturnFormat(JSON)
results = sparql.query().convert()
print results.keys()

上面的代码可以很好地处理不同的本体,这表明本体就是问题所在。我不确定本体的问题是什么。我用Protege生成了本体,可以加载到vOWL中,并通过了vOWL的本体验证。在


Tags: 字符串代码json主题字典本体sudoxml
1条回答
网友
1楼 · 发布于 2024-10-01 13:24:40

SPARQLWrapper()的第一个参数should beSPARQL端点地址:

  • 无法对RDF文件执行SPARQL查询。在
  • 如果要查询RDF文件,应使用将其加载到本地存储中。在
from rdflib import Graph

g = Graph()
g.parse("http://purl.org/sudo/ontology/sudo.owl", format="xml")

qres = g.query("""
    SELECT DISTINCT ?s {
        ?s ?p ?o
    }""")

for row in qres:
    print("%s" % row)

如果您真的需要JSON格式的SPARQL查询结果(spec):

^{pr2}$

如果您希望从RDF序列化中抽象,应该使用。在

相关问题 更多 >