我的数据集中有很多模型,我想查询指定的模型我在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;}
答案 0 :(得分:0)
graph <RelationModel3>
有一个相对URI - 它将由解析器解析为完整的URI。
解析并打印查询以查看查询的真实情况。
数据中图形的URI也不应该是相对URI。
使用以下方法检查您的数据:
SELECT * { GRAPH ?g {} }
并在必要时修复。