Pairing

Pairing, a part of algorithm transparency, is a list of minutia pairs, one minutia from probe fingerprint and one from candidate fingerprint, constructed during matching several times, once for every root pair. First pair in the pairing is the root pair. Other pairs are found recursively by comparing edges from edge tables of both fingerprints. Minutiae thus form a tree, structured the same way in both fingerprints, that shows path from root pair to every minutia pair in the pairing. Besides minutia pairs and edges that link them to parent pair, pairing also includes list of supporting edges that would lead to the same pairing. Every pairing is scored and the best match is selected.

KeywordSuffixZip
pairing.json080-pairing.json
pairing.json082-pairing.json
... skipped 48 files ...
pairing.json180-pairing.json
pairing.json182-pairing.json

Visualization

Visualization of pairing tree was constructed from this stage's json data and shuffled minutiae (for probe and candidate) with original fingerprint images in the background (for probe and candidate). Since pairings appear several times in transparency data, the best one was chosen for visualization according to best match data. Visualization itself is not part of transparency data.

Pairing tree for probe fingerprint, including supporting edges Pairing tree for candidate fingerprint, including supporting edges
Probe fingerprint is left, candidate is right. Blue points are root minutiae. Other minutiae are red. Green lines represent pairing tree. Yellow lines are supporting edges.

Json

Json data describes the fully constructed pairing consisting of three parts:

Both tree and support are lists of edges with the following structure:

Example: 080-pairing.json

{
  "root": {
    "probe": 0,
    "candidate": 2
  },
  "tree": [
    {
      "probeFrom": 0,
      "probeTo": 1,
      "candidateFrom": 2,
      "candidateTo": 28
    },
    {
      "probeFrom": 1,
      "probeTo": 18,
      "candidateFrom": 28,
      "candidateTo": 30
    },
    {
      "probeFrom": 18,
      "probeTo": 31,
      "candidateFrom": 30,
      "candidateTo": 12
    },
    {
      "probeFrom": 31,
      "probeTo": 4,
      "candidateFrom": 12,
      "candidateTo": 20
    },
    {
      "probeFrom": 31,
      "probeTo": 26,
      "candidateFrom": 12,
      "candidateTo": 21
    },
    {
      "probeFrom": 4,
      "probeTo": 5,
      "candidateFrom": 20,
      "candidateTo": 23
    },
    {
      "probeFrom": 18,
      "probeTo": 13,
      "candidateFrom": 30,
      "candidateTo": 11
    },
    {
      "probeFrom": 26,
      "probeTo": 34,
      "candidateFrom": 21,
      "candidateTo": 4
    },
    {
      "probeFrom": 34,
      "probeTo": 11,
      "candidateFrom": 4,
      "candidateTo": 7
    },
    {
      "probeFrom": 34,
      "probeTo": 27,
      "candidateFrom": 4,
      "candidateTo": 31
    },
    {
      "probeFrom": 5,
      "probeTo": 14,
      "candidateFrom": 23,
      "candidateTo": 5
    },
    {
      "probeFrom": 14,
      "probeTo": 37,
      "candidateFrom": 5,
      "candidateTo": 13
    },
    {
      "probeFrom": 37,
      "probeTo": 20,
      "candidateFrom": 13,
      "candidateTo": 14
    },
    {
      "probeFrom": 20,
      "probeTo": 38,
      "candidateFrom": 14,
      "candidateTo": 32
    },
    {
      "probeFrom": 20,
      "probeTo": 46,
      "candidateFrom": 14,
      "candidateTo": 34
    },
    {
      "probeFrom": 46,
      "probeTo": 40,
      "candidateFrom": 34,
      "candidateTo": 38
    },
    {
      "probeFrom": 38,
      "probeTo": 21,
      "candidateFrom": 32,
      "candidateTo": 24
    },
    {
      "probeFrom": 21,
      "probeTo": 39,
      "candidateFrom": 24,
      "candidateTo": 25
    },
    {
      "probeFrom": 39,
      "probeTo": 23,
      "candidateFrom": 25,
      "candidateTo": 26
    },
    {
      "probeFrom": 20,
      "probeTo": 22,
      "candidateFrom": 14,
      "candidateTo": 33
    },
    {
      "probeFrom": 27,
      "probeTo": 33,
      "candidateFrom": 31,
      "candidateTo": 3
    },
    {
      "probeFrom": 13,
      "probeTo": 29,
      "candidateFrom": 11,
      "candidateTo": 29
    },
    {
      "probeFrom": 11,
      "probeTo": 30,
      "candidateFrom": 7,
      "candidateTo": 10
    },
    {
      "probeFrom": 30,
      "probeTo": 45,
      "candidateFrom": 10,
      "candidateTo": 27
    },
    {
      "probeFrom": 33,
      "probeTo": 44,
      "candidateFrom": 3,
      "candidateTo": 22
    },
    {
      "probeFrom": 44,
      "probeTo": 2,
      "candidateFrom": 22,
      "candidateTo": 19
    },
    {
      "probeFrom": 22,
      "probeTo": 8,
      "candidateFrom": 33,
      "candidateTo": 37
    },
    {
      "probeFrom": 8,
      "probeTo": 28,
      "candidateFrom": 37,
      "candidateTo": 36
    }
  ],
  "support": [
    {
      "probeFrom": 1,
      "probeTo": 0,
      "candidateFrom": 28,
      "candidateTo": 2
    },
    {
      "probeFrom": 18,
      "probeTo": 1,
      "candidateFrom": 30,
      "candidateTo": 28
    },
    {
      "probeFrom": 31,
      "probeTo": 18,
      "candidateFrom": 12,
      "candidateTo": 30
    },
    {
      "probeFrom": 4,
      "probeTo": 31,
      "candidateFrom": 20,
      "candidateTo": 12
    },
    {
      "probeFrom": 4,
      "probeTo": 18,
      "candidateFrom": 20,
      "candidateTo": 30
    },
    {
      "probeFrom": 26,
      "probeTo": 31,
      "candidateFrom": 21,
      "candidateTo": 12
    },
    {
      "probeFrom": 26,
      "probeTo": 18,
      "candidateFrom": 21,
      "candidateTo": 30
    },
    {
      "probeFrom": 26,
      "probeTo": 4,
      "candidateFrom": 21,
      "candidateTo": 20
    },
    {
      "probeFrom": 5,
      "probeTo": 4,
      "candidateFrom": 23,
      "candidateTo": 20
    },
    {
      "probeFrom": 5,
      "probeTo": 31,
      "candidateFrom": 23,
      "candidateTo": 12
    },
    {
      "probeFrom": 5,
      "probeTo": 26,
      "candidateFrom": 23,
      "candidateTo": 21
    },
    {
      "probeFrom": 13,
      "probeTo": 18,
      "candidateFrom": 11,
      "candidateTo": 30
    },
    {
      "probeFrom": 13,
      "probeTo": 31,
      "candidateFrom": 11,
      "candidateTo": 12
    },
    {
      "probeFrom": 13,
      "probeTo": 4,
      "candidateFrom": 11,
      "candidateTo": 20
    },
    {
      "probeFrom": 13,
      "probeTo": 26,
      "candidateFrom": 11,
      "candidateTo": 21
    },
    {
      "probeFrom": 13,
      "probeTo": 5,
      "candidateFrom": 11,
      "candidateTo": 23
    },
    {
      "probeFrom": 13,
      "probeTo": 1,
      "candidateFrom": 11,
      "candidateTo": 28
    },
    {
      "probeFrom": 34,
      "probeTo": 26,
      "candidateFrom": 4,
      "candidateTo": 21
    },
    {
      "probeFrom": 11,
      "probeTo": 34,
      "candidateFrom": 7,
      "candidateTo": 4
    },
    {
      "probeFrom": 27,
      "probeTo": 34,
      "candidateFrom": 31,
      "candidateTo": 4
    },
    {
      "probeFrom": 27,
      "probeTo": 31,
      "candidateFrom": 31,
      "candidateTo": 12
    },
    {
      "probeFrom": 31,
      "probeTo": 13,
      "candidateFrom": 12,
      "candidateTo": 11
    },
    {
      "probeFrom": 18,
      "probeTo": 4,
      "candidateFrom": 30,
      "candidateTo": 20
    },
    {
      "probeFrom": 18,
      "probeTo": 26,
      "candidateFrom": 30,
      "candidateTo": 21
    },
    {
      "probeFrom": 4,
      "probeTo": 13,
      "candidateFrom": 20,
      "candidateTo": 11
    },
    {
      "probeFrom": 14,
      "probeTo": 5,
      "candidateFrom": 5,
      "candidateTo": 23
    },
    {
      "probeFrom": 14,
      "probeTo": 34,
      "candidateFrom": 5,
      "candidateTo": 4
    },
    {
      "probeFrom": 14,
      "probeTo": 26,
      "candidateFrom": 5,
      "candidateTo": 21
    },
    {
      "probeFrom": 14,
      "probeTo": 4,
      "candidateFrom": 5,
      "candidateTo": 20
    },
    {
      "probeFrom": 37,
      "probeTo": 14,
      "candidateFrom": 13,
      "candidateTo": 5
    },
    {
      "probeFrom": 37,
      "probeTo": 34,
      "candidateFrom": 13,
      "candidateTo": 4
    },
    {
      "probeFrom": 37,
      "probeTo": 5,
      "candidateFrom": 13,
      "candidateTo": 23
    },
    {
      "probeFrom": 20,
      "probeTo": 37,
      "candidateFrom": 14,
      "candidateTo": 13
    },
    {
      "probeFrom": 20,
      "probeTo": 14,
      "candidateFrom": 14,
      "candidateTo": 5
    },
    {
      "probeFrom": 20,
      "probeTo": 5,
      "candidateFrom": 14,
      "candidateTo": 23
    },
    {
      "probeFrom": 38,
      "probeTo": 20,
      "candidateFrom": 32,
      "candidateTo": 14
    },
    {
      "probeFrom": 38,
      "probeTo": 37,
      "candidateFrom": 32,
      "candidateTo": 13
    },
    {
      "probeFrom": 38,
      "probeTo": 14,
      "candidateFrom": 32,
      "candidateTo": 5
    },
    {
      "probeFrom": 38,
      "probeTo": 5,
      "candidateFrom": 32,
      "candidateTo": 23
    },
    {
      "probeFrom": 46,
      "probeTo": 20,
      "candidateFrom": 34,
      "candidateTo": 14
    },
    {
      "probeFrom": 46,
      "probeTo": 37,
      "candidateFrom": 34,
      "candidateTo": 13
    },
    {
      "probeFrom": 40,
      "probeTo": 46,
      "candidateFrom": 38,
      "candidateTo": 34
    },
    {
      "probeFrom": 37,
      "probeTo": 38,
      "candidateFrom": 13,
      "candidateTo": 32
    },
    {
      "probeFrom": 21,
      "probeTo": 38,
      "candidateFrom": 24,
      "candidateTo": 32
    },
    {
      "probeFrom": 21,
      "probeTo": 20,
      "candidateFrom": 24,
      "candidateTo": 14
    },
    {
      "probeFrom": 21,
      "probeTo": 46,
      "candidateFrom": 24,
      "candidateTo": 34
    },
    {
      "probeFrom": 21,
      "probeTo": 5,
      "candidateFrom": 24,
      "candidateTo": 23
    },
    {
      "probeFrom": 21,
      "probeTo": 37,
      "candidateFrom": 24,
      "candidateTo": 13
    },
    {
      "probeFrom": 39,
      "probeTo": 21,
      "candidateFrom": 25,
      "candidateTo": 24
    },
    {
      "probeFrom": 39,
      "probeTo": 38,
      "candidateFrom": 25,
      "candidateTo": 32
    },
    {
      "probeFrom": 39,
      "probeTo": 46,
      "candidateFrom": 25,
      "candidateTo": 34
    },
    {
      "probeFrom": 39,
      "probeTo": 20,
      "candidateFrom": 25,
      "candidateTo": 14
    },
    {
      "probeFrom": 23,
      "probeTo": 39,
      "candidateFrom": 26,
      "candidateTo": 25
    },
    {
      "probeFrom": 23,
      "probeTo": 21,
      "candidateFrom": 26,
      "candidateTo": 24
    },
    {
      "probeFrom": 23,
      "probeTo": 46,
      "candidateFrom": 26,
      "candidateTo": 34
    },
    {
      "probeFrom": 21,
      "probeTo": 23,
      "candidateFrom": 24,
      "candidateTo": 26
    },
    {
      "probeFrom": 14,
      "probeTo": 38,
      "candidateFrom": 5,
      "candidateTo": 32
    },
    {
      "probeFrom": 14,
      "probeTo": 20,
      "candidateFrom": 5,
      "candidateTo": 14
    },
    {
      "probeFrom": 37,
      "probeTo": 46,
      "candidateFrom": 13,
      "candidateTo": 34
    },
    {
      "probeFrom": 22,
      "probeTo": 20,
      "candidateFrom": 33,
      "candidateTo": 14
    },
    {
      "probeFrom": 22,
      "probeTo": 14,
      "candidateFrom": 33,
      "candidateTo": 5
    },
    {
      "probeFrom": 22,
      "probeTo": 40,
      "candidateFrom": 33,
      "candidateTo": 38
    },
    {
      "probeFrom": 22,
      "probeTo": 46,
      "candidateFrom": 33,
      "candidateTo": 34
    },
    {
      "probeFrom": 22,
      "probeTo": 38,
      "candidateFrom": 33,
      "candidateTo": 32
    },
    {
      "probeFrom": 20,
      "probeTo": 21,
      "candidateFrom": 14,
      "candidateTo": 24
    },
    {
      "probeFrom": 46,
      "probeTo": 21,
      "candidateFrom": 34,
      "candidateTo": 24
    },
    {
      "probeFrom": 38,
      "probeTo": 39,
      "candidateFrom": 32,
      "candidateTo": 25
    },
    {
      "probeFrom": 14,
      "probeTo": 22,
      "candidateFrom": 5,
      "candidateTo": 33
    },
    {
      "probeFrom": 40,
      "probeTo": 22,
      "candidateFrom": 38,
      "candidateTo": 33
    },
    {
      "probeFrom": 46,
      "probeTo": 39,
      "candidateFrom": 34,
      "candidateTo": 25
    },
    {
      "probeFrom": 33,
      "probeTo": 27,
      "candidateFrom": 3,
      "candidateTo": 31
    },
    {
      "probeFrom": 33,
      "probeTo": 11,
      "candidateFrom": 3,
      "candidateTo": 7
    },
    {
      "probeFrom": 33,
      "probeTo": 34,
      "candidateFrom": 3,
      "candidateTo": 4
    },
    {
      "probeFrom": 26,
      "probeTo": 14,
      "candidateFrom": 21,
      "candidateTo": 5
    },
    {
      "probeFrom": 46,
      "probeTo": 22,
      "candidateFrom": 34,
      "candidateTo": 33
    },
    {
      "probeFrom": 5,
      "probeTo": 38,
      "candidateFrom": 23,
      "candidateTo": 32
    },
    {
      "probeFrom": 34,
      "probeTo": 14,
      "candidateFrom": 4,
      "candidateTo": 5
    },
    {
      "probeFrom": 4,
      "probeTo": 26,
      "candidateFrom": 20,
      "candidateTo": 21
    },
    {
      "probeFrom": 38,
      "probeTo": 22,
      "candidateFrom": 32,
      "candidateTo": 33
    },
    {
      "probeFrom": 20,
      "probeTo": 39,
      "candidateFrom": 14,
      "candidateTo": 25
    },
    {
      "probeFrom": 31,
      "probeTo": 5,
      "candidateFrom": 12,
      "candidateTo": 23
    },
    {
      "probeFrom": 5,
      "probeTo": 21,
      "candidateFrom": 23,
      "candidateTo": 24
    },
    {
      "probeFrom": 4,
      "probeTo": 14,
      "candidateFrom": 20,
      "candidateTo": 5
    },
    {
      "probeFrom": 37,
      "probeTo": 21,
      "candidateFrom": 13,
      "candidateTo": 24
    },
    {
      "probeFrom": 29,
      "probeTo": 13,
      "candidateFrom": 29,
      "candidateTo": 11
    },
    {
      "probeFrom": 29,
      "probeTo": 18,
      "candidateFrom": 29,
      "candidateTo": 30
    },
    {
      "probeFrom": 29,
      "probeTo": 4,
      "candidateFrom": 29,
      "candidateTo": 20
    },
    {
      "probeFrom": 29,
      "probeTo": 1,
      "candidateFrom": 29,
      "candidateTo": 28
    },
    {
      "probeFrom": 34,
      "probeTo": 22,
      "candidateFrom": 4,
      "candidateTo": 33
    },
    {
      "probeFrom": 31,
      "probeTo": 14,
      "candidateFrom": 12,
      "candidateTo": 5
    },
    {
      "probeFrom": 34,
      "probeTo": 37,
      "candidateFrom": 4,
      "candidateTo": 13
    },
    {
      "probeFrom": 11,
      "probeTo": 33,
      "candidateFrom": 7,
      "candidateTo": 3
    },
    {
      "probeFrom": 5,
      "probeTo": 20,
      "candidateFrom": 23,
      "candidateTo": 14
    },
    {
      "probeFrom": 5,
      "probeTo": 37,
      "candidateFrom": 23,
      "candidateTo": 13
    },
    {
      "probeFrom": 30,
      "probeTo": 11,
      "candidateFrom": 10,
      "candidateTo": 7
    },
    {
      "probeFrom": 30,
      "probeTo": 27,
      "candidateFrom": 10,
      "candidateTo": 31
    },
    {
      "probeFrom": 30,
      "probeTo": 33,
      "candidateFrom": 10,
      "candidateTo": 3
    },
    {
      "probeFrom": 30,
      "probeTo": 26,
      "candidateFrom": 10,
      "candidateTo": 21
    },
    {
      "probeFrom": 30,
      "probeTo": 34,
      "candidateFrom": 10,
      "candidateTo": 4
    },
    {
      "probeFrom": 45,
      "probeTo": 30,
      "candidateFrom": 27,
      "candidateTo": 10
    },
    {
      "probeFrom": 45,
      "probeTo": 26,
      "candidateFrom": 27,
      "candidateTo": 21
    },
    {
      "probeFrom": 27,
      "probeTo": 30,
      "candidateFrom": 31,
      "candidateTo": 10
    },
    {
      "probeFrom": 44,
      "probeTo": 33,
      "candidateFrom": 22,
      "candidateTo": 3
    },
    {
      "probeFrom": 44,
      "probeTo": 30,
      "candidateFrom": 22,
      "candidateTo": 10
    },
    {
      "probeFrom": 44,
      "probeTo": 27,
      "candidateFrom": 22,
      "candidateTo": 31
    },
    {
      "probeFrom": 44,
      "probeTo": 11,
      "candidateFrom": 22,
      "candidateTo": 7
    },
    {
      "probeFrom": 2,
      "probeTo": 44,
      "candidateFrom": 19,
      "candidateTo": 22
    },
    {
      "probeFrom": 2,
      "probeTo": 33,
      "candidateFrom": 19,
      "candidateTo": 3
    },
    {
      "probeFrom": 2,
      "probeTo": 30,
      "candidateFrom": 19,
      "candidateTo": 10
    },
    {
      "probeFrom": 2,
      "probeTo": 27,
      "candidateFrom": 19,
      "candidateTo": 31
    },
    {
      "probeFrom": 8,
      "probeTo": 22,
      "candidateFrom": 37,
      "candidateTo": 33
    },
    {
      "probeFrom": 8,
      "probeTo": 40,
      "candidateFrom": 37,
      "candidateTo": 38
    },
    {
      "probeFrom": 8,
      "probeTo": 37,
      "candidateFrom": 37,
      "candidateTo": 13
    },
    {
      "probeFrom": 8,
      "probeTo": 20,
      "candidateFrom": 37,
      "candidateTo": 14
    },
    {
      "probeFrom": 28,
      "probeTo": 8,
      "candidateFrom": 36,
      "candidateTo": 37
    },
    {
      "probeFrom": 28,
      "probeTo": 44,
      "candidateFrom": 36,
      "candidateTo": 22
    },
    {
      "probeFrom": 28,
      "probeTo": 45,
      "candidateFrom": 36,
      "candidateTo": 27
    },
    {
      "probeFrom": 28,
      "probeTo": 27,
      "candidateFrom": 36,
      "candidateTo": 31
    },
    {
      "probeFrom": 28,
      "probeTo": 22,
      "candidateFrom": 36,
      "candidateTo": 33
    },
    {
      "probeFrom": 28,
      "probeTo": 34,
      "candidateFrom": 36,
      "candidateTo": 4
    },
    {
      "probeFrom": 11,
      "probeTo": 14,
      "candidateFrom": 7,
      "candidateTo": 5
    },
    {
      "probeFrom": 5,
      "probeTo": 39,
      "candidateFrom": 23,
      "candidateTo": 25
    },
    {
      "probeFrom": 26,
      "probeTo": 5,
      "candidateFrom": 21,
      "candidateTo": 23
    },
    {
      "probeFrom": 31,
      "probeTo": 34,
      "candidateFrom": 12,
      "candidateTo": 4
    },
    {
      "probeFrom": 27,
      "probeTo": 14,
      "candidateFrom": 31,
      "candidateTo": 5
    },
    {
      "probeFrom": 4,
      "probeTo": 38,
      "candidateFrom": 20,
      "candidateTo": 32
    },
    {
      "probeFrom": 1,
      "probeTo": 13,
      "candidateFrom": 28,
      "candidateTo": 11
    },
    {
      "probeFrom": 18,
      "probeTo": 5,
      "candidateFrom": 30,
      "candidateTo": 23
    },
    {
      "probeFrom": 33,
      "probeTo": 30,
      "candidateFrom": 3,
      "candidateTo": 10
    },
    {
      "probeFrom": 33,
      "probeTo": 2,
      "candidateFrom": 3,
      "candidateTo": 19
    },
    {
      "probeFrom": 4,
      "probeTo": 37,
      "candidateFrom": 20,
      "candidateTo": 13
    },
    {
      "probeFrom": 0,
      "probeTo": 18,
      "candidateFrom": 2,
      "candidateTo": 30
    },
    {
      "probeFrom": 4,
      "probeTo": 34,
      "candidateFrom": 20,
      "candidateTo": 4
    },
    {
      "probeFrom": 44,
      "probeTo": 28,
      "candidateFrom": 22,
      "candidateTo": 36
    },
    {
      "probeFrom": 2,
      "probeTo": 28,
      "candidateFrom": 19,
      "candidateTo": 36
    }
  ]
}