GraphDB Free 8.8 Sparql插件返回400。不支持插入?
我正在使用GraphDB Free,并尝试使用sparql向存储区插入一些三元组。 查询看起来像一个简单的插入:GraphDB Free 8.8 Sparql插件返回400。不支持插入?,sparql,graphdb,Sparql,Graphdb,我正在使用GraphDB Free,并尝试使用sparql向存储区插入一些三元组。 查询看起来像一个简单的插入: //Some Prefixes INSERT DATA { subject predicate object } 我使用Postman将请求正文中的查询发布到SPARQL端点 和dotNetRdf将查询提交到代码中的SPARQL端点 我通过上述两种方式收到以下错误: MALFORMED QUERY: Encountered " "insert" "INSERT "" at line
//Some Prefixes
INSERT DATA { subject predicate object }
我使用Postman将请求正文中的查询发布到SPARQL端点
和dotNetRdf将查询提交到代码中的SPARQL端点
我通过上述两种方式收到以下错误:
MALFORMED QUERY: Encountered " "insert" "INSERT "" at line 5, column 1.
Was expecting one of:
"base" ...
"prefix" ...
"select" ...
"construct" ...
"describe" ...
"ask" ...
在工作台中以SPARQL形式提交相同的插入数据{…}时,其工作原理与预期相同,因此插入是正常的
文档中提到支持SPARQL 1.1更新(包括插入数据)。Sparql端点是否不支持提到的Spaqrl 1.1更新规范?仍在浏览文档,不确定我遗漏了什么…GraphDB使用-这是SPARQL 1.1协议和SPARQL图形存储协议的扩展。SPARQL更新操作的端点与查询的端点不同。您需要将更新发送到:
http://<host>/repositories/<repId>/statements
http:///repositories//statements
而不仅仅是:
http://<host>/repositories/<repId>
http:///repositories/
另外:使用?query=
参数发送查询。但是,更新使用?update=
参数
REST API文档中有一个端点。可能有一个单独的端点用于更新。没错,更新请求的URL很可能不同,一些三重存储确实使用
?update=
而不是?query=
,但这取决于配置。@AKSW根据W3C规范,使用?update=
进行更新操作是强制性的,因此,如果任何三重存储使用?query=
进行更新,它们都是不兼容的。@JeenBroekstra是的,我也认为是w.r.t.SPARQL协议文档。但我刚才提到,一些配置可能允许不同的设置。实际上,不是流行的三重存储/SPARQL API