2017-03-03 3 views
0

Ich habe eine Menge von Modellen in meinem Dataset und ich möchte spezifiziertes Modell verwendet ich verwendet Diagramm Schlüsselwort in SPARQL Abfrage, aber es gibt mir eine leere Ergebnismenge kann mir jemand helfen, bitte ?Abfrage eines Modells aus Datensatz in TDB

public static void SparqlForSentencesDuplicates() 
{ 

    String querystr= "PREFIX aapi:<http://rdf.alchemyapi.com/rdf/v1/s/aapi-schema#> " 

      + "select ?s where {" 
      +"graph <RelationModel3> {" 
      + "?id aapi:RelationSentence ?s } " 
      +"}"; 

    Dataset ds=tdbconn.ds; 
    ds.begin(ReadWrite.READ); 
    QueryExecution qexe= QueryExecutionFactory.create(querystr, ds); 
    try { 

     ResultSet result= qexe.execSelect(); 
     ResultSetFormatter.out(result); 
    }finally{ 
     qexe.close(); 
     ds.close(); 
    } 

} 

und hier, wie ich das Modell

public Model loadModel(String modelName, StringBuilder Builder) 
    { 
Model model = null; 

ds.begin(ReadWrite.WRITE); 
try 
{ 
    //model = ds.getNamedModel(modelName); 
    model = ModelFactory.createDefaultModel(); 

    model.read(new ByteArrayInputStream(Builder.toString().getBytes()), null); 
    ds.addNamedModel(modelName, model); 
    ds.commit(); 
} 
finally 
{ 
    ds.end(); 
} return model;} 

Antwort

0

laden graph <RelationModel3> eine relative URI - es wird durch den Parser in einen vollständigen URI aufgelöst werden.

Analysieren und drucken Sie die Abfrage, um zu sehen, wie die Abfrage wirklich aussieht.

URIs für Grafiken in den Daten sollten auch keine relativen URIs sein.

Überprüfen Sie Ihre Daten mit:

SELECT * { GRAPH ?g {} } 

und reparieren, falls erforderlich.

Verwandte Themen