如何在SPARQL中获得不同位置类型的相同变量?

问题描述

我正在尝试检查在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 (将#修改为@)