繁体   English   中英

对多个RDF文件的SPARQL查询

[英]SPARQL query on multiple RDF files

我有一些编程基础知识,但是我对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不适用于本地文件。

所以我的问题是:

  1. 如何创建包含所有RDF文件的数据集,以便可以像对待单个对象一样处理它们?
  2. 如何查询这样的对象以检索所需的信息? 那可能吗?
  3. 这种推理方法正确吗?

任何有关如何解决该问题的建议都值得赞赏。 谢谢!

  1. 从其下载区域下载所有RDF / XML文件,并将它们加载到 Virtuoso 的本地实例中(该实例恰好是它们用于其公共SPARQL端点的引擎)。 无论是开源 还是企业版 ,您都将拥有运行比其现有版本(2014年3月起开放的v7.1.0 )更高的最新版本(v7.2.5.1或更高版本)的优势。

  2. 使用新的本地SPARQL端点,默认情况下位于http:// localhost:8890 / sparql 您可以将其配置为对结果集大小或查询运行时等没有任何限制。

  3. 似乎可能。

(PS:您可能会鼓励dati.camera.it(assistenza-dati@camera.it)上的人们升级他们的Virtuoso实例。有大量的性能和功能增强正在等待着!)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM