Survivorship groups

Learn about changing the default survivorship strategy using survivorship groups.

The following request can be used to change the survivorship strategy for attributes inside a specified entity or interaction or relation type. Every attribute type has a survivorship strategy defined:
{
   "URI":"configuration/entityTypes/Reltio.System.Individual/attributes/FirstName",
   "survivorshipStrategy":"LUD"
}
For this functionality extension, other sections - survivorship groups - must be added to every type in the configuration file. Each survivorship group has a mapping of attribute URIs to survivorship strategies. One group for a type must be set as default in the API. So, if the survivorship strategy of a particular attribute type is defined in a survivorship group, which is the default value for a survivorship type and attribute, a value would be selected in accordance with the survivorship group. For example:
{
   "default":true,
   "mapping":[
      {
         "attribute":"configuration/entityTypes/Reltio.System.Individual/attributes/MiddleName",
         "survivorshipStrategy":"LUD"
      }
   ]
}

Add a new survivorship group

Use the following request to add a survivorship group in the configuration:
POST {TenantURL}/configuration/entityTypes/{entityTypeName}/survivorshipGroups

Examples

  • Create a new survivorship group and override the survivorship strategy of the MiddleName attribute to LUD. The group is set as a default group (value is true).
    POST {TenantURL}/configuration/entityTypes/{entityTypeName
    }/survivorshipGroups{
       "default":true,
       "mapping":[
          {
             "attribute":"configuration/entityTypes/Reltio.System.Individual/attributes/MiddleName",
             "survivorshipStrategy":"LUD"
          }
       ]
    } 
  • Create a new survivorship group and override the survivorship strategy of the FirstName attribute to SRC_SYS and sourceUriOrder for the group. The Fallback strategies section means that if there are multiple OV values for this attribute, the system will try to re-calculate the OV (among values already marked as OV) to get only one.
    POST{
       TenantURL
    }/configuration/entityTypes/{
       entityTypeName
    }/survivorshipGroups{
       "sourcesUriOrder":[
          "configuration/sources/TWITTER",
          "configuration/sources/FB"
       ],
       "mapping":[
          {
             "attribute":"configuration/entityTypes/Individual/attributes/FirstName",
             "survivorshipStrategy":"SRC_SYS",
             "sourcesUriOrder":[
                "configuration/sources/FB",
                "configuration/sources/TWITTER"
             ],
             "fallbackStrategies":[
                "LUD",
                "MinValue"
             ]
          }
       ],
       "default":"true"
    }

Update a survivorship group

Use the following request to update a survivorship group that is already present in a configuration:

PUT {TenantURL}/configuration/entityTypes/{entityTypeName}/survivorshipGroups/{groupShortUri}

Examples

  • Update the {groupShortUri} survivorship group URI and that overrides the survivorship strategy of the MiddleName attribute to LUD. The group isn’t set as a default group (value is false). The survivorship strategies are taken from attribute definitions in the Reference attribute configuration.
    PUT {TenantURL}/configuration/entityTypes/{entityTypeName
    }/survivorshipGroups/{groupShortUri}{
       "default":false,
       "mapping":[
          {
             "attribute":"configuration/entityTypes/Reltio.System.Individual/attributes/MiddleName",
             "survivorshipStrategy":"LUD"
          }
       ]
    }
  • Update the {groupShortUri} survivorship group URI and that overrides the survivorship strategy of the FirstName attribute to SRC_SYS and sets sourceUriOrder for the group.
    PUT {TenantURL}/configuration/entityTypes/{entityTypeName}/survivorshipGroups/{groupShortUri}
    {
        "sourcesUriOrder": [
            "configuration/sources/TWITTER",
            "configuration/sources/FB"
        ],
        "mapping": [
            {
                "attribute": "configuration/entityTypes/Individual/attributes/FirstName",
                "survivorshipStrategy": "SRC_SYS",
                "sourcesUriOrder": [
                    "configuration/sources/FB",
                    "configuration/sources/TWITTER"
                ]
            }
        ],
        "default": "true"
    }
    Note: When the survivorship group is changed, to get the correct search results for OV values the tenant must be reindexed to a separate index. To initiate a Reindex job and create a separate index using the enableSeparateIndexing flag, see Reindex Data Task.

Delete a survivorship group

Use the following request to delete a survivorship group that is not set as the default group in the configuration.
Note: You must have the DELETE privilege to delete a survivorship group.
DELETE {TenantURL}/configuration/entityTypes/{entityTypeName}/survivorshipGroups/{groupShortUri}

Examples

  • Delete {TenantURL}/configuration/entityTypes/HCP/survivorshipGroups/GroupB. The default value for this group is set to false, and it can be deleted. Upon sending the request, you see a message that says successful operation along with the 200 response code.
  • Delete {TenantURL}/configuration/entityTypes/HCP/survivorshipGroups/GroupA. The default value for the group is set to true, and it can’t be deleted. Upon sending the request, you see a message that says User roles can't be set to default survivorship group along with the 400 response code.
  • Delete {TenantURL}/configuration/entityTypes/HCP/survivorshipGroups/GroupC, which does not exist. Upon sending the request, you see a message that says No survivorship Group found for GroupC along with a 400 response code.

Filters in survivorship group mapping

With the Complex OV rule type, you can define the survivorship strategy for a nested attribute based conditionally on values of a subattribute. This is accomplished using the optional "filter" property for a survivorship group mapping. Thus, a survivorship strategy, which is defined in the survivorshipStrategy property of the mapping, will be applied only for attributes that match the filter criteria. In this way, several survivorship strategies can be used to treat different subattribute types. The resulting winners for the nested attribute are the aggregation of winners emerging from each strategy.

Survivorship group mapping example 1

Here, the developer states that for all identifiers where the identifier type is NPI, then the survivorship strategy must be MinValue. However, for all identifiers where the identifier type is ME, then the survivorship strategy must be OldestValue. Lastly, use the default "LUD" strategy for all other types.

{
   "default":true,
   "mapping":[
      {
         "attribute":"configuration/entityTypes/HCP/attributes/Identifiers/attributes/ID",
         "survivorshipStrategy":"MinValue",
         "filter":{
            "equals":[
               {
                  "URI":"configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
                  "value":"NPI"
               }
            ]
         }
      },
      {
         "attribute":"configuration/entityTypes/HCP/attributes/Identifiers/attributes/ID",
         "survivorshipStrategy":"OldestValue",
         "filter":{
            "equals":[
               {
                  "URI":"configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
                  "value":"ME"
               }
            ]
         }
      }
   ]
}

Survivorship group mapping example 2

For Identifiers of type ME there must be one OV with MinValue of "ID". For identifiers of type NPI, select the OldestValue. For all others use SRC_SYS.

{
   "default":true,
   "mapping":[
      {
         "attribute":"configuration/entityTypes/HCP/attributes/Identifiers",
         "survivorshipStrategy":"MinValue",
         "comparisonAttributeUri":"configuration/entityTypes/HCP/attributes/Identifiers/attributes/ID",
         "filter":{
            "equals":[
               {
                  "URI":"configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
                  "value":"ME"
               }
            ]
         }
      },
      {
         "attribute":"configuration/entityTypes/HCP/attributes/Identifiers",
         "survivorshipStrategy":"OldestValue",
         "filter":{
            "equals":[
               {
                  "URI":"configuration/entityTypes/HCP/attributes/Identifiers/attributes/Type",
                  "value":"NPI"
               }
            ]
         }
      },
      {
         "attribute":"configuration/entityTypes/HCP/attributes/Identifiers",
         "survivorshipStrategy":"SRC_SYS"
      }
   ]
}

Survivorship group mapping example 3

Use the OldestValue survivorship strategy for the FirstName attribute for all HCPs from the states of "NY" or "TX" and use Aggregation for all others.

{
   "default":true,
   "mapping"   ;:[
      {
         "attribute":"configuration/entityTypes/HCP/attributes/FirstName",
         "survivorshipStrategy":"OldestValue",
         "filter":{
            "equals":[
               {
                  "URI":"configuration/entityTypes/HCP/attributes/Address/attributes/State",
                  "value":"NY"
               }
            ]
         }
      },
      {
         "attribute":"configuration/entityTypes/HCP/attributes/FirstName",
         "survivorshipStrategy":"OldestValue",
         "filter":{
            "equals":[
               {
                  "URI":"configuration/entityTypes/HCP/attributes/Address/attributes/State",
                  "value":"TX"
               }
            ]
         }
      },
      {
         "attribute":"configuration/entityTypes/HCP/attributes/FirstName",
         "survivorshipStrategy":"Aggregation"
      }
   ]
}