微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从java上传RDF到三元组

如何解决从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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?