Grouped Select Match

Description

Given list of [OBJ,OBJ] pairs, these are assumed to be the result of a mapping operation, with the first and second columns identifying the Source and Target of such mappings, respectively. This block selects the best (most likely) match for each OBJ in a column and for each group, if there are multiple candidates for a match. With the Group on parameter, the column to group on can be selected. All other pairs in the input will be discarded.

If Group on = Target, then the best match is found for every group that is identified by: (Target, the group Source belongs to).

If Group on = Source, then the best match is found for every group that is identified by: (Source, the group Target belongs to).

Input

  • MAPPING [OBJ,OBJ]: the candidate matches
  • GROUPS [OBJ,OBJ]: map of each object (first column) to a group identifier (second column)

Output

  • RESULT [OBJ,OBJ]: the best match for every item in the Grouped on column.

Parameters

  • Group on: whether to group on the first column (Source) or the second column (Target).
  • Method: how to select the best match
    • Highest score: for each group, select the match with highest score