Обработка пустых узлов в кунжуте

В Model.filter() я хотел бы хранить объекты. Но если объект является пустым узлом, я хотел бы получить соответствующую тройку и сохранить реальный объект.

Проблема в Model.filter() состоит в том, что если пустым узлом (объектом) является _:a, возвращаемое "значение" будет выглядеть примерно так :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 ответов

Другие вопросы по тегам