Example 3 - Individual Entity Type (Rule 1)

This rule uses the exact address and fuzzy name to match.

Please review the example match rule configuration below. It has the following characteristics:

  • The tactic of the rule is exact address and fuzzy name.
  • The user is highly confident about the stringency of the rule so she has set it to the automatic type, thus pairs that evaluate to true for this rule will send a directive to the match engine to merge the records. Since there is no negativeRule in the matchGroup, this will not be overridden by any other rule and thus the pair will be merged.
  • Utilizes the in-built Reltio Name Dictionary, but interestingly uses it for the Last Name as well. Perhaps the user doesn’t realize that the in-built dictionary is populated only with first names. Or possibly the user wants to take care of cases where the Last Name field accidentally contains the First Name, or perhaps she wants to allow for the infrequent cases like Billy Jack, or Robert Thomas where someone’s last name actually is a common first name.
  • Also interesting to see that the user used ignoreInToken to suppress tokenization on First and Last names, even though she is using the Name Dictionary on both. This implies that while she wants the comparison to be tolerant of synonyms, she’s doesn’t feel the need to identify match candidates that have these synonym names. Perhaps she has another strategy for identifying match candidates that she finds sufficient for her purposes.
  • The user has developed a list of replacement strings and placed them into a file called replace-AddressLine1.txt and submitted to Reltio so it can be used to cleanse the addressLine1 field.
"matchGroups": [
        {
          "uri": "configuration/entityTypes/Individual/matchGroups/Rule1",
          "label": "Rule1(auto): Fuzzy(FirstName, LastName) and Exact(AddressLine1, Zip5, State)",
          "type": "automatic",
          "rule": {
            "and": {
              "exact": [
                "configuration/entityTypes/Individual/attributes/Address/attributes/AddressLine1",
                "configuration/entityTypes/Individual/attributes/Address/attributes/Zip/attributes/Zip5",
                "configuration/entityTypes/Individual/attributes/Address/attributes/StateProvince"
              ],
              "equals": [
                {
                  "values": [
                    "Bill Location",
                    "BIL"
                  ],
                  "uri": "configuration/entityTypes/Individual/attributes/Address/attributes/AddressType"
                }
              ],
              "fuzzy": [
                "configuration/entityTypes/Individual/attributes/FirstName",
                "configuration/entityTypes/Individual/attributes/LastName"
              ],
              "ignoreInToken": [
                "configuration/entityTypes/Individual/attributes/FirstName",
                "configuration/entityTypes/Individual/attributes/LastName"
              ],
              "cleanse": [
                {
                  "cleanseAdapter": "com.reltio.cleanse.impl.NameDictionaryCleanser",
                  "mappings": [
                    {
                      "attribute": "configuration/entityTypes/Individual/attributes/FirstName",
                      "mandatory": false,
                      "allValues": false,
                      "cleanseAttribute": "configuration/entityTypes/Individual/attributes/FirstName"
                    },
                    {
                      "attribute": "configuration/entityTypes/Individual/attributes/LastName",
                      "mandatory": false,
                      "allValues": false,
                      "cleanseAttribute": "configuration/entityTypes/Individual/attributes/LastName"
                    }
                  ]
                },
                {
                  "cleanseAdapter": "com.reltio.cleanse.impl.RegexpReplaceCleanser",
                  "cleanseAdapterParams": {
                    "dictionary": "https://reltio-customers.s3.amazonaws.com/Acme/Match/replace-AddressLine1.txt",
                    "keepOriginalValue": "false"
                  },
                  "mappings": [
                    {
                      "attribute": "configuration/entityTypes/Individual/attributes/Address/attributes/AddressLine1",
                      "cleanseAttribute": "configuration/entityTypes/Individual/attributes/Address/attributes/AddressLine1"
                    }
                  ]
                }
              ],
              "matchTokenClasses": {
                "mapping": [
                  {
                    "attribute": "configuration/entityTypes/Individual/attributes/FirstName",
                    "class": "com.reltio.match.token.FuzzyTextMatchToken"
                  },
                  {
                    "attribute": "configuration/entityTypes/Individual/attributes/LastName",
                    "class": "com.reltio.match.token.FuzzyTextMatchToken"
                  }
                ]
              },
              "comparatorClasses": {
                "mapping": [
                  {
                    "attribute": "configuration/entityTypes/Individual/attributes/FirstName",
                    "class": "com.reltio.match.comparator.DamerauLevenshteinDistance"
                  },
                  {
                    "attribute": "configuration/entityTypes/Individual/attributes/LastName",
                    "class": "com.reltio.match.comparator.DamerauLevenshteinDistance"
                  }
                ]
              }
            }
          },
          "scoreStandalone": 0,
          "scoreIncremental": 0
        },