使用python通过SPARQL端点将RDF数据存储到Triplestore中

时间:2018-05-06 02:56:48

标签: python rdf jena rdflib triplestore

我正在尝试将以下网址中的数据保存为三元组商店以供将来查询。这是我的代码:

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)

在我运行上面的代码之后,我得到了如下答案: enter image description here

我的问题是如何将RDF数据插入Fuseki Server SPARQL端点?我尝试这样的代码:

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 :(得分:1)

您在图片中显示的答案是RDF三重格式,它不是很漂亮。

要将RDF数据存储在RDF存储中,您可以使用RDFlib。这是example如何做到这一点。

如果您使用Jena Fuseki服务器,您应该可以从python访问它,就像从python访问任何其他SPARQL端点一样。

您可能也希望看到我对相关SO question的回答。