如何从sparql端点获取rdf文件

如何从sparql端点获取rdf文件,rdf,sparql,endpoint,opendata,Rdf,Sparql,Endpoint,Opendata,我是opendata新手,需要一些帮助。Wikipedia的sparql端点位于以下url中: 现在我需要编写webservice来从dbpedia获取一些rdf文件。我应该向该端点发送什么来获取rdf文件?发送查询。举个小例子: CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o } LIMIT 10 WHERE子句的工作原理与SELECT only的工作原理类似,它将值作为一种模板填充构造块。它非常灵活-您可以复制此处的语句,也可以将它们转换为完全不同的形状。我

我是opendata新手,需要一些帮助。Wikipedia的sparql端点位于以下url中: 现在我需要编写webservice来从dbpedia获取一些rdf文件。我应该向该端点发送什么来获取rdf文件?

发送查询。举个小例子:

CONSTRUCT { ?s ?p ?o }
WHERE { ?s ?p ?o }
LIMIT 10

WHERE子句的工作原理与SELECT only的工作原理类似,它将值作为一种模板填充构造块。它非常灵活-您可以复制此处的语句,也可以将它们转换为完全不同的形状。

我建议您阅读Bob DuCharme的书。本文还介绍了一些使用DBPedia端点的示例


PS:它不是Wikipedia的SPARQL端点,而是DBPedia SPARQL端点(Wikipedia本身不提供自己的SPARQL端点)。但是,DBPedia数据依赖于Wikipedia数据;)

Danny回答的是正确的一般性答案。但我不建议您通过外部服务执行此类查询,因为预计需要时间才能得到结果;在一个具体的资源上做这件事

但是,当然,如果您希望直接执行此操作而不需要手动保存查询结果,那么以Python为例,代码如下所示:

from SPARQLWrapper import SPARQLWrapper, XML

uri = "http://dbpedia.org/resource/Asturias"
query = "CONSTRUCT { <%s> ?p ?o } WHERE { <%s> ?p ?o }" % (uri, uri)

sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery(query)
sparql.setReturnFormat(XML)
results = sparql.query().convert()

file = open("output.rdf", "w")
results.serialize(destination=file, format="xml")
file.flush()
file.close()
从SPARQLWrapper导入SPARQLWrapper,XML
uri=”http://dbpedia.org/resource/Asturias"
query=“构造{p?o}其中{p?o}”%(uri,uri)
sparql=SPARQLWrapper(“http://dbpedia.org/sparql")
setQuery(查询)
setReturnFormat(XML)
结果=sparql.query().convert()
文件=打开(“output.rdf”、“w”)
results.serialize(destination=file,format=“xml”)
file.flush()文件
file.close()文件

当然,这几乎可以用任何编程语言来完成,就像你喜欢的那样。

你能在这里写sparql吗?它从dbpedia所有rdf文件返回,在那里提到了一些关于柏林的事情?@hudi听起来你才刚刚开始使用sparql,你有没有试过阅读一个流行的教程,比如它一步一步地解释它?是的,我读了这个,但仍然不理解sparql,因为在这个例子中只是查询和结果,但没有sparql查询的描述,在任何符合sparql 1.1的实现中,它应该等同于查询:
描述
。我可以问你一个问题吗关于rdf在本地保存的问题???我只使用结果有什么不同。serialize(destination=path,format=“xml”)、、、和use file=open(……w”)……file.close()。。。你的回答帮助我解决了这个问题。但我想知道两者的区别。