Noumena Protocol Language (NPL)
The Noumena Protocol Language (NPL) is a protocol modeling language, and is therefore aimed at modeling contracts, regulations, and business processes.
The Language reference section provides a comprehensive language reference.
NPL's target audience
The audience of NPL consists of engineers, domain experts, and machines. Protocols are assumed to be:
implemented by engineers. The engineer's role is to implement a protocol according to its business specification, and ensure it is technically sound while adhering to good engineering practices.
audited by domain experts. Domain experts should be able to understand a protocol to verify that a protocol meets its business specification and to propose meaningful changes.
run by machines. A protocol implementation must therefore be unambiguous.
NPL aims to not unnecessarily deviate from commonly encountered programming constructs and paradigms. It also aims to provide the means and tools to facilitate the verification of its workings, both technically and logically.
How NPL models protocols
NPL is a deontic protocol modeling language that models multi-party protocols as state machines.
Protocols are enforceable agreements between one or multiple parties. In order for protocols to come into effect, all involved parties must explicitly agree to their contents.
Protocols are modeled as state machines. States and state transitions may be defined explicitly, and may be used to control which parts of a protocol are active.
Protocols are deontic. Central tenets of protocols are permissions, obligations, and prohibitions. Permissions and obligations are represented in ought-to-do form and furthermore specify the consequences of their invocation. Simple prohibitions are posited as restrictions on available permissions or obligations, either by leaving them out of the protocol, having them be dependent on the protocol state, or as explicit checks. Contrary-to-duty ("should have done") type prohibitions are represented as obligations, with pre-agreed consequences whenever duties are not fulfilled. Contrary-to-prohibition ("should not have done") type prohibitions are represented as counterparty permissions.
How NPL protocols are used
Protocol creation and interaction occurs in an environment called the NPL runtime. The default interface into the NPL runtime is the engine. The engine may be run on your local machine, but ultimately NPL is intended to accommodate multiple parties, each with their own engine.
Refer to the Noumena platform for more information on how to use the engine and its companion applications.