使用RDFib创建数据转储并在不进行迭代的情况下将数据添加到图形中

2024-06-16 10:57:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用RDFlib解析了DBpedia中的一些数据:

dbpediaSparqlEndpoint = 'http://dbpedia.org/sparql/'
sparql = SPARQLWrapper(dbpediaSparqlEndpoint)
dbpedia_query = 'PREFIX : <http://dbpedia.org/resource/> SELECT ?s ?p ?o WHERE {{?s ?p ?o FILTER (?s=:Benin)} UNION {?s ?p ?o . FILTER (?o=:Benin)}}'
dataGraph = Graph()

sparql.setQuery(dbpedia_query)
sparql.method = 'GET'
sparql.setReturnFormat(JSON)
output = sparql.query().convert()

我想创建一个转储文件,然后我可以用它上传到一个三重存储。以下是我认为我现在需要采取的步骤:

  1. 将输出数据添加到图形中
  2. 使用output.serialize(destination="dbpediaDump.txt", format='turtle')生成转储

这是最有效的方法吗?另外,有没有一种快捷方式可以一次将输出中的所有数据添加到图形中,而不是遍历列表并逐个添加三元组?你知道吗


Tags: 数据orghttp图形outputprefixfilterquery
1条回答
网友
1楼 · 发布于 2024-06-16 10:57:15

dbpediasparql结果的数量有限,这意味着为了获得所有请求的结果,通常需要使用OFFSETLIMIT约束来重复查询。此外,DBpedia的可用性不能得到保证,必须考虑错误。你知道吗

将rdf数据加载到私有图形数据库中最有效的方法是使用LinkedData.Center这样的服务,配置如下:

@PREFIX <http://linkeddata.center/kees/v1#> .

[]  a kees:SparqlIngestion
    kees:queryName <http://mydata.example.com/resource/Benin> ;
    kees:sparqlEndpoint <http://dbpedia.org/sparql>  ;
    kees:constructQuery """
        PREFIX : <http://dbpedia.org/resource/>
        CONSTRUCT {?s ?p ?o} 
        WHERE {{?s ?p ?o FILTER (?s=:Benin)} UNION {?s ?p ?o . FILTER (?o=:Benin)}}
    """ 
.

所使用的摄取api的完整文档可供使用here

免责声明:我是一个链接数据中心实习生

相关问题 更多 >