2015-12-22 8 views
0

Это следующий вопрос: How to prevent triples from getting mixed up while uploading to Dydra programmatically?Как отрегулировать вывод CONSTRUCT из rdflib?

Я создал новый график, используя запрос SPARQL CONSTRUCT. Теперь я хочу перебрать его, чтобы я мог добавлять инструкции в граф RDFlib, а затем вставлять данные в другой трипестор. У меня есть следующие вопросы:

  1. Если SPARQL CONSTRUCT возвращает граф, мне все еще нужно перебирать операторы и добавлять их в граф RDFlib? Я, вероятно, должен сделать это, чтобы иметь возможность вставлять каждую тройку в triplestore, используя цикл.
  2. Как выполнить итерацию по графику в результате 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 

Этот код просто дает мне один столбец символов из троек.

+0

Не знаю, RDFLib Я не знаю, является ли это причиной, но: попробовали ли вы установить другой формат возврата? Я бы ожидал, что что-то вроде Черепахи будет лучше поддерживаться. –

+1

Работает с XML (но не с другими форматами, такими как N3 или Turtle)! Теперь я могу получить каждый из троек индивидуально, используя цикл for. Кроме того, нам нужно специально использовать это в начале: из SPARQLWrapper import SPARQLWrapper, JSON, XML, TURTLE, RDF, N3 (в основном все форматы, которые мы планируем использовать) – kurious

ответ

0
  1. Мне все еще приходилось добавлять утверждения из Графа конъюнктов, созданного в результате выполнения запроса CONSTRUCT к графику RDFlib. Зачем? Потому что были проблемы с разбором первого при выполнении INSERT. Вывод запроса CONSTRUCT: a) Не имеет URI, заключенных в <> b) Не обрабатывает символы, отличные от ASCII (поэтому требуется output.encode ('utf-8').
  2. Чтобы извлечь тройки из графика, сгенерированного из запроса CONSTRUCT, нам нужно использовать формат XML для вывода вместо JSON в приведенном выше коде.

Интересно в стороне: Тип (вывод) при использовании XML - конъюнктивный график. Для всего, что я пробовал, это строка.

 Смежные вопросы

  • Нет связанных вопросов^_^