Как сохранить данные RDF в хранилище триплетов в конечной точке Fuseki SPARQL, используя RDFlib в python - PullRequest
0 голосов
/ 08 мая 2018

Новый вопрос:

Сначала я запускаю сервер Fuseki для создания нового набора данных с именем 'address_act':

fuseki-server --update --mem /address_act

, вот код для получения данных каждого адреса и затем добавляемэто в хранилище триплетов (база данных) на сервере Fuseki:

import requests
import pandas as pd
import numpy as np
import re
from rdflib import Graph, Literal, URIRef
from rdflib.plugins.stores import sparqlstore

query_endpoint = 'http://localhost:3030/address_act/query'
update_endpoint = 'http://localhost:3030/address_act/update'
store = sparqlstore.SPARQLUpdateStore()
store.open((query_endpoint, update_endpoint))
g = Graph(identifier = URIRef('http://www.example.com'))

for i in range(1,3):
    results = []
    url = 'http://gnafld.net/address/?per_page=10&page=' + str(i)
    page = requests.get(url)
    response = requests.get(url)
    response.raise_for_status()
    results = re.findall('\"Address ID: (GAACT[0-9]+)\"', response.text)

    for ad in results:
        ad_url = 'http://gnafld.net/address/' + ad
        ad_info = requests.get(ad_url).content

        g.parse(data=ad_info, format='turtle')
        store.add_graph(g)

Кажется, что код работает, но когда я просматриваю http://localhost:3030/dataset.html?tab=info&ds=/address_act, Он всегда показывает, что на графике 0 тройок. на графике нет троек Интересно, успешно ли он вставляет тройки в набор данных?Если да, то где я могу найти эти тройки?Если нет, как я могу добавить тройки в график по умолчанию?Любая помощь высоко ценится.

1 Ответ

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

Если вы начнете фусеки, как это:

$ fuseki-server --update --mem /ds

Затем вы можете получить к нему доступ локально, используя:

from rdflib import Graph, Literal, URIRef
from rdflib.plugins.stores import sparqlstore

query_endpoint = 'http://localhost:3030/ds/query'
update_endpoint = 'http://localhost:3030/ds/update'
store = sparqlstore.SPARQLUpdateStore()
store.open((query_endpoint, update_endpoint))

...use store...
store.add_graph(graph)
store.remove_graph(graph)
store.query(...)

(ds - это имя набора данных fuseki)

Похоже, у вас есть файл в формате черепахи так:

g = Graph(identifier = URIRef('http://www.example.com/'))
g.parse(data=r, format='turtle')

store.add_graph(g)
...