插入、更新数据
public static void insert(){
String query = "PREFIX book: <http://www.book.com/jinyong/> \n" +
" INSERT DATA \n" +
" { \n" +
" <http://www.book.com/book#001> book:书名 \"天龙八部\".\n" +
" <http://www.book.com/book#001> book:人物 \"乔峰\".\n" +
" }";
UpdateRequest updates = UpdateFactory.create(query);
UpdateProcessor updateProcessor = UpdateExecutionFactory.createRemote(updates, "http://localhost:3030/test/update");
updateProcessor.execute();
}
更新数据操作是先删除原先的三元组,在添加新的三元组
public static void update(){
String query = "PREFIX book: <http://www.book.com/jinyong/> \n" +
"DELETE \n" +
"{ \n" +
" <http://www.book.com/book#001> book:人物 \"乔峰\"\n" +
"}\n" +
"insert\n" +
"{\n" +
" <http://www.book.com/book#001> book:人物 \"萧峰\"\n" +
"}\n" +
"where\n" +
"{\n" +
"\t<http://www.book.com/book#001> book:人物 \"乔峰\"\n" +
"}";
UpdateRequest updates = UpdateFactory.create(query);
UpdateProcessor updateProcessor = UpdateExecutionFactory.createRemote(updates, "http://localhost:3030/test/update");
updateProcessor.execute();
}
查询
public List<String> queryEndPoint(){
String queryStr ="\n" +
"SELECT ?subject ?predicate ?object\n" +
"WHERE {\n" +
" ?subject ?predicate ?object\n" +
"}\n" +
"LIMIT 25";
String serviceEndPoint="http://localhost:3030/test";
Query query = QueryFactory.create(queryStr);
List<String> result=new ArrayList<>();
try ( QueryExecution qexec = QueryExecutionFactory.sparqlService(serviceEndPoint, query) ) {
ResultSet rs = qexec.execSelect();
for ( ; rs.hasNext() ; )
{
QuerySolution soln = rs.nextSolution() ;
RDFNode object = soln.get("object");
RDFNode subject = soln.get("subject");
RDFNode predicate = soln.get("predicate");
System.out.println(object.toString()+","+subject.toString() + ","+predicate.toString());
qexec.close();
}
} catch (Exception e) {
System.out.println("aaaaaaaaaaaaa");
e.printStackTrace();
}
return result;
}