Sparql请求关系

时间:2017-02-01 15:12:16

标签: java sparql apache-jena

嘿,我为pizzas制作了保护教程。我有一个猫头鹰文件。我将文件保存为RDF / XML格式。现在我尝试获取有关文件中数据的一些信息。 比如:

"Select * where {
?s rdfs:subClassOf owl:Thing
}

的工作。 现在我想获得与“hasTopping”相关的所有主题和对象。

OntModel m = ModelFactory.createOntologyModel(OWL_MEM);

    InputStream in = FileManager.get().open("pizza1.owl");
    m.read(in, "RDF/XML");
    String queryString =
                    "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
                    "PREFIX : <http://www.pizza.com/ontologies/pizza.owl> " +
                    "PREFIX owl: <http://www.w3.org/2002/07/owl#>" +
                    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>" +
                    "PREFIX xml: <http://www.w3.org/XML/1998/namespace>" +
                    "SELECT * WHERE" +
                    "{" +
                    "?s :hasTopping ?o" +
                    "}";
    Query query = QueryFactory.create(queryString);
    QueryExecution qexec = QueryExecutionFactory.create(query,m);
    try {
        ResultSet results = qexec.execSelect();
        while( results.hasNext()) {
            QuerySolution soln = results.nextSolution();
            RDFNode name = soln.get("s");
            RDFNode name1 = soln.get("o");


            //RDFNode name2 = soln.get("s");
            System.out.println("Subject:" + name);
            System.out.println("Object:" + name1);

            //System.out.println(name2);
        }
    } finally {
        qexec.close();
    }

但结果总是空的。希望有人可以帮助我。

请问!

1 个答案:

答案 0 :(得分:1)

$form['users'][$user->id()]['dummyNode-' . $user->id()] = array( '#type' => 'submit', '#value' => 'Check', '#name' => 'check_' . $user->id(), '#submit' => array([$this, 'removeMember']), ); 的前缀声明缺少:#之类的分隔符 - 取决于它在本体中的定义。

没有它,使用/会产生URI :hasTopping