pythonsparql查询本地文件

pythonsparql查询本地文件,python,rdf,sparql,ontology,Python,Rdf,Sparql,Ontology,我有以下Python代码。它基本上使用SPARQL从在线资源返回RDF的一些元素 我想从我的一个本地文件中查询并返回一些内容。我试图编辑它,但无法返回任何内容 为了在本地查询而不是在本地查询,我应该更改什么 从SPARQLWrapper导入SPARQLWrapper,JSON #包装dbpediasparql端点 端点=SPARQLWrapper(“http://dbpedia.org/sparql") #设置查询字符串 endpoint.setQuery(“”) 前缀rdfs: 前缀dbpr:

我有以下Python代码。它基本上使用SPARQL从在线资源返回RDF的一些元素

我想从我的一个本地文件中查询并返回一些内容。我试图编辑它,但无法返回任何内容

为了在本地查询而不是在本地查询,我应该更改什么

从SPARQLWrapper导入SPARQLWrapper,JSON
#包装dbpediasparql端点
端点=SPARQLWrapper(“http://dbpedia.org/sparql")
#设置查询字符串
endpoint.setQuery(“”)
前缀rdfs:
前缀dbpr:
选择?标签
其中{dbpr:asturiasrdfs:label?label}
""")
#选择retur格式(例如XML、JSON等)
setReturnFormat(JSON)
#执行查询并将其转换为Python对象
#注意:SPARQL端点返回的JSON被转换为嵌套的Python字典,因此不需要额外的解析。
结果=endpoint.query().convert()
#解释结果:
对于res在results[“results”][“bindings”]:
打印分辨率['label']['value']

谢谢

SPARQLWrapper
仅用于远程或本地SPARQL端点。您有两个选择:

(a) 将本地RDF文件放在本地三元组存储中,并将代码指向localhost。(b) 或者使用
rdflib
并使用
InMemory
存储器:

import rdflib.graph as g
graph = g.Graph()
graph.parse('filename.rdf', format='rdf')
print graph.serialize(format='pretty-xml')

您可以使用以下命令查询rdflib.graph.graph():

filename=“path/to/fileneme”#替换为有趣的内容
uri=“uri_of_interest”#替换为有趣的内容
导入rdflib
导入rdfextras
rdfextras.registerplugins()#这样我们就可以用Graph.query()了
g=rdflib.Graph()
g、 解析(文件名)
结果=g.query(“”)
选择?p?o
在哪里{
?采购订单。
}
按(?p)排序
“”“%uri”)#获取有关uri的每个谓词和对象
import rdflib.graph as g
graph = g.Graph()
graph.parse('filename.rdf', format='rdf')
print graph.serialize(format='pretty-xml')
filename = "path/to/fileneme" #replace with something interesting
uri = "uri_of_interest" #replace with something interesting

import rdflib
import rdfextras
rdfextras.registerplugins() # so we can Graph.query()

g=rdflib.Graph()
g.parse(filename)
results = g.query("""
SELECT ?p ?o
WHERE {
<%s> ?p ?o.
}
ORDER BY (?p)
""" % uri) #get every predicate and object about the uri