Documentation / Identification

Identification

(com.betterdiff.api.identification.Identification)

Identification is one of the core Phases. During this phase, AlignedChunks from Alignment phase are analyzed and Mutations identified.

Example:

Input from the Alignment phase:

  • AlignedChunk 1: (Chunk)/ordinalNumber = 1, yAxis = 1
  • AlignedChunk 2: (Chunk)/ordinalNumber = 1, yAxis = 2
  • AlignedChunk 3: (Chunk)/ordinalNumber = 2, yAxis = 1
  • AlignedChunk 4: (Chunk)/ordinalNumber = 2, yAxis = 3
  • AlignedChunk 5: (Chunk)/ordinalNumber = 3, yAxis = 2
  • AlignedChunk 6: (Chunk)/ordinalNumber = 3, yAxis = 3

Visual representation of the aligned matrix:

Each position (pair of brackets) represents one AlignedChunk. Number in the brackets is the identification numbers of the corresponding PairedChunk. And the position of each AlignedChunk is based on the Chunk's ordinalNumber and AlignedChunk's yAxis.

[5]   [5]
[1]         [1]
      [9]   [9]

Identified Mutations:

  • Mutation 1: originalOrdinalNumber = 1, originalYAxis = 1, targetOrdinalNumber = 2, targetYAxis = 1, mutationType = Equality
  • Mutation 2: originalOrdinalNumber = 1, originalYAxis = 1, targetOrdinalNumber = 3, targetYAxis = 1, mutationType = Addition
  • Mutation 3: originalOrdinalNumber = 1, originalYAxis = 2, targetOrdinalNumber = 2, targetYAxis = 2, mutationType = Addition
  • Mutation 4: originalOrdinalNumber = 1, originalYAxis = 2, targetOrdinalNumber = 3, targetYAxis = 2, mutationType = Equality
  • Mutation 5: originalOrdinalNumber = 1, originalYAxis = 3, targetOrdinalNumber = 2, targetYAxis = 3, mutationType = Deletion
  • Mutation 6: originalOrdinalNumber = 1, originalYAxis = 3, targetOrdinalNumber = 3, targetYAxis = 3, mutationType = Deletion
  • Mutation 7: originalOrdinalNumber = 2, originalYAxis = 1, targetOrdinalNumber = 1, targetYAxis = 1, mutationType = Equality
  • Mutation 8: originalOrdinalNumber = 2, originalYAxis = 1, targetOrdinalNumber = 3, targetYAxis = 1, mutationType = Addition
  • Mutation 9: originalOrdinalNumber = 2, originalYAxis = 2, targetOrdinalNumber = 1, targetYAxis = 2, mutationType = Deletion
  • Mutation 10: originalOrdinalNumber = 2, originalYAxis = 2, targetOrdinalNumber = 3, targetYAxis = 2, mutationType = Deletion
  • Mutation 11: originalOrdinalNumber = 2, originalYAxis = 3, targetOrdinalNumber = 1, targetYAxis = 3, mutationType = Addition
  • Mutation 12: originalOrdinalNumber = 2, originalYAxis = 3, targetOrdinalNumber = 3, targetYAxis = 3, mutationType = Equality
  • Mutation 13: originalOrdinalNumber = 3, originalYAxis = 1, targetOrdinalNumber = 1, targetYAxis = 1, mutationType = Deletion
  • Mutation 14: originalOrdinalNumber = 3, originalYAxis = 1, targetOrdinalNumber = 2, targetYAxis = 1, mutationType = Deletion
  • Mutation 15: originalOrdinalNumber = 3, originalYAxis = 2, targetOrdinalNumber = 1, targetYAxis = 2, mutationType = Equality
  • Mutation 16: originalOrdinalNumber = 3, originalYAxis = 2, targetOrdinalNumber = 2, targetYAxis = 2, mutationType = Addition
  • Mutation 17: originalOrdinalNumber = 3, originalYAxis = 3, targetOrdinalNumber = 1, targetYAxis = 3, mutationType = Addition
  • Mutation 18: originalOrdinalNumber = 3, originalYAxis = 3, targetOrdinalNumber = 2, targetYAxis = 3, mutationType = Equality

Please note that based on the Witnesses relations in the Evidence, some mutations may be filtered out.