public Delta diff(Model m1, Model m2, BiMap<String, String> mapping) { this.namespaceMap = mapping; this.m1 = m1; this.m2 = m2; this.m1.updateLabels(); this.m2.updateLabels(); this.delta = new TripleDelta(); RdfGraph g = GraphUtils.toGraph(m1, RdfSchema.SUBCLASSOF); for (RdfNode n : m1.findNodes(RdfType.CLASS)) { if (!g.nodeMap().containsKey(n)) { g.nodeMap().put(n, g.graph().newNode(n)); } } for (RdfNode n : m1.findNodes(RdfType.METACLASS)) { if (!g.nodeMap().containsKey(n)) { g.nodeMap().put(n, g.graph().newNode(n)); } } for (RdfNode n : m1.findNodes(RdfType.METAPROPERTY)) { if (!g.nodeMap().containsKey(n)) { g.nodeMap().put(n, g.graph().newNode(n)); } } classMap1 = g.nodeMap(); closureClass1 = Transitivity.acyclicClosure(g.graph(), SuccessorSetFactory.intervalBased(g.graph())); g = GraphUtils.toGraph(m1, RdfSchema.SUBPROPERTYOF); for (RdfNode n : m1.findNodes(RdfType.PROPERTY)) { if (!g.nodeMap().containsKey(n)) { g.nodeMap().put(n, g.graph().newNode(n)); } } propMap1 = g.nodeMap(); closureProp1 = Transitivity.acyclicClosure(g.graph(), SuccessorSetFactory.intervalBased(g.graph())); return compareTriples(); }