Java Sparql关系请求
嘿,我为你做了学生教程。我有一个猫头鹰档案。我将文件保存为RDF/XML格式。现在,我尝试获取有关文件中数据的一些信息。 例如:Java Sparql关系请求,java,sparql,apache-jena,Java,Sparql,Apache Jena,嘿,我为你做了学生教程。我有一个猫头鹰档案。我将文件保存为RDF/XML格式。现在,我尝试获取有关文件中数据的一些信息。 例如: "Select * where { ?s rdfs:subClassOf owl:Thing } 工作。 现在我想得到所有与hasTopping相关的主题和对象 OntModel m = ModelFactory.createOntologyModel(OWL_MEM); InputStream in = FileManager.get().open("p
"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();
}
但结果总是空的。希望有人能帮助我
亲切问候 的前缀声明:缺少类似or的分隔符,具体取决于它在本体中的定义方式
如果没有它,则在URI中使用:hasTopping会产生结果http://www.pizza.com/ontologies/pizza.owlhasTopping