我尝试使用AndroJena Api在Android项目中查询DBpedia。这是我的功能:
public void Jena()throws IOException
{
String sparqlQuery="PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" +
"SELECT DISTINCT ?film_URI \n" +
"WHERE {\n" +
"?film_URI rdf:type <http://dbpedia.org/ontology/Film> . \n" +
"} Limit 10" ;
String service= "http//dbpedia.org/sparql";
Query qur=QueryFactory.create(sparqlQuery);
QueryExecution exec = QueryExecutionFactory.sparqlService(service,qur );
ResultSet results = ResultSetFactory.copyResults( exec.execSelect() );
ResultSetFormatter.out( results );
}
但是当我在mainActivity类中调用此函数时,这会产生MalformedUrlException:
FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity
componentInfo{com.example.testtvprg/com.example.testtvprg.MainActivity}: HttpException: 0
Malformed URL: java.net.MalformedURLException: Protocol not found: http//dbpedia.org/sparql?
query=PREFIX++rdf%3A++%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-
ns%23%3E%0A%0ASELECT+DISTINCT++%3Ffilm_URI%0AWHERE%0A++%7B+%3Ffilm_URI++rdf%3
Atype++%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FFilm%3E+.+%7D%0ALIMIT+++10%0
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
请帮帮我
答案 0 :(得分:0)
String service= "http//dbpedia.org/sparql";
应为http:
。
答案 1 :(得分:0)
在asynctask中运行它,它将解决问题。