0
這是來自How to prevent triples from getting mixed up while uploading to Dydra programmatically?的後續問題如何遍歷rdflib的CONSTRUCT輸出?
我已經使用SPARQL CONSTRUCT查詢創建了一個新圖。我現在想迭代它,以便可以將語句添加到RDFlib圖中,然後將數據插入另一個triplestore。我有以下問題:
- 如果SPARQL CONSTRUCT返回一個圖,我還需要遍歷這些語句並將它們添加到RDFlib圖嗎?我可能需要這樣做才能夠使用循環將每個三元組插入到三重存儲中。
- 如何迭代由SPARQL CONSTRUCT產生的圖來檢索三元組?
'output'
的'type'
顯示爲字符串。
這是我的代碼:
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我不知道這是不是原因,但:您是否嘗試過設置不同的返回格式?我希望像烏龜這樣的東西得到更好的支持。 –
適用於XML(但不適用於N3或Turtle等其他格式)!現在我可以使用for循環單獨檢索每個三元組。另外,我們需要在開始時特別使用這個: from SPARQLWrapper import SPARQLWrapper,JSON,XML,TURTLE,RDF,N3(基本上我們打算使用的所有格式) – kurious