我正在使用GraphDB Free,并且尝试使用sparql将一些三元组插入商店。 该查询看起来像一个简单的INSERT:
//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表单中的工作台中提交相同的INSERT DATA {...}时,按预期方式工作,因此INSERT没问题。
在文档GraphDB Sparql Comliance中提到支持SPARQL 1.1更新(包括INSERT DATA)。 Sparql端点是否不支持提到的Spaqrl 1.1 UPDATE规范?仍在浏览文档,不确定我错过了什么...
答案 0 :(得分:4)
GraphDB使用RDF4J REST API-这是SPARQL 1.1协议和SPARQL图形存储协议的扩展。 SPARQL更新操作的端点与查询的端点不同。您需要将更新发送至:
http://<host>/repositories/<repId>/statements
而不只是:
http://<host>/repositories/<repId>
也:使用?query=
参数发送查询。但是,更新使用?update=
参数。
REST API文档中有一个example SPARQL update request。