0

我的数据集中有很多模型,我想查询我在 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;}
4

1 回答 1

0

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

解析并打印查询以查看查询的真实样子。

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

检查您的数据:

SELECT * { GRAPH ?g {} }

并在必要时进行修复。

于 2017-03-03T18:54:12.200 回答