问题描述
我的服务器上存储了一个RDF文件。该文件或至少文件内容应通过API上传到远程GrapbDB。
在文档中,有两种方法可以执行此操作。第一个是将其上传到服务器文件,然后将其加载到GraphDB。这里的问题是,我不是服务器的所有者,所以GraphDB正在运行。因此,我无法将其上传到服务器文件。还是可能有另一个API?
另一种方法是在服务器上提供公共API,然后触发GraphDB从我的服务器下载文件。但是我的API必须使用credantials或JWT保护。但是我不知道如何在API调用中设置凭据。
没有一种方法可以将简单图形上载到存储库?
解决方法
在GraphDB中有一个基于浏览器的用户界面,可让您import from local files。如果您要连接的服务器上允许这样做,而您只需要这样做一次,那么我认为这将是最快的方法。
如果您想使用dotNetRDF将本地文件上传到GraphDB,那么我建议您通过VDS.RDF.Storage.SparqlHttpProtocolConnector
作为SPARQL 1.1 graph store protocol API使用described here。您需要使用的基本URL将取决于服务器的配置,还可能取决于它所运行的GraphDB的版本,但是对于最新版本(9.4),该模式为:<RDF4J_URL>/repositories/<repo_id>/rdf-graphs/service
连接器支持HTTP基本身份验证(这是GraphDB提供的选项之一),因此,如果您具有用户名和密码,则可以尝试使用连接器上的SetCredentials
方法来指定这些凭据,并在必要时强制使用通过将全局选项属性VDS.RDF.Options.ForceHttpBasicAuth
设置为true来使用HTTP基本认证。