The orientation concept in OpenSignals seems to be novel amongst previous attempts at signaling. The reason for orientation, which has two values of EMIT and RECEIPT, is straightforward, once we consider two perspectives to any interaction or communication. Let’s imagine a signaling model that consists of three signals – CALL, TALK, and END. Below are two transcripts of the signals recorded at either end of a phone conversation between Alice and Bob. Before proceeding, it is important to note that both parties, Alice and Bob, are modeled as sources of signals within each context at either end of the communication channel. Bob has a model that includes Alice as well as Bob himself. Alice does likewise within her context.
Observability is Orientation
Can you tell who initiated the call? We could probably infer who ended the call, maybe Bob, but the initiator not so. Maybe if we had some global clock, we could order across both contexts. Still, we run into all other problems related to clock synchronization or needing an omnipresent observer. An easy fix to the language would be introducing a new signal named CALLED; we could also do likewise with TALKED and ENDED. We have now doubled our small set of signals and somewhat broken the link between a signal emitted on one side and how it is received and interpreted. With the concept of orientation, we don’t need to embed more meaning into a signal than is required. A signal is not a message.
Putting it in Context
When Alice decides to call Bob, she will record the event – Bob EMIT CALL within her context. This might initially look strange because Bob is not present here, and now we see he is emitting a signal. But EMIT here pertains to the locality of the operation, CALL, and not the subject, Bob. Bob’s calling happens within the context that Alice maintains of her social network and the status she infers on the members, including herself. When Bob picks up Alice’s call, within his context, he will record – Alice RECEIPT CALL. Because the call originated outside of his context, it is a past signal that he has now received – RECEIPT is always dealing with the perception of something that has occurred in the past and elsewhere in terms of the context maintained.
Thinking in Signals
The trick to understanding and reasoning about signal orientation is to separate the act of picking up the phone once it has rung, which Bob does, from the actual signal being communicated by the action. Signals are not trying to be a comprehensive representation of physical movements or events but the underlying meanings behind such or what transpires. Bob is a recipient of something that was previously recorded elsewhere. Try considering signaling to operate somewhat like a double-entry booking-keeping system. An EMIT on one side will result in a corresponding RECEIPT on the other if the signal is delivered by whatever means. Note: If Bob did not pick up, there would be no corresponding reverse entry.