问题描述
我正在尝试检查在SPARQL查询中出现在不同位置的多个变量。就像在queryString中一样,Y是一个类,但在第三个三元组中,Y是一个实例。查询中可能会有更多变量。在这一点上,我很难说第二个三元组中的?Y是class,而第三个三元组中的相同?Y是一个实例。
预期输出:
?Y是三元组(?x rdf:type?y)
?Y是三元组(?y rdf:type?z)的实例
String queryString = "prefix rdfs: <http://www.w3.org/1999/02/22-rdf-Syntax-ns#> "+
"prefix rdf: <http://www.w3.org/1999/02/22-rdf-Syntax-ns#>" +
"prefix owl: <http://www.w3.org/2002/07/owl#> "+
"select ?x ?y where {?x rdf:type owl:Class ." +
"?x rdf:type ?y ."+
"?y rdf:type ?z"+
"}";
Query query = QueryFactory.create( queryString );
ElementWalker.walk( query.getQueryPattern(),new ElementVisitorBase() {
@Override
public void visit(ElementPathBlock el) {
ListIterator<TriplePath> it = el.getPattern().iterator();
while ( it.hasNext() ) {
final TriplePath tp = it.next();
Node Subject = tp.getSubject();
Node Object = tp.getobject();
Node Predicate = tp.getPredicate();
......stuck
}
}
}
任何帮助表示赞赏。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)