从java上传RDF到三元组

问题描述

我有许多海龟文件,每个文件都需要使用每个文件的命名图上传到三元组存储中。

我正在研究 Blazegraph 和 GraphDB。对于两者,我都可以上传海龟文件

File file = new File("path-to-file.ttl");

//Blazegraph
RDFConnection myconnection = RDFConnectionFactory.connect("http://localhost:9999/blazegraph/namespace/kb/update");
Model model = ModelFactory.createDefaultModel();
model = model.read(new FileInputStream(file.getAbsolutePath()),null,"TTL");
myconnection.load(model);
myconnection.close();

// GraphDB
Repository repository = new SPARQLRepository("http://localhost:7200/repositories/myrepo/statements");
RepositoryConnection connection = repository.getConnection();
connection.add(file);
connection.close();

元组被加载到认图中,但我希望它们被加载到每个文件的命名图中。

我尝试将命名空间添加到端点 URL,但这不起作用。

Blazegraph:用我自己的命名空间替换认命名空间“kb”,但它抱怨命名空间不存在。当我在 WebUI 中创建命名空间时它起作用,这在以后是不可行的。

RDFConnection myconnection = RDFConnectionFactory.connect("http://localhost:9999/blazegraph/namespace/MYNAMESPACE/update");

ERROR: BigdataRDFServlet.java:216: cause=java.util.concurrent.ExecutionException: org.openrdf.repository.RepositoryException: org.openrdf.sail.SailException: com.bigdata.rdf.sail.webapp.DatasetNotFoundException: namespace=MYNAMESPACE,query=INSERT-WITH-BODY: baseURI=http://localhost:9999/blazegraph/namespace/MYNAMESPACE/update/data,Content-Type=application/n-triples,context-uri=[]
java.util.concurrent.ExecutionException: org.openrdf.repository.RepositoryException: org.openrdf.sail.SailException: com.bigdata.rdf.sail.webapp.DatasetNotFoundException: namespace=MYNAMESPACE

GraphDB:将命名图添加到端点 url,导致 HTTP 405。

Repository repository = new SPARQLRepository("http://localhost:7200/repositories/myrepo/rdf-graph/MYGRAPH/statements");

Exception in thread "main" org.eclipse.rdf4j.repository.RepositoryException: error executing transaction
    at org.eclipse.rdf4j.repository.sparql.SPARQLConnection.commit(SPARQLConnection.java:421)
    at org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection.conditionalCommit(AbstractRepositoryConnection.java:323)
    at org.eclipse.rdf4j.repository.sparql.SPARQLConnection.add(SPARQLConnection.java:478)
    at org.eclipse.rdf4j.repository.RepositoryConnection.add(RepositoryConnection.java:907)
Caused by: org.eclipse.rdf4j.query.UpdateExecutionException: Request method 'POST' not supported (HTTP status 405)
    at org.eclipse.rdf4j.repository.sparql.query.SPARQLUpdate.execute(SPARQLUpdate.java:47)
    at org.eclipse.rdf4j.repository.sparql.SPARQLConnection.commit(SPARQLConnection.java:419)

如何将文件直接上传到命名图中(或者这是不可能的)?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...