从TDB中的数据集查询模型

时间:2017-03-03 17:38:39

标签: sparql jena tdb

我的数据集中有很多模型,我想查询指定的模型我在SPARQL查询中使用了graph关键字,但它给了我一个空的结果集 有谁可以帮我这个,拜托?

    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();
    }

}

在这里我如何加载模型

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;}

1 个答案:

答案 0 :(得分:0)

graph <RelationModel3>有一个相对URI - 它将由解析器解析为完整的URI。

解析并打印查询以查看查询的真实情况。

数据中图形的URI也不应该是相对URI。

使用以下方法检查您的数据:

SELECT * { GRAPH ?g {} }

并在必要时修复。