Skip to content

Party

Description

The party is the central node in this model. A party can be a person or an organization, but each person and organization in the authoritative data system will be a single party with a unique identifier (a uuid). The term party ID should hereafter become ubiquitious in UTA system discussions and designs.

It is critical that we avoid creating multiple identifiers for the same person or organization. While automation can help trap some of these errors before they make it into the database, the only reliable way to do this for a database as relatively manageable as UTA's is through human stewards trained to understand the roles and relationships between parties at UTA. For more information, refer to the Data Management section of the documentation.

Note that a party of type organization may or may not be a formal company, such as a corporation or LLC in the USA. It could also be a band, a writing team, a duo, or any other group of people who are contracted together.

Label

:Party

Properties

PropertyDescriptionType
idThe party's unique identifieruuid
nameThe default name for the party, rolled up from a Name nodestring
friendlyNameA slugged version of the party name, unique, used for URLsstring
typeorganization or personstring
noteInformation about the partystring
activeactive or inactiveboolean
inactivatedDateDate at which EventSeries was marked as inactivedateTime
verifiedDMO Flag for Backcompat withen importingboolean
createdBythe person or process that created the partystring
createdDatedateTime
modifiedBythe person or process who last modified the partystring
modifiedDatedateTime

INFO

The only reason to hoist the name up from a :Name node into :Party is for convenience and performance; many applications require attaching the party ID and current name to some sort of query. We will look for simpler options.

WARNING

Sensitive information such as birth dates, gender, sexual orientation, or ethnicity should not be casually placed into the root party properties. We will first address policy issues with UTA before doing any implementation, but the likely model will be a :PersonalInfo node with an item to which access is carefully controlled.

Key

id

Relationships

Almost all of our catalogued relationships are connected to parties.

Examples

cypher
MATCH   (party:Party { active: true })
RETURN  party{.*}
cypher
MATCH   (party:Party { id: $id})
RETURN  party{.*}
cypher
CREATE    FULLTEXT INDEX partyNames
FOR       (p:Party)
ON EACH   [p.name]
cypher
CALL    db.index.fulltext.queryNodes("partyNames", $name ) 
YIELD   node, score
RETURN  node.id as id, 
        node.name as name, 
        score as score
cypher

// Normally a new party should not be created without a 
// relationship to a corresponding name node, and an 
// active relationship to a role node. This is just an example.

CREATE  (party:Party { 
          id: randomUUID(),
          name: "Client 3",
          type: "Person",
          active: true,
          verified: false,
          friendlyName: "client-3",
          createdBy: "Glenn Scott",
          createdDate: date(),
          modifiedBy: "Glenn Scott",
          modifiedDate: date()
        })
RETURN  party{.*}

Confidential. For internal use only.