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



我正在尝试将以下 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数据插入到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)

但似乎它不起作用。如何解决此问题?感谢您的帮助!

您在图像中显示的答案是RDF三重格式,只是打印得不漂亮。

要将RDF数据存储在RDF存储中,可以使用RDFlib。下面是如何执行此操作的示例。

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

您可能还想查看我对相关SO问题的回答。

最新更新