Как я могу реализовать публичную конечную точку SPARQL, если я использую только веб-сервис
У меня вопрос:
Я читал в Интернете, что конечная точка SPARQL - это веб-служба, которая отвечает на запросы SPARQL для некоторого набора данных.
Я также прочитал, что могу реализовать веб-сервис, у которого есть метод, который запрашивает данные в тройном хранилище, и поэтому у меня есть конечная точка SPARQL. Это верно?
Я использую Jena TDB Triple Store, и мой вопрос:
Как я могу реализовать публичную конечную точку SPARQL (например, dbpedia.org/sparql), если я использую только веб-сервис?
Я использую Netbeans с Glassfish4.0, и это мой код:
@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;
}
1 ответ
Решение
Apache Jena Fuseki - сервер SPARQL проекта Jena.
Вы можете использовать его как автономный сервер, или как библиотеку сервлетов, или вы можете извлечь нужный код из исходного кода.