Some data sources keep track of known relationships between entities, such as familial relationships and company hierarchies. These are referred to as disclosed relationships in Senzing.
There are a special set of attributes that are used to create disclosed relationships. These are ...
Attribute name |
Type |
Example |
Notes |
REL_ANCHOR_DOMAIN |
String |
CUSTOMER_ID |
This code describes the domain of the rel_anchor_key. The key must be unique within the domain. For instance, customer systems might use the customer_id to define relationships. If set, the REL_ANCHOR_DOMAIN and REL_POINTER_DOMAIN values must be the same. |
REL_ANCHOR_KEY |
String |
1001
|
The rel_anchor_key along with the associated domain comprises a unique value that other records can “point” to in order to create a disclosed relationship. |
REL_POINTER_DOMAIN |
String |
CUSTOMER_ID |
See REL_ANCHOR_DOMAIN above. If set, the REL_ANCHOR_DOMAIN and REL_POINTER_DOMAIN values must be the same. |
REL_POINTER_KEY |
String |
1001 |
See rel_anchor_key above. A rel_pointer_domain and key on one record point to a rel_anchor_domain and key on another record to in order to create a relationship between them. |
REL_POINTER_ROLE |
String |
SPOUSE |
This is the role the anchor record plays in relationship to the pointer record. |
Some source systems point one record to another such as is the case with company hierarchies like this ...
Here is how these relationships would be sent to Senzing ...
Notice how we give each record in the companies data source an anchor domain and key regardless of whether or not any other company points to them. This is just for convenience as all the data for each record must be presented at once including its potential for relationships.
Now lets add another record into the mix that has multiple relationships so that our graph now looks like this ...
Its best to use json format so that we can have as many relationships as needed ...
{
"DATA_SOURCE": "COMPANIES",
"RECORD_ID": "1004",
"NAME_ORG": "BNC Factory Outlet",
"BUSINESS_ADDR_FULL": "111 First St, Anytown, USA",
"REL_ANCHOR_DOMAIN": "COMPANY_ID",
"REL_ANCHOR_KEY": "1004",
"REL_POINTERS": [
{
"REL_POINTER_DOMAIN": "COMPANY_ID",
"REL_POINTER_KEY": "1003",
"REL_POINTER_ROLE": "PARENT"
},
{
"REL_POINTER_DOMAIN": "COMPANY_ID",
"REL_POINTER_KEY": "1001",
"REL_POINTER_ROLE": "ULTIMATE_PARENT"
}
]
}
Notice that ...
- The entire record is presented together: its name, address, etc as well as relationships.
- The rel_anchor_domain and key are added just in case any other record points to it.
- The multiple rel_pointers are placed in a json list
Finally, some data sources point records to each other as is the case with a father and son.
Here is how these relationships would be sent to Senzing ...
That's all there is to it!
The complete list of attributes represented above such as DATA_SOURCE, RECORD_ID, NAME_ORG as well as a full discussion of how to map source data to Senzing can be found here ... Generic Entity Specification
Comments
0 comments
Please sign in to leave a comment.