SPARQL查询不报告任何结果

时间:2017-06-15 14:25:58

标签: java sparql jena n-triples

我报告了使用Jena在Java代码中执行SPARQL查询时出现的问题。本体是可用的here(请在798545行更正额外的空白区域)。 从Jena Model上的N-Triples文件加载本体后,使用

Model model=ModelFactory.createDefaultModel();
model.read("minerva-dataset.nt");

我尝试使用SPARQL对模型进行查询:

String queryString = "PREFIX owl: <http://www.w3.org/2002/07/owl#> \n"
            + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
            + "PREFIX dcterms:<http://purl.org/dc/terms/>\n"
            + "SELECT  ?title WHERE { \n" + "?book rdf:type owl:Thing .\n" + "?book dcterms:title ?title.\n"+"}";

    System.out.println(queryString);  //I used this to see if the query was correctly parsed

    Query query = QueryFactory.create(queryString);
    QueryExecution qe = QueryExecutionFactory.create(query, model);
    ResultSet rs = qe.execSelect();
    ResultSetFormatter.out(System.out, rs);

但是,即使尝试另一个查询,ResultSet结果为空。 我确信查询HAS的结果是因为我也在Protegé上运行了我在Jena模型中加载的相同本体。 然后我在加载过程中搜索了一个错误,但是使用了

FileOutputStream test=new FileOutputStream("test.txt");
model.write(test,"N-TRIPLES");

我在输出文件中看到公理的数量与本体的原始文件相同(即使顺序不相同)。

所以我认为错误在于查询的执行(也考虑到在Eclipse控制台中没有出现任何解析错误),但我无法理解它是由什么造成的。

0 个答案:

没有答案