У меня есть некоторые основы программирования, но я совершенно не знаком с RDF или Sparql, поэтому надеюсь, что дальше буду понятен. Я пытаюсь загрузить некоторые данные, доступные по адресу http://data.camera.it/data/en/datasets/, и все данные организованы в формате rdf-xml в виде онтологии.
Я заметил, что на этом веб-сайте есть онлайн-редактор запросов SPARQL (http://dati.camera.it/sparql). ), и, используя некоторые из их примеров, я смог получить и преобразовать некоторые данные, которые мне нужны, с помощью Python. Я использовал следующий код и запрос, используя SparqlWrapper
from SPARQLWrapper import SPARQLWrapper, JSON
sparql = SPARQLWrapper("http://dati.camera.it/sparql")
sparql.setQuery(
'''
SELECT distinct ?deputatoId ?cognome ?nome ?data ?argomento titoloSeduta ?testo
WHERE {
?dibattito a ocd:dibattito; ocd:rif_leg <http://dati.camera.it/ocd/legislatura.rdf/repubblica_17>.
?dibattito ocd:rif_discussione ?discussione.
?discussione ocd:rif_seduta ?seduta.
?seduta dc:date ?data; dc:title ?titoloSeduta.
?seduta ocd:rif_assemblea ?assemblea.
?discussione rdfs:label ?argomento.
?discussione ocd:rif_intervento ?intervento.
?intervento ocd:rif_deputato ?deputatoId; dc:relation ?testo.
?deputatoId foaf:firstName ?nome; foaf:surname ?cognome .
}
ORDER BY ?data ?cognome ?nome
LIMIT 100
'''
)
sparql.setReturnFormat(JSON)
results_raw = sparql.query().convert()
Однако у меня есть проблема, потому что веб-сайт позволяет загружать только 10 000 значений. Насколько я понял, этот лимит изменить нельзя. Поэтому я решил загрузить наборы данных на свой компьютер. Пробовал работать со всеми этими rdf файлами, но не знаю как это сделать, так как, насколько мне известно, SparqlWrapper не работает с локальными файлами.
Итак, мои вопросы:
- Как мне создать набор данных, содержащий все файлы RDF, чтобы я мог работать с ними, как если бы это был один объект?
- Как мне запросить такой объект, чтобы получить нужную мне информацию? Это возможно?
- Является ли этот способ рассуждения правильным подходом?
Любое предложение о том, как решить проблему, приветствуется. Спасибо!