处理Sesame中的空白节点

时间:2016-01-17 14:05:42

标签: java rdf sesame blank-nodes openrdf

在Model.filter()中,我想存储对象。但是如果对象是一个空白节点,我想检索相应的三元组并存储真实对象。

Model.filter()中的问题是如果空白节点(对象)是_:a,则返回" Value"将是:xxxxxxxxxxa。这很好但是当我在模型中有(:xxxxxxxxxxa,p,o)时,尝试使用model.filter(_:xxxxxxxxxxa,null,null)失败。

   java.util.NoSuchElementException
        at org.openrdf.model.impl.AbstractModel$ValueSet$ValueSetIterator.
next(AbstractModel.java:493)
        at org.openrdf.model.impl.AbstractModel$ValueSet$ValueSetIterator.next(AbstractModel.java:470)

这是解释更多拘留问题的源代码:

    private Model triples;

    private Value filterBySubjectAndPredicate(Resource subject, IRI Predicate, IRI nextPredicate) {

    Value tempValue = triples.filter(subject, vf.createURI(Predicate.getFullIRI()), null).
objects().iterator().next();
            BNode bnode = null;
            if(tempValue instanceof BNode) {
            bnode = vf.createBNode(tempValue.toString());
            return triples.filter(bnode, vf.createURI(nextPredicategetFullIRI()), null).
objects().iterator().next();
            } else
            return triples.filter(subject, vf.createURI(Predicate.getFullIRI()), null).
objects().iterator().next();
        }

提前谢谢。

0 个答案:

没有答案