以编程方式将数据集上传到 fuseki

Programmaticaly upload dataset to fuseki

我使用 jena fuseki 2 docker 镜像来创建一个 fuseki 服务器。

而且我想知道是否有办法将我的数据集上传到 fuseki,而不是从 Web 界面,而是 以编程方式 ,从 SPARQL 或 Python 或其他任何方式.

还有,有没有办法直接从 fuseki 使用来自 webprotégé 的 ontology? 感谢您的回答

Fuseki 带有可用于上传数据的 HTTP API。您可以使用 CURL 或 Python HTTP 库与此 API 通信。 Fuseki 还包括可用于调用 HTTP API 的命令行帮助脚本。有关详细信息,请参阅 https://jena.apache.org/documentation/fuseki2/soh.html#soh-sparql-http

如果你的RDF数据是turtle格式,可以使用如下代码:

data = open('test.ttl').read()
headers = {'Content-Type': 'text/turtle;charset=utf-8'}
r = requests.post('http://localhost:3030/mydataset/data?default', data=data, headers=headers)

如果您的 RDF 数据是其他格式,您应该更改您的 headers,这是一个列表:

n3: text/n3; charset=utf-8
nt: text/plain
rdf: application/rdf+xml
owl: application/rdf+xml
nq: application/n-quads
trig: application/trig
jsonld: application/ld+json

我尝试使用 CURL、WGET、./s-post、./s-put 将文件上传到 fuseki,但没有效果。我在 post 人的帮助下生成了请求。如果有人像我一样正在寻找正确的 CURL 请求,就是这样:

curl --location --request POST 'http://{FUSEKIADDRESS}/{YOURDATASET}/data' --header 'Content-Type: multipart/form-data' --form 'file.ttl=@{}PATHtoFILE/file.ttl'