正如标题所述,我正在尝试使用visualstudio中的SPARQL查询创建三元组。在stardog studio中使用相同的SPARQL查询有效,但是当我尝试使用stardogconnector从visualstudio发送它们时,出现以下错误:
dotNetRDF.dll中发生了'VDS.RDF.Query.RdfQueryException'类型的未处理异常 附加信息:查询商店时发生HTTP错误(HTTP 400错误请求)。 存储返回以下错误消息:{“ message”:“无法在读取的终结点上执行更新查询”} 有关发生的更多详情,请参见上述状态行或内部异常
代码如下:
StardogConnector stardog = new StardogConnector("http://localhost:5820", "dbtest", "admin", "password");
stardog.Begin();
string query = "INSERT DATA { <http://example/book1> dc:title \"test\"}";
stardog.Query(query);
stardog.Commit();
正如我所说,在stardog studio中插入相同的查询会得到正确的结果。数据库在线,连接正常(密码等正确),... 我只是不知道错误是什么意思。有人可以帮忙吗?关于此错误,我在网上找不到很多。
答案 0 :(得分:5)
当query
包含INSERT
,UPDATE
或其他 write 操作时,您必须更改stardog.Query(query);
(只读)到stardog.Update(query);
(显然是只写)。
答案 1 :(得分:0)
似乎dotNetRdf将所有查询发送到/myDb/query
端点,但是从Stardog 5.x开始,必须将所有SPARQL更新查询发送到/myDb/update
端点。当时已更新了官方的Stardog工具(Studio,stardog.js等)。
可以在community.stardog.com上直接提出任何其他问题。