sparql - SPARQL 更新不适用于 Jena JDBC 和 Jena RDFConnection,用于 RDF 数据
问题描述
我在图表中有以下数据(命名为“data.n3”或“data.ttl”,我尝试了两个扩展名):-
# Default graph
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix ns: <http://example.org/ns#> .
<http://example/book1> ns:price 42 .
我尝试了以下 2 个代码片段:-
代码 1
import org.apache.jena.query.Dataset;
import org.apache.jena.query.DatasetFactory;
import org.apache.jena.rdfconnection.RDFConnection;
import org.apache.jena.rdfconnection.RDFConnectionFactory;
import org.apache.jena.system.Txn;
public class DataWriting {
public static void main(String[] args) {
Dataset ds = DatasetFactory.create();
try (RDFConnection conn = RDFConnectionFactory.connect(ds);) {
conn.load("data.ttl") ;
conn.update("PREFIX dc: <http://purl.org/dc/elements/1.1/>\r\n" +
"INSERT DATA\r\n" +
"{ \r\n" +
" <http://example/book1> dc:title \"A new book\" ;\r\n" +
" dc:creator \"A.N.Other\" .\r\n" +
"}") ;
conn.put("data.n3");
conn.commit();
}) ;
}
}
}
代码 2
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.jena.jdbc.mem.MemDriver;
public class DataWriting {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
MemDriver.register();
conn = DriverManager.getConnection("jdbc:jena:mem:dataset=data.ttl");
stmt = conn.createStatement();
stmt.executeUpdate("PREFIX dc: <http://purl.org/dc/elements/1.1/>\r\n" +
"INSERT DATA\r\n" +
"{ \r\n" +
" <http://example/book1> dc:title \"A new book\" ;\r\n" +
" dc:creator \"A.N.Other\" .\r\n" +
"}");
} catch (SQLException e) {
System.err.println("SQL Error - " + e.getMessage());
} finally {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
期望文件“data.n3”或“data.ttl”中的数据变为以下内容:-
# Default graph
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix ns: <http://example.org/ns#> .
<http://example/book1> ns:price 42 .
<http://example/book1> dc:title "A new book" .
<http://example/book1> dc:creator "A.N.Other" .
但是,在执行上述 2 个 Java 程序中的任何一个之后,这实际上并没有发生。我是否遗漏了什么或做错了什么?
解决方案
推荐阅读
- vb.net - SonarQube 扫描无法在 ASP.net 网站上运行
- javascript - 使用 Javascript 提取 SharePoint 列表值以过滤另一个列表
- jquery - 在列表项中查找重复的类 - .filter() 显示它们,隐藏其余的
- python - Pandas 优化 - 如何处理两列中的 Pandas 时间序列数据并获取列之间的每小时数据
- shell - find:路径必须在表达式之前:find -name
- oracle - Oracle SQL:PLS-00049 从序列中选择 NEXTVAL 时绑定变量错误
- c++ - 将运算符 << 与隐式转换的非基本数据类型一起使用时出错
- ipython - 使用“布尔数组索引”时打印 dz
- javascript - 单击时显示反应组件
- c# - 反射返回“未定义”的扩展方法