首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPARQLWrapper不返回JSON

SPARQLWrapper不返回JSON
EN

Stack Overflow用户
提问于 2018-03-05 00:30:15
回答 1查看 993关注 0票数 2

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

代码语言:javascript
复制
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中,并通过了本体验证。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-06 12:25:07

SPARQLWrapper()的第一个参数应该是是SPARQL端点地址:

  • [医]麻花包装无法对RDF文件执行SPARQL查询。
  • 如果要对RDF文件进行查询,应该使用瑞迪将其加载到本地存储中。
代码语言:javascript
复制
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查询结果:

代码语言:javascript
复制
import sys
from rdflib import Graph
from rdflib.plugins.sparql.results.jsonresults import JSONResultSerializer

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

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

JSONResultSerializer(qres).serialize(sys.stdout)

如果您希望从RDF序列化中抽象,则应该使用奥利立

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49101985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档