Ошибка HttpException: 502, когда я делаю запрос SPARQL на DBPedia
У меня проблема с SPARQL, когда я выполняю запрос к DBPedia.
У меня есть этот класс Java:
public class example {
public static void main(String[] args) {
String value = "http://dbpedia.org/resource/McLeod's_Daughters_(season_8)";
String object = "tsmgo";
example le = new example();
QueryExecution qe = le.queryColumn(object, value);
ResultSet results = ResultSetFactory.copyResults( qe.execSelect() );
}
public QueryExecution queryColumn(String object, String string) {
ParameterizedSparqlString qs = new ParameterizedSparqlString( "" +
"prefix dbpediaont: <http://dbpedia.org/ontology/>\n" +
"prefix dbpedia: <http://dbpedia.org/resource/>\n" +
"prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" +
"prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" +
"\n" +
"select ?ob where {\n" +
"?subj rdfs:label ?ob\n" +
"FILTER (contains(?ob, ?obj) )\n" +
"}" );
Resource risorsa = ResourceFactory.createResource(string);
qs.setParam( "subj", risorsa );
Literal obj2 = ResourceFactory.createPlainLiteral(object);
qs.setParam( "obj", obj2 );
System.out.println( qs );
QueryExecution exec = QueryExecutionFactory.sparqlService( "http://dbpedia.org/sparql", qs.asQuery() );
ResultSet results = ResultSetFactory.copyResults( exec.execSelect() );
while ( results.hasNext() ) {
System.out.println( results.next().get( "ob" ));
}
// A simpler way of printing the results.
ResultSetFormatter.out( results );
return exec;
}
}
Когда я выполняю этот код, я получаю эту ошибку:
Exception in thread "main" HttpException: 502
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:340)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:276)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:345)
at MyPackage.example.queryColumn(example.java:176)
at MyPackage.example.main(example.java:28)
Эта ошибка отличается от указанной в ответе на пост
Для написания запроса SPARQL в коде Java с использованием фильтра strstarts
Я также пытался выполнить тот же запрос с темой " http://dbpedia.org/resource/Adriano_Celentano" и чтобы запрос был выполнен правильно. В частности, я получаю результаты по некоторым запросам, поэтому не все запросы отклоняются. Такое поведение может быть задано некоторым механизмом кэширования DBPedia. Почему я получаю эту ошибку? Что я здесь не так делаю?
1 ответ
Если у вас возникла проблема при попытке выполнить запрос к DBpedia, один из наиболее важных методов отладки, которые вы должны попробовать, - это распечатать запрос, скопировать его и вставить его в конечную точку через Интернет. В этом случае, если вы скопируете и вставите следующий запрос в конечную точку, вы получите следующее сообщение, объясняющее ошибку 502:
select ?ob where {
<http://dbpedia.org/resource/McLeod's_Daughters_(season_8)> rdfs:label ?ob
FILTER (contains(?ob, "tsmgo") )
}
В настоящее время веб-сайт, к которому вы пытаетесь получить доступ, находится на обслуживании. Приносим извинения за возможные неудобства.