Я пытаюсь выполнить простой запрос Sparql с моего устройства Android.Я использую конечную точку в режиме онлайн: https://dbpedia.org/sparql с URI http://dbpedia.org и запросом:
"выбрать отдельный? Концепция, где {[] a? Концепция} LIMIT 100".
Я успешно импортировал в свой проект Android библиотеки androjena 0.5 и arqoid 0.5.Изучая код из этого полезного руководства, я изменил несколько строк и получил следующий код:
import java.util.List;
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.query.Syntax;
public class SparqlExamples {
public String queryRemoteSparqlEndpoint() {
String queryString = "select distinct ?Concept where {[] a ?Concept} LIMIT 100";
String sparqlEndpointUri = "https://dbpedia.org";
Query query = QueryFactory.create(queryString, Syntax.syntaxARQ);
query.setLimit(10);
query.setOffset(1);
QueryExecution qe = QueryExecutionFactory.sparqlService(sparqlEndpointUri, query);
ResultSet resultSet = qe.execSelect();
StringBuffer results = new StringBuffer();
List<String> columnNames = resultSet.getResultVars();
while (resultSet.hasNext()) {
QuerySolution solution = resultSet.next();
for (String var : columnNames) {
results.append(var + ": ");
if (solution.get(var) == null) {
results.append("{null}");
} else if (solution.get(var).isLiteral()) {
results.append(solution.getLiteral(var).toString());
} else {
results.append(solution.getResource(var).getURI());
}
results.append('\n');
}
results.append("-----------------\n");
}
qe.close();
return results.toString();
}
}
и MainActivity:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String results = new SparqlExamples().queryRemoteSparqlEndpoint();
Log.d("results","results"+String.valueOf(results));
}
}
Буду признателен за любую идею, которая может помочь в этом вопросе.