1
我想將dbpedia
影片的所有三部分保存在N-Triple文件(.nt文件)上,我使用java應用程序對dbpedia端點執行查詢並保存在一個文件上的結果,但我無法讀取此文件並從中獲取查詢!你能幫助我嗎?如何在.nt文件上保存sparql查詢的結果
//我對結果保存代碼是在這裏
try{
FileWriter fostream = new FileWriter("C:\\Documents and Settings\\me\\Desktop\\DataSets\\dbpediafilmdataset.nt");
BufferedWriter out = new BufferedWriter(fostream);
String service ="http://dbpedia.org/sparql";
String query =
"SELECT ?s ?p ?o " +
"WHERE {" +
" ?s <http://dbpedia.org/property/wordnet_type> <http://www.w3.org/2006/03/wn/wn20/instances/synset-movie-noun-1> ; ?p ?o "+
" } ";
QueryExecution qexecctest = QueryExecutionFactory.sparqlService(service, query);
try {
ResultSet responseetest = qexecctest.execSelect();
while(responseetest.hasNext()){
QuerySolution solnntest = responseetest.nextSolution();
RDFNode p = solnntest.get("?p");
RDFNode o = solnntest.get("?o");
RDFNode s = solnntest.get("?s");
String object="";
String triple="";
if (o.isLiteral()==true)
{
object="\"" + o.toString() + "\"";
}
else
object="<" + o.toString() + ">";
triple="<" + s + ">"+" " + "<" + p + ">" + " " + object + " " + "." ;
out.write(triple);
out.newLine();
}
} finally {
qexecctest.close();
out.close();}
}catch (Exception e){
System.err.println("Error: " + e.getMessage());}
當我想讀的結果文件,並從它採取查詢,它提供了一些錯誤,如這些:
com.hp.hpl.jena.rdf.model.impl.IStream.readChar(NTripleReader.java:485)
com.hp.hpl.jena.rdf.model.impl.NTripleReader.unwrappedReadRDF(NTripleReader.java:140)
com.hp.hpl.jena.rdf.model.impl.NTripleReader.readRDF(NTripleReader.java:120)
com.hp.hpl.jena.rdf.model.impl.NTripleReader.read(NTripleReader.java:84)
com.hp.hpl.jena.rdf.model.impl.NTripleReader.read(NTripleReader.java:72)
com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:226)
com.hp.hpl.jena.util.FileManager.readModelWorker(FileManager.java:395)
com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:335)
com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:319)
....
你確定這是你所有的代碼?代碼看起來不像是你做了任何可能導致錯誤跟蹤的事情,所以還有其他代碼被省略了嗎?錯誤跟蹤似乎是指讀取文件時出現問題,但是您的代碼關心的是寫入文件,這對我來說似乎很奇怪 – RobV
同樣,雖然您關閉了「BufferedWriter」,但您還沒有關閉「FileStream」,所以我確保這也被關閉,看看是否有任何區別 – RobV
不,這不是我所有的代碼,它是它的一部分!當我想從我的輸出文件(在這裏它的名字是dbpediafilmdataset)查詢時,這些錯誤是相關的! 有什麼辦法可以在rdf文件中保存sparql查詢嗎? – Sareh