有没有办法使用Jena的DataAccessor将图形存储协议与Virtuoso一起使用?

时间:2016-04-27 08:39:08

标签: sparql jena virtuoso graph-store-protocol

我尝试使用jena withL

中的DataAccessor插入数据集
DatasetAccessor authAcc = DatasetAccessorFactory.createHTTP("http://192.168.56.101:8890/sparql-graph-crud-auth", auth);
authAcc.putModel("oole:g1",dataset.getDefaultModel());

但它似乎不起作用,我也试图使用curl PUT相同的文件,我发现了HTTP标题的差异。

来自jena:

PUT /sparql-graph-crud-auth?graph=oole:g1 HTTP/1.1

从curl做起:

curl --digest --user usr:pwd --verbose --url "http://192.168.56.101:8890/sparql-graph-crud-auth?graph-uri=oole:g1" -T file.ttl 

我明白了:

PUT /sparql-graph-crud-auth?graph-uri=oole:g1 HTTP/1.1

差异似乎是图形 - uri被图形所反对。有什么办法我还可以使用Jena的DataAccessor吗?

1 个答案:

答案 0 :(得分:0)

DatasetAccessor是SPARQL图形存储协议的API,并在其中显示graph=。这已连接到DatasetAccessorGraphHTTP

作为开源,如果你需要不同的东西,你可以复制一个类,在本地修改它(方法DatasetAccessorGraphHTTP.target)以拥有自己的实现。

这些都是基于HttpOp中的一些HTTP便利代码构建的,您可以直接调用它们,但您自己修改的DatasetAccessorGraphHTTP看起来工作量较少。