Example #1
0
  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();
  }