Это следующий вопрос: How to prevent triples from getting mixed up while uploading to Dydra programmatically?Как отрегулировать вывод CONSTRUCT из rdflib?
Я создал новый график, используя запрос SPARQL CONSTRUCT. Теперь я хочу перебрать его, чтобы я мог добавлять инструкции в граф RDFlib, а затем вставлять данные в другой трипестор. У меня есть следующие вопросы:
- Если SPARQL CONSTRUCT возвращает граф, мне все еще нужно перебирать операторы и добавлять их в граф RDFlib? Я, вероятно, должен сделать это, чтобы иметь возможность вставлять каждую тройку в triplestore, используя цикл.
- Как выполнить итерацию по графику в результате 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 Я не знаю, является ли это причиной, но: попробовали ли вы установить другой формат возврата? Я бы ожидал, что что-то вроде Черепахи будет лучше поддерживаться. –
Работает с XML (но не с другими форматами, такими как N3 или Turtle)! Теперь я могу получить каждый из троек индивидуально, используя цикл for. Кроме того, нам нужно специально использовать это в начале: из SPARQLWrapper import SPARQLWrapper, JSON, XML, TURTLE, RDF, N3 (в основном все форматы, которые мы планируем использовать) – kurious