我有一些编程基础知识,但是我对RDF或Sparql完全陌生,所以我希望在接下来的内容中弄清楚。 我正在尝试下载http://data.camera.it/data/en/datasets/上的一些数据,并且所有数据都以rdf-xml格式组织在一个本体中。
我注意到该网站在线上有一个SPARQL查询编辑器(http://dati.camera.it/sparql),使用其中的一些示例,我能够使用Python检索和转换一些我需要的数据。我使用以下代码和查询,使用了SparqlWrapper
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://dati.camera.it/sparql")
sparql.setQuery(
'''
SELECT distinct ?deputatoId ?cognome ?nome ?data ?argomento titoloSeduta ?testo
WHERE {
?dibattito a ocd:dibattito; ocd:rif_leg <http://dati.camera.it/ocd/legislatura.rdf/repubblica_17>.
?dibattito ocd:rif_discussione ?discussione.
?discussione ocd:rif_seduta ?seduta.
?seduta dc:date ?data; dc:title ?titoloSeduta.
?seduta ocd:rif_assemblea ?assemblea.
?discussione rdfs:label ?argomento.
?discussione ocd:rif_intervento ?intervento.
?intervento ocd:rif_deputato ?deputatoId; dc:relation ?testo.
?deputatoId foaf:firstName ?nome; foaf:surname ?cognome .
}
ORDER BY ?data ?cognome ?nome
LIMIT 100
'''
)
sparql.setReturnFormat(JSON)
results_raw = sparql.query().convert()
但是,我有一个问题,因为该网站只允许下载10,000个值。据我了解,此限制无法修改。 因此,我决定将数据集下载到我的计算机上。我尝试处理所有这些rdf文件,但我不知道该怎么做,因为据我所知,SparqlWrapper不适用于本地文件。
所以我的问题是:
任何有关如何解决该问题的建议都值得赞赏。 谢谢!
答案 0 :(得分:1)
从它们的下载区域以及load them into a local instance中的Virtuoso下载所有RDF / XML文件(恰好是它们用于公共SPARQL端点的引擎)。无论是Open Source还是Enterprise Edition,您都可以运行比其现有版本(开放源v7.1.0,自3月开始)更新得多的版本(v7.2.5.1或更高版本)。 ,2014!)。
使用新的本地SPARQL端点,默认情况下位于http://localhost:8890/sparql。您可以将其配置为对结果集大小或查询运行时等没有任何限制。
似乎可能。
(P.S。您可能会鼓励dati.camera.it(assistenza-dati@camera.it)的人们升级他们的Virtuoso实例。正在等待性能和功能增强!)