Skip to content

Parties

Introduction

Parties are a fundamental building block of NPL and are directly associated with protocols and their actions. In this section we will define what a party is.

Below is an example of a two-party protocol that involves both rights and obligations, in this case between the issuer and a payee. It illustrates how parties are intimately related to the protocol itself and its rights and obligations.

protocol[issuer, payee] Iou(var deadline: DateTime) {
    initial state unpaid;
    final state default;
    final state forgiven;
    final state paid;

    permission[payee] forgive() {
        become forgiven;
    };

    obligation[issuer] pay() before deadline {
        // Payment logic.
        become paid;
    } otherwise become default;
}

An instance of such an Iou could for example be between issuer John Lender and payee Big Bank Incorporated.

From the above it is not immediately apparent what a party is or what it represents. Specifically, there a few aspects that need to be clarified in detail:

  • What is a party?
  • Access rights: Who may interact with this protocol?
  • Responsibility: Who fulfills obligations and meets expectations?

What is a party?

An organization or entity that can interact or be interacted with. Typically, a party is a

  • Person
  • Company
  • Department
  • Group of users within a company
  • External process

Access rights: Who may interact with this protocol?

Access right control refers to a mechanism that allows (or conversely prevents) user-protocol interaction. These rights may be highly specific and may depend on the specific action, intention, or context at hand.

Access rights may be and often are delegated. Some forms of delegation are long-lived, such as one or several employees acting on behalf of their employer. Others are short-lived, like an employee taking over for another during a holiday or sick leave.

Access rights relate directly to users, and it is at the protocol party's discretion how its access rights are delegated to individual users. They are a party private concern and are not of relevance to a counter-party. Direct modeling of access rights therefore falls outside the purview of the language, and access rights may be changed unilaterally by a party without the involvement of the counter-party.

The Iou's payee Big Bank Incorporated may therefore delegate access to its payment processor without concerning the issuer John Lender, who in turn may delegate its access to both his accountant and his wife.

To learn more about the implementation of the concept described above, see authorization and authentication and the NPL Party type.

Responsibility: Who fulfills obligations and meets expectations?

Responsibility specifies against whom an obligation or expectation is defined. Ultimately if an obligation or expectation remains unfulfilled, conflict or problem resolution may need to be elevated beyond the scope of the Noumena platform, requiring the entity behind it to be known. In colloquial terms it defines who receives the phone call when a process falls apart, and provides a known identity.

Responsibility is a counter-party or between-party concern. Assignment of responsibility may not be amended unilaterally, and is only allowed to change through explicit modeling that defines conditions under which responsibility changes hands.

Conversely, this also implies that a party's counter-party in turn bears responsibility for its obligations. This makes responsibility a double-edged sword through which parties both face obligations but also reap benefits.

The Iou's payee Big Bank Incorporated may therefore demand payment from the issuer John Lender, but not of its delegates (which may change and of which there are two anyhow). In case problems with the payment arise, payee Big Bank Incorporated is contacted, which may forward such inquiries to its help desk.

Definition of an NPL party

Given the above concepts, it is possible to define what an NPL party is.

An NPL party is the backing known and stable entity that governs access right delegation to users, and who bears responsibility.

Being an NPL party therefore implies ownership and control of the corresponding access rights and responsibilities, while conversely being able to ask others to meet their responsibilities. This ownership is transferable in NPL and constitutes swapping one party for another, a feat (only) possible via explicit modeling.

Through an additional NPL permission it is therefore possible for payee Big Bank Incorporated to transfer its Iou to Monster Bank Incorporated, allowing Monster Bank Incorporated to lay claim on issuer John Lender's responsibilities and select its own delegates.

Follow the link, to see the concrete expression of the NPL Party type.