Хранить данные RDF в Triplestore через конечную точку SPARQL, используя python - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь сохранить данные в следующем URL-адресе в виде троек в хранилище троек для будущего запроса. Вот мой код:

import requests
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
import re

url='http://gnafld.net/address/?per_page=10&page=7'
page = requests.get(url)
response = requests.get(url)
response.raise_for_status()
results = re.findall('\"Address ID: (GAACT[0-9]+)\"', response.text)
address1=results[0]
a = "http://gnafld.net/address/"
new_url = a + address1
r  = requests.get(new_url).content
print(r)

После того, как я запустил код выше, я получил ответ вроде: введите описание изображения здесь

Мой вопрос заключается в том, как вставить данные RDF в конечную точку SPARQL сервера Fuseki? Я пытаюсь код как это:

import rdflib
from rdflib.plugins.stores import sparqlstore
#the following sparql endpoint is provided by the GNAF website
endpoint = 'http://gnafld.net/sparql' 

store = sparqlstore.SPARQLUpdateStore(endpoint)
gs=rdflib.ConjunctiveGraph(store)
gs.open((endpoint,endpoint))
for stmt in r:
    gs.add(stmt)

Но похоже, что это не работает. Как я могу решить эту проблему? Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 06 мая 2018

Ответ, который вы показываете на изображении, в тройном формате RDF, он просто не очень хорошо напечатан.

Для хранения данных RDF в хранилище RDF вы можете использовать RDFlib . Вот пример того, как это сделать.

Если вы используете сервер Jena Fuseki, вы сможете получить к нему доступ с python так же, как с любой другой конечной точкой SPARQL из python.

Возможно, вы захотите увидеть и мой ответ на связанный ТАК вопрос .

...