如何最好地远程加载RDF:XML到Virtuoso(如果可能,通过http调用)?

时间:2016-04-20 15:18:57

标签: curl sparql rdf virtuoso

我继承了一个Virtuoso图形数据库,客户端可以访问

http://someaddress:8890/sparql

我可以通过运行远程清除:

curl -i --data-urlencode query="CLEAR SILENT GRAPH curl -i --data-urlencode query="CLEAR SILENT GRAPH <http://someaddress:8890/db>" -H "Content-Type: application/sparql-query" -G http://someaddress:8890/sparql

并测试它是否符合我的预期:

curl -i --data-urlencode query="select (count(?s) as ?count) where { ?s ?p ?o . }" -H "Content-Type: application/sparql-query" -G http://someaddress:8890/sparql

这给了我数据库中三元组的计数 - 计数非零,但看起来好像剩下的三元组是系统管理的三元组。

接下来,我想要加载一些RDF文件,我打算通过SPARQL端点通过网络向用户提供这些文件。

所以要加载数据,我运行

curl -X PUT --digest -u "user:pass" -T "C:\data\rdf\triples_domain_a.rdf" -G "http://someaddress:8890/sparql-graph-crud-auth" --data-urlencode "graph=http://someaddress:8890/db"

我可以看到在使用之前的curl检查计数时创建了三元组 - 并且它在此文件中的三重计数上升了。到目前为止,非常好。

但是,当我运行第二个文件时,使用:

curl -X PUT --digest -u "user:pass" -T "C:\data\rdf\triples_domain_b.rdf" -G "http://someaddress:8890/sparql-graph-crud-auth" --data-urlencode "graph=http://someaddress:8890/db"

不是这些三元组追加到我的数据库中,而是用这个替换以前加载的内容。

我有一系列要加载的附加文件 - 我做错了什么?

我可以通过连接到isql会话并在本地运行http://someaddress:8890RDF_GLOBAL_RESET();直接在DB.DBA.RDF_LOAD_RDFXML_MT服务器上执行此操作 - 但我正在从其他服务器生成文件,并且理想情况下,我希望该服务器将它们上传到triplestore本身,无需任何手动干预。 curl方法是首选方法,因为它是一个相对简单的命令,我可以从生成服务器进行参数化和执行。

感觉好像我很亲密,但我似乎无法克服这个替代问题 - 任何想法?

0 个答案:

没有答案