我有一个问题:
我在 Web 上读到,SPARQL 端点是一个 Web 服务,可以回答某些数据集的 SPARQL 查询。
我还了解到,我可以实现一个 Web 服务,该服务具有查询三元组存储上的数据的方法,因此我有一个 SPARQL 端点。是吗?
我正在使用 Jena TDB Triple Store,我的问题是:
如果我仅使用 Web 服务,如何实现 SPARQL 端点公共(public)(如 dbpedia.org/sparql)?
我正在使用带有 Glassfish4.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;
}
最佳答案
Apache Jena Fuseki 是 Jena 项目的 SPARQL 服务器。
您可以将其用作独立服务器,也可以将其用作 servlet 库,或者可以从源代码中提取所需的代码。
关于java - 如果我仅使用 Web 服务,如何实现 SPARQL 端点公共(public),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25680503/