2016-03-24 18 views
0

Sparql sorgu sonuçlarımı diziye kaydetmek istiyorum. Nasıl saklayabilirim? Bu benim java kodum. Java'da veri okuyucu kullanmak mümkün mü?Sparql sorgu sonuçları diziye nasıl kaydedilir?

import com.hp.hpl.jena.query.Query; 
import com.hp.hpl.jena.query.QueryFactory; 
import com.hp.hpl.jena.query.QueryExecution; 
import com.hp.hpl.jena.query.QueryExecutionFactory; 
import com.hp.hpl.jena.query.QuerySolution; 
import com.hp.hpl.jena.query.ResultSet; 
import com.hp.hpl.jena.rdf.model.Model; 
import com.hp.hpl.jena.rdf.model.RDFNode; 
import com.hp.hpl.jena.util.FileManager; 

public class emotion{ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 

sparqltest();} 


static void sparqltest() 
{ 

FileManager.get().addLocatorClassLoader(emotion.class.getClassLoader()); 
Model model= FileManager.get().loadModel("C:/Users/avg/workspacejena32/Jena/bin/emotion.rdf"); 
//System.out.println("Connected..."); 
String queryString="PREFIX xsd: <http://www.semanticweb.org/avg/ontologies/2016/2/untitled-ontology-5#>" + 
        "PREFIX owl: <http://www.w3.org/2002/07/owl#>" + 
        "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>" + 
        "SELECT * " + 
        "WHERE" + 
        "{ xsd:angry xsd:says ?x}"; 




Query query= QueryFactory.create(queryString); 
QueryExecution qexec=QueryExecutionFactory.create(query, model); 

try { 
ResultSet rs = qexec.execSelect(); 
for (; rs.hasNext() ;) 
{ 
    QuerySolution soln = rs.nextSolution() ; 
    RDFNode a = soln.get("x") ; 
// avg = a.asNode().getLocalName(); 
    System.out.println(a.asNode().getLocalName()); 
} 
} 
finally { 

qexec.close(); 
    }}} 

i ileride kullanmak için birer Şunu çağırabilir yerden dizi veya başka bir şey saklamak istediğiniz şöyle ı sonuçları alıyorum.

selfish 
mad 
+0

Ve sorun nedir? Örneğin nasıl oluşturulacağını biliyor musunuz? bir "ArrayList" ve ona öğeler eklemek? – AKSW

+0

Hayır efendim nasıl eleman ekleyeceğimi bilmiyorum. lütfen yardımcı olur musunuz? –

+1

@AshutoshVikramsingGirase bir ArrayList oluşturma gerçekten çok basit bir Java programlamadır. Bunu nasıl yapacağınızı bilmiyorsanız, o zaman en iyi hareket tarzınız muhtemelen "yeni başlayanlar için Java" dersi veriyor. Tarama yapmadan önce çalışmayı denemeyin :) –

cevap

2

Böyle bir şey yapmalıdır.

List<RDFNode> result = new ArrayList<RDFNode>(); 
ResultSet rs = qexec.execSelect(); 
for (; rs.hasNext() ;) 
{ 
    QuerySolution soln = rs.nextSolution() ; 
    RDFNode a = soln.get("x") ; 
// avg = a.asNode().getLocalName(); 
    System.out.println(a.asNode().getLocalName()); 
    result.add(a); 
} 
+0

Bu hata, "listenin türüne çözümlenemedi" hatası veriyor ve ArrayList, "türüne çözümlenemiyor". Ben java 6 kullanıyorum çünkü bu java 6 ile güzel mi? Java 6 ile arraylist çalışma veya değil? –

+0

Pls ithalat ekleyin. Java.util içe aktarmayı deneyin. *; Dosyanızın en üstünde bir yerde. –

+0

Evet, şimdi çalışıyor. Ama şüphe ettiğim şu ki bu depolanmış öğelere şimdi nasıl erişebilirim? Ben arraylist ile aşina değilim. –