java - 如果我仅使用 Web 服务,如何实现 SPARQL 端点公共(public)

标签 java web-services sparql triplestore tdb

我有一个问题:

我在 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/

相关文章:

具有 PHP 和爆炸 war 支持的 Java 应用程序服务器

java - 从 sharepoint 2010 事件接收器调用 java webservice

rdf - 在 SparQL 的 rdf 中查找关系

java - 针对 dcterms :subject returns no results 的葡萄牙语 dbpedia 端点的 SPARQL 查询

java - 将图像添加到 JFrame

java - Spring事务管理器和DataSource Java配置方式传递相同的bean id而不创建新实例

java - SLF4J,为了避免每次都写 LoggerFactory.getLogger(MyClassName.class)

java - 将 T[](其中 T 是 Byte[])返回到 Byte[]

c# - 从另一方收到不安全或不正确的安全故障。(使用 SAML 时)

sparql - 在 SPARQL CONSTRUCT 中创建持久的 IRI?