java - Querying DBpedia with androjena -
i have problem when testing androjena api. in system have ask dbpedia dataset sending query.
this class:
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.resultset; import com.hp.hpl.jena.query.resultsetfactory; import com.hp.hpl.jena.query.syntax; import com.hp.hpl.jena.rdf.model.rdfnode; import android.os.asynctask; public class querydbpedia extends asynctask <string, void, list<string>>{ //@override protected list<string> doinbackground(string... keyword) { list<string> list=null; string sparqlquery= "prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n" + "prefix dbpedia-owl:<http://dbpedia.org/ontology/>\n" + "prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "prefix foaf: <http://xmlns.com/foaf/0.1/> \n"+ "select distinct ?nom ?resource ?url {\n" + "?resource rdfs:label ?nom.\n" + "?resource foaf:isprimarytopicof ?url.\n" + "filter langmatches( lang(?nom), \"en\" ).\n" + "?nom <bif:contains> \"apple\".\n"+ "} limit 10" ; system.out.println(sparqlquery); string service= "http://dbpedia.org/sparql"; query qur=queryfactory.create(sparqlquery); queryexecution exec =queryexecutionfactory.sparqlservice(service,qur ); try{ resultset results = resultsetfactory.copyresults( exec.execselect() ); while ( results.hasnext() ) { rdfnode s= results.next().get( "resource" ); list.add(s.tostring()); system.out.print(s.tostring()); } } catch (exception e) { e.printstacktrace(); } finally{exec.close();} return list; }}} i using api, androjena_o5.jar, arqoid_0.5.jar, icu4j-3.4.5.jar, iri-0.8.jar, lucenoid_3.0.2, sl4j-android-1.6.1-rc1.jar
but when i'am executing code, got error:
fatal exception: asynctask #1 java.lang.runtimeexception: error occured while executing doinbackground() @ android.os.asynctask$3.done(asynctask.java:299) @ java.util.concurrent.futuretask$sync.innersetexception(futuretask.java:273) @ java.util.concurrent.futuretask.setexception(futuretask.java:124) @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:307) @ java.util.concurrent.futuretask.run(futuretask.java:137) @ android.os.asynctask$serialexecutor$1.run(asynctask.java:230) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1076) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:569) @ java.lang.thread.run(thread.java:856) caused by: java.lang.noclassdeffounderror:com.hp.hpl.jena.query.queryfactory @ com.example.testtvprg.querydbpedia.doinbackground(querydbpedia.java:73) @ com.example.testtvprg.querydbpedia.doinbackground(querydbpedia.java:1) @ android.os.asynctask$2.call(asynctask.java:287) @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:305) it seems tha problem of api, can me please
finally find solution, problem after update of sdk or adt. followed solution cited here
Comments
Post a Comment