我正在尝试从我的android设备执行一个简单的Sparql查询。我正在使用的在线端点是https://dbpedia.org/sparql,其中包含URI http://dbpedia.org和查询:
“选择不同的?Concept,其中{[]一个?Concept}限制为100”。
我成功将Androjena 0.5和arqoid 0.5的库导入了我的Android项目。从this有用的教程中学习代码,我更改了几行,最后得到了以下代码:
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));
}
}
对于能解决此问题的任何想法,我将不胜感激。
答案 0 :(得分:0)
这-
public String replaceAll(String replacement) {
reset();
boolean result = find();
if (result) {
StringBuffer sb = new StringBuffer();
do {
appendReplacement(sb, replacement);
result = find();
} while (result);
appendTail(sb);
return sb.toString();
}
return text.toString();
}
-应该是这个-
String sparqlEndpointUri = "https://dbpedia.org";