我有一个问题:
我在网上读到,SPARQL端点是一个Web服务,它为一些数据集回答SPARQL查询。
我还读到,我可以实现一个Web服务,它有一个查询三重存储数据的方法,所以我有一个SPARQL端点。对吗?
我使用的是Jena TDB Triple Store,我的问题是:
如果我只使用Web服务,我如何实现SPARQL端点公共(如dbpedia.org/SPARQL)?
我在Glassfish 4.0中使用Netbeans,这是我的代码:
@WebService(serviceName = "query_ws")
@Stateless()
public class query_ws {
String directory = "C:\\jena\\tdb";
@WebMethod(operationName = "query")
public String query(@WebParam(name = "strquery") String strquery){
String results = queryTDB(strquery, directory);
return results;
}
public String queryTDB(String queryStr, String directory) {
Dataset dataset = TDBFactory.createDataset(directory);
Query query = QueryFactory.create(queryStr);
QueryExecution qexec = QueryExecutionFactory.create(query, dataset);
qexec.getContext().set(TDB.symUnionDefaultGraph, true);
ResultSet results = qexec.execSelect();
String strings = ResultSetFormatter.asText(results);
qexec.close();
return strings;
}