从 TDB 中的数据集中查询模型

Query a model from Dataset in 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;}

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

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

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

检查您的数据:

SELECT * { GRAPH ?g {} }

并在必要时进行修复。