private Graph getContextOf(RDFTerm node, final Set<RDFTerm> dontExpand, Acceptor acceptor) { Graph result = new SimpleGraph(); if (node instanceof BlankNodeOrIRI) { Iterator<Triple> forwardProperties = graph.filter((BlankNodeOrIRI) node, null, null); while (forwardProperties.hasNext()) { Triple triple = forwardProperties.next(); result.add(triple); RDFTerm object = triple.getObject(); if (acceptor.expand(object) && !dontExpand.contains(object)) { dontExpand.add(object); result.addAll(getContextOf(object, dontExpand, acceptor)); } } } Iterator<Triple> backwardProperties = graph.filter(null, null, node); while (backwardProperties.hasNext()) { Triple triple = backwardProperties.next(); result.add(triple); BlankNodeOrIRI subject = triple.getSubject(); if (acceptor.expand(subject) && !dontExpand.contains(subject)) { dontExpand.add(subject); result.addAll(getContextOf(subject, dontExpand, acceptor)); } } return result; }
private Graph getContextOf(RDFTerm node, final Set<RDFTerm> dontExpand, Acceptor acceptor) { Graph result = new SimpleGraph(); if (node instanceof BlankNodeOrIRI) { Iterator<Triple> forwardProperties = graph.filter((BlankNodeOrIRI) node, null, null); while (forwardProperties.hasNext()) { Triple triple = forwardProperties.next(); result.add(triple); RDFTerm object = triple.getObject(); if (acceptor.expand(object) && !dontExpand.contains(object)) { dontExpand.add(object); result.addAll(getContextOf(object, dontExpand, acceptor)); } } } Iterator<Triple> backwardProperties = graph.filter(null, null, node); while (backwardProperties.hasNext()) { Triple triple = backwardProperties.next(); result.add(triple); BlankNodeOrIRI subject = triple.getSubject(); if (acceptor.expand(subject) && !dontExpand.contains(subject)) { dontExpand.add(subject); result.addAll(getContextOf(subject, dontExpand, acceptor)); } } return result; }