我有一些编程基础,但我对 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 不适用于本地文件。
所以我的问题是:
- 如何创建包含所有 RDF 文件的数据集,以便我可以像处理单个对象一样处理它们?
- 如何查询这样的对象以检索我需要的信息?那可能吗?
- 这种推理方式是否正确?
任何有关如何解决该问题的建议表示赞赏。谢谢!