A CoordinationLanguage is a language defined specifically to allow two or more parties (components) to communicate for the purpose of coordinating operations to accomplish some shared goal. Cf. KindsOfCoordination.    (4M)

Is a CoordinationLanguage necessarily an ApplicationProtocol? Is an ApplicationProtocol necessarily a CoordinationLanguage? Answer; no to the former, yes to the latter. TCP is a coordination language, with "methods" (SYN, FIN, RST, etc..), it just coordinates a lower layer task; a point-to-point full duplex bytestream connection.    (4N)

How would one use REST in the style of a CoordinationLanguage? REST, as embodied in HTTP, is a CoordinationLanguage, right?    (4O)

JB: While there may be coordination languages that do not depend on manipulating external resources in a shared space, many (including the prototypical one, Linda) do. It is in this sense that REST is a coordination language; the space of resources available through URI is a shared, external space and objects of interest in the problem domain are explicitly represented in this space and interacted with via the coordination primitives of HTTP: GET, PUT, POST, etc.    (4P)

MB: Note that REST is an architectural style. It's REST's uniform interface which comprises the (extensible) coordination language.    (4Q)

CoordinationLanguage examples;    (4R)

See also StateMachineAsHypertext.    (4V)