查询 dbpedia 时出现 404 异常

404 Exception while querying dbpedia

我有以下代码向 dbpedia 服务器发出请求。

HttpQuery.urlLimit = 3000;
Query query = QueryFactory.create(queryString, Syntax.syntaxARQ);
QueryExecution qexec = QueryExecutionFactory.sparqlService(this.endPoint,query);
ResultSet resultSet = qexec.execSelect();

代码运行良好,但有时会引发以下异常。

HttpException: 404
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:349)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:295)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execResultSetInner(QueryEngineHTTP.java:346)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:338)

出现这种异常的原因是什么?

HTTP 404 是标准的 HTTP 错误,表示未找到所请求的资源,即服务器找不到您请求的服务。

作为一项向所有人开放的 public 服务,DBPedia 被大量使用并且经常因各种原因而中断,例如维护、hardware/software 中断、DoS 攻击(无论是有意还是无意的不良查询)

根据 SPARQL Endpoint Status for DBPedia 端点的可用性约为 99%,这意味着有时它会不可用。

可能的原因有很多。我们没有足够的信息来确定哪些适用于此。

正如@RobV 所说,HTTP 404 是一个标准的 HTTP 错误,表示服务器(正在运行)找不到您请求的资源——但我们不知道您请求的是什么资源因为当你收到和没有收到这个错误时,所以无法进一步分析。

404 并不表示服务器已关闭,也不表示它拒绝为您服务。这些条件(以及许多其他条件)会导致不同的 error codes.