Sparql Programmaticali将数据集上载到fuseki

Sparql Programmaticali将数据集上载到fuseki,sparql,jena,owl,protege,fuseki,Sparql,Jena,Owl,Protege,Fuseki,我使用jena fuseki 2 docker映像创建fuseki服务器 我想知道是否有一种方法可以将我的数据集上传到fuseki,不是从web界面上传,而是从SPARQL或Python或其他任何地方以编程方式上传 还有,有没有一种直接从fuseki使用webprotégé中的本体的方法? 感谢您的回答Fuseki附带了一个可用于上传数据的HTTP API。您可以使用CURL或Python HTTP库与此API通信。Fuseki还包括可用于调用HTTP API的命令行帮助程序脚本。有关更多详细信

我使用jena fuseki 2 docker映像创建fuseki服务器

我想知道是否有一种方法可以将我的数据集上传到fuseki,不是从web界面上传,而是从SPARQL或Python或其他任何地方以编程方式上传

还有,有没有一种直接从fuseki使用webprotégé中的本体的方法?
感谢您的回答

Fuseki附带了一个可用于上传数据的HTTP API。您可以使用CURL或Python HTTP库与此API通信。Fuseki还包括可用于调用HTTP API的命令行帮助程序脚本。有关更多详细信息,请参阅。

如果您的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数据采用其他格式,则应更改标题,以下是一个列表:

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,但没有效果。我在邮递员的帮助下生成了请求。如果有人(如我)正在寻找正确的卷曲请求,则如下所示:

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

谢谢你的回答。请给我看一个例子,如何使用python和fuseki的HTTP API来上传我的数据集?@mee只需将文件作为流加载,从而生成HTTP内容体,并使用HTTP PUT作为请求类型。然后确实是由dataset和graph name组成的适当的请求URI。我尝试了这个,但没有成功:
将open('pizza.owl','rb')作为f:response=requests.put(http://localhost:3030/mydataset/update,数据=f,流=True)
如果我正确理解了文档,您可能需要将http://localhost:3030/mydataset/data或
http://localhost:3030/mydataset/data?default
。这将使用SPARQL图形存储协议(),该协议(使用PUT调用)替换整个数据集。如果要使用只添加/更新给定三元组的
/update
端点,可能需要使用POST作为HTTP方法http://localhost:3030/mydataset/data作为我的put方法中的url,得到了
响应[400]
,当我查看容器日志时,我发现:
PUThttp://localhost:3030/mydataset/data
PUT/mydataset::“数据”:[multipart/form data]?
400多部分文件上传中仅接受文件(获取文件名=pizza.owl)