dp.*_*rlo 1 java owl ontology sparql jena
我有这个java代码,使用apache jena api,查询比萨本体
String queryStr =
"prefix pizza: <" + PIZZA_NS + "> " +
"prefix rdfs: <" + RDFS.getURI() + "> " +
"prefix owl: <" + OWL.getURI() + "> " +
"select ?pizza where {?pizza a owl:Class ; " +
"rdfs:subClassOf ?restriction. " +
"?restriction owl:onProperty pizza:hasTopping ;" +
"owl:someValuesFrom pizza:PeperoniSausageTopping" +
"}";
Query query = QueryFactory.create(queryStr);
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet rs = qe.execSelect();
ArrayList rsList = (ArrayList)ResultSetFormatter.toList(rs);
for(int i=0;i<rsList.size();i++){
out.println(rsList.get(i).toString());
}
Run Code Online (Sandbox Code Playgroud)
它返回:
( ?pizza = <http://www.co-ode.org/ontologies/pizza/pizza.owl#AmericanHot> )
( ?pizza = <http://www.co-ode.org/ontologies/pizza/pizza.owl#FourSeasons> )
( ?pizza = <http://www.co-ode.org/ontologies/pizza/pizza.owl#American> )
Run Code Online (Sandbox Code Playgroud)
但我只需要
AmericanHot
四个季节
美国
如何获得这个结果?
我以这种方式解决了它.
for ( ; rs.hasNext() ; ){
QuerySolution soln = rs.nextSolution() ;
RDFNode x = soln.get("pizza") ;
out.println(x.asNode().getLocalName());
}
Run Code Online (Sandbox Code Playgroud)
对于谁将有同样的问题,其他信息可以从这里检索
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |