如果我只使用Web服务,如何实现SPARQL端点公共

时间:2014-09-05 07:16:16

标签: java web-services sparql triplestore tdb

我有一个问题:

我在网上看到SPARQL端点是一个Web服务,可以回答某些数据集的SPARQL查询。

我还读到我可以实现一个Web服务,它有一个查询三元组存储数据的方法,所以我有一个SPARQL端点。没错?

我使用Jena TDB Triple Store,我的问题是:

如果我只使用Web服务,如何实现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 个答案:

答案 0 :(得分:1)

Apache Jena Fuseki是Jena项目的SPARQL服务器。

您可以将其用作独立服务器,也可以将其用作servlet库,也可以从源代码中提取所需的代码。