Survivorship Groups-Changing Default Survivorship Strategy

You can use Survivorship groups to change the default survivorship strategy.

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, additional sections, survivorship groups, could 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 could be set as default from the API. That would mean that if the Survivorship strategy of particular attribute type is defined in a Survivorship group which is default for a type and attribute, a value would be selected in accordance with the Survivorship group. For example, a type could have a Survivorship group as follows:
{
   "default":true,
   "mapping":[
      {
         "attribute":"configuration/entityTypes/Reltio.System.Individual/attributes/MiddleName",
         "survivorshipStrategy":"LUD"
      }
   ]
}

Add New Survivorship Group

The request below creates a Survivorship group in configuration type.

POST{
   TenantURL
}/configuration/entityTypes/{
   entityTypeName
}/survivorshipGroups{
   "default":true,
   "mapping":[
      {
         "attribute":"configuration/entityTypes/Reltio.System.Individual/attributes/MiddleName",
         "survivorshipStrategy":"LUD"
      }
   ]
} 

In the example above, a new survivorship group would be created that overrides the survivorship strategy of the "MiddleName" attribute to LUD and the group would be considered as default.

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"
}

In the example above, a new survivorship group would be created that overrides the survivorship strategy of the "FirstName" attribute to SRC_SYS and sourceUriOrder for the group. The Fallback strategies section means that in case of multiple OV values for this attribute, the system will try to re-calculate the OV (among values already marked as OV) in order to get only one.

Update Survivorship Group

The following request updates a survivorship group that is already present in a configuration type.

PUT{
   TenantURL
}/configuration/entityTypes/{
   entityTypeName
}/survivorshipGroups/{
   groupShortUri
}{
   "default":false,
   "mapping":[
      {
         "attribute":"configuration/entityTypes/Reltio.System.Individual/attributes/MiddleName",
         "survivorshipStrategy":"LUD"
      }
   ]
}

In the example above, survivorship group URI {groupShortUri} would be updated and that overrides the survivorship strategy of the "MiddleName" attribute to LUD and here the group would not be considered as default. The survivorship strategies would be taken from attribute definitions in the Reference Attribute Configuration.

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   ;
}

In the example above, the survivorship group URI{groupShortUri} would be updated and that overrides the survivorship strategy of the "FirstName" attribute to SRC_SYS and sets sourceUriOrder for the group.

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.

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 sub-attribute. 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 which match the filter criteria. In this way, several survivorship strategies can be leveraged to treat different sub-attribute 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 should be "MinValue". However, for all identifiers where the identifier type is "ME", then the survivorship strategy should 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 should 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"
      }
   ]
}