【发布时间】:2015-12-22 23:02:14
【问题描述】:
这是How to prevent triples from getting mixed up while uploading to Dydra programmatically?的后续问题
我使用 SPARQL CONSTRUCT 查询创建了一个新图表。我现在想对其进行迭代,以便可以将语句添加到 RDFlib 图,然后将数据插入另一个三元存储。我有以下问题:
- 如果 SPARQL CONSTRUCT 返回一个图表,我是否还需要遍历这些语句并将它们添加到 RDFlib 图表中?我可能需要这样做才能使用循环将每个三元组插入三元组。
- 如何遍历由 SPARQL CONSTRUCT 生成的图以检索三元组?
'type'的'output'显示为字符串。
这是我的代码:
sesameSparqlEndpoint = 'http://my.ip.ad.here:8080/openrdf-sesame/repositories/rep_name'
sparql = SPARQLWrapper(sesameSparqlEndpoint)
queryStringDownload = 'CONSTRUCT {?s ?p ?o} WHERE {?s ?p ?o FILTER REGEX(str(?s), "http")}'
dataGraph = Graph()
sparql.setQuery(queryStringDownload)
sparql.method = 'GET'
sparql.setReturnFormat(JSON)
output = sparql.query().convert()
# print output
#Print all statements in dataGraph
for stmt in output:
print stmt
这段代码只给了我来自三元组的一列字符。
【问题讨论】:
-
不知道 RDFLib 我不知道这是否是原因,但是:您是否尝试过设置不同的返回格式?我希望像 Turtle 这样的东西能得到更好的支持。
-
适用于 XML(但不适用于 N3 或 Turtle 等其他格式)!我现在可以使用 for 循环单独检索每个三元组。还有,我们一开始需要专门用这个:from SPARQLWrapper import SPARQLWrapper, JSON, XML, TURTLE, RDF, N3(基本上我们打算用的所有格式)
标签: python sparql sesame rdflib linked-data