Http 查询FactForge Sparql端点时RDF4J返回错误

Http 查询FactForge Sparql端点时RDF4J返回错误,http,graphdb,rdf4j,Http,Graphdb,Rdf4j,我试图用RDF4J查询Factforge Sparql端点,但收到一个错误 我将RDF4J V:2.3.2与Maven一起使用 我在Java上使用以下工具设置代理设置: System.setProperty("https.proxyHost", PROXY_HOST); System.setProperty("https.proxyPort", PROXY_PORT); System.setProperty("http.proxyHost", PROXY_HOST);

我试图用RDF4J查询Factforge Sparql端点,但收到一个错误

我将RDF4J V:2.3.2与Maven一起使用

我在Java上使用以下工具设置代理设置:

    System.setProperty("https.proxyHost", PROXY_HOST);
    System.setProperty("https.proxyPort", PROXY_PORT);
    System.setProperty("http.proxyHost", PROXY_HOST);
    System.setProperty("http.proxyPort", PROXY_PORT);
这是我的密码:

SPARQLRepository repo = new SPARQLRepository("http://factforge.net/sparql");
repo.initialize();
try (RepositoryConnection conn = repo.getConnection()) {
            String queryStringA = "SELECT ?s ?p WHERE { ?s ?p ?o } ";

            TupleQuery query = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryStringA);
            try (TupleQueryResult result = query.evaluate()) {
                while (result.hasNext()) { // iterate over the result
                    BindingSet bindingSet = result.next();
                    Value valueOfX = bindingSet.getValue("s");
                    Value valueOfY = bindingSet.getValue("p");
                    System.out.println(valueOfX);
                    System.out.println(valueOfY);
                }
            }
}
我得到以下错误:

线程“main”org.eclipse.rdf4j.query.QueryEvaluationException中出现异常:获取服务器协议失败;此服务器上没有此类资源:


我会很感激你的帮助。谢谢。

您使用了错误的端点URL。根据,Factforge的SPARQL端点位于
http://factforge.net/repositories/ff-news

除此之外,请注意,您所做的查询是“给我您所有的三元组”。Factforge有很多三元组,因此其结果将是巨大的,执行它将消耗Factforge服务器上的大量资源。您的查询可能会超时,或者Factforge可能会拒绝执行

如果您的目标只是测试SPARQL查询是否有效,那么最好在其中添加类似于
限制的约束:

 String queryStringA = "SELECT ?s ?p WHERE { ?s ?p ?o } LIMIT 10";

非常感谢您的回答和对我的问题的更新。它就像一个符咒。