代码之家  ›  专栏  ›  技术社区  ›  Musich87

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

  •  0
  • Musich87  · 技术社区  · 10 年前

    我有一个问题:

    我在网上读到,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;
        }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   AndyS    10 年前

    ApacheJenaFuseki是Jena项目的SPARQL服务器。

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

    推荐文章