Negative Rule
A negative rule allows you to prevent any other rule from merging records.
A match group can have a rule or a negative rule. It can't have both. The negative rule has the same architecture as a rule, but has the special behavior that if it evaluates to true
, it will demote any directive of merge coming from another match group to queue for review. The majority of the match groups implemented across customers' configurations use, mainly, a rule for their matching goals. But, in some situations, it is advantageous to additionally dedicate one, or more, match groups to support a negative rule, for the purpose of stopping a merge-based rule (usually, on a single condition). And, when that condition is met, the negative rule prevents any other rule from merging the records. For example, you might have seven match groups, each of which use a rule, while the eighth group uses a negative rule.
auto
and another set of type suspect
, and additionally using a combination of not
and notExactSame
within a rule. Negative rule will not impact suspect matches.Negative rule supports the following nested operands:
notExactSame
notFuzzySame
or
and
equals
notEquals
nullValues
When using the equals
and notEquals
operands inside negative match rules, ensure they have only one condition for each attribute (example below).
"equals": [ { "values": [ "DL" ], "uri": "configuration/entityTypes/Individual/attributes/Identifiers/attributes/ID" } ]
not
operand.It's possible to combine multiple attributes for notExactSame
and notFuzzySame
operands. They are combined using a and
operator, when you build the negative condition. The resulting operands are also combined using a and
operator. For example, we'd be looking to find cases where both LastName and FirstName are not true.
Use case - Negative Rule
- Profile 1 (P1) - Andrew, Finnegan, 565-771-8801
- Profile 2 (P2) - Andrew, Phinnegan, 565-771-8801
- Profile 3 (P3) - Andrew, Finnigan, 565-771-8801
- Profile 4 (P4) - Andrew, Finigan, 565-771-8802
Using straightforward elements, such as Fuzzy (FirstName, LastName) in a suspect
rule type with the Soundex
comparator used for the Fuzzy
element, these four form a pretty good set of matches for data stewardship review. But automation is always better if possible and so it would be great if the rule could be set to automatic
, to produce an automatic merge. The trouble is that P4 is questionable as its SSN is different from that of the other three profiles.
If you added into the rule an Exact
operator for SSN, you could comfortably use an automatic
rule type. But, in this case, you lose P4 from the automatic merge, and may never know that it even exists, and that it may represent the same person as the other three profiles.
The negative rule gives you an automatic rule type, while downgrading it to the behavior of a suspect
rule, if one or more attributes are problematic. The notExactSame
comparison operator is often used in a negative rule.
In the example configuration below, any combination of P1, P2, P3 from above will evaluate to true
and automatically merge. But, P4 when paired with any of the others or with the consolidated profile of [P1,P2,P3] will evaluate to true
for notExactSame
and thus cause the negative rule to also evaluate to true
. This then causes any other automatic
rule within matchGroups
to be treated as a suspect
rule. The outcome is that P4 will not be merged into [P1,P2,P3] but instead is paired with [P1,P2,P3] as a case of queued for review, and displayed in the Hub as a Potential Match.
"matchGroups": [
{
"uri": "configuration/entityTypes/Individual/matchGroups/ByName",
"label": "Automatic individual match by name",
"type": "automatic",
"rule": {
"or" : {
"exact": [
"configuration/entityTypes/Individual/attributes/FirstName"
],
"fuzzy": [
"configuration/entityTypes/Individual/attributes/LastName"
]
}
}
},
{
"uri": "configuration/entityTypes/Individual/matchGroups/BySSN",
"label": "Individuals not match by SSN",
"type": "automatic",
"negativeRule" : {
"notExactSame": [
"configuration/entityTypes/Individual/attributes/SSN"
]
}
}
]