private static boolean isSubsetInternal(Set<? extends Statement> model1, Set<? extends Statement> model2) { // try to create a full blank node mapping return matchModels(model1, model2); }
private static boolean matchModels(Set<? extends Statement> model1, Set<? extends Statement> model2) { // Compare statements without blank nodes first, save the rest for later List<Statement> model1BNodes = new ArrayList<Statement>(model1.size()); for (Statement st : model1) { if (st.getSubject() instanceof BNode || st.getObject() instanceof BNode || st.getContext() instanceof BNode) { model1BNodes.add(st); } else { if (!model2.contains(st)) { return false; } } } return matchModels(model1BNodes, model2, new HashMap<BNode, BNode>(), 0); }
result = matchModels(model1, model2, newBNodeMapping, idx + 1);