Polynot: Polyphasic sleep notation
Polynot is a notation for polyphasic sleep patterns, to be expressed in social media bios and statuses.
General premise
Polynot is meant to be extremely short, and be easy to remember. The most important parts should be intuitive.
There are three basic versions of the notation:
-
Bio + Status + Real-time info => Meant for people who regularly update their status, otherwise like 2.
-
Bio + Status => Status contains short-term info and overview, bio contains sleep schedule.
-
Bio only => Bio contains sleep schedule, and possibly short-term info when needed.
Bio
The bio should contain the following information:
-
Schedule kind
-
Naps
-
Cores
-
[Bio-only] Possibly Temporary naps.
The format for this should be like in this Everyman 2 (aka. two naps, each nap replacing about 1h30 of mono sleep) example:
E2: N1 (0630-0700), N2 (1700-1730), C1 (2230-0430)
Sleeps should be sorted by starting time (except T-naps, which are always at the end, but internally still sorted), and numbered
within their type. The type is one of N, C, and T. N means nap, which is any regular sleep less than 1h30 in length. C means
core, and is any regular sleep more than 1h30 in length.
T is a bit special, and it means temporary. T sleeps can be of any length, but are not part of the regular schedule, for example when
adding an emergency nap or using a re-entering schedule (for going back to the schedule after an over- or under-sleep).
When using the bio-only fomat, writing `E2::[state]` instead of `E2:` signifies that T-naps are included, and the info is kept up-to-date
with them.
When no T-naps are used but the bio is updated when they are, [state] should simply be left out, resulting in `E2::`.
The state and T-naps are described further in the status and T-nap format sections.
Status
The format for the status is as follows:
E2::reenter(C1eN1 failed) [awake - next: N2.] [T-naps: T1 (~1900:20m)] - [<other text>]
Text in square brackets (`[]`) is optional. Text in angle brackets (`<>`) is a placeholder. The `reenter(C1eN1 failed)` part is the
state. It is completely empty when the schedule is being followed normally, resulting in simply `E2::` in the beginning.
The state format is as follows:
-
reenter([failure code] failed): Re-entering the normal schedule after failing/skipping a sleep in some way or another.
The failure code consists of the sleep identifier (e.g. C1) in uppercase and then the kind of failure, for each sleep that was
affected:
-
e for end (oversleep of some way)
-
w for (early-)wake or u for undersleep (undersleep of some way)
-
b for beginning (beginning wrong in any way, e.g. took too long to fall asleep or beginning moved, resulting in undersleep)
-
m for moved (nap moved completely)
-
s for skipped (nap skipped completely)
-
n for not slept (unable to fall asleep, ALWAYS combine with s)
These can be combined. When nothing is specified, `s` is assumed.
Example: C1beN1bns = Core alarm missed due to falling asleep too late, N1 too close to core end so not able to sleep.
-
paused[(<reason if needed>)]: Schedule currently paused, but continuing soon. When the reason is the a failure code as
described above, the schedule has broken beyond simple repair or the user is frustrated with a cascade of failures.
-
recovery([failure code] failed, [days]d left): A recovery is being done, meaning a fallback schedule (usually monophasic) is being
done. The failure code shows what went wrong to cause the damage, the days field counts down to the start of the re- adaptation
-
adapting: The schedule has not been adapted to yet. This is simply a general status, and not necessarily linked to any failure (but
might be).
-
readapting([failure code] failed): Same as adapting, but more verbose at indicating there was a failure before.
-
e: Some circumstance requires a temporary modification to the schedule.
-
([state], [state], ...): A combination of multiple states. E.g. for adding `e` to `adapting`.
The real-time info is the `awake - next: N2.` part. It should be updated before and after each sleep, and indicate whether the user is awake
or not, and what their next nap is. When asleep, the indicator should say the wake-up time and the current sleep ID: `asleep: C1 until 0430 -
next: N2.`. `asleep` may be replaced with `sleeping`.
When no T-naps are used, the section can be left out, resulting in the minimal status being `E2:: -`.
Format for T-naps
T-naps, when indicated, have a slightly different format to normal sleeps, because they need to contain more info. This is best described
using the following examples:
Adding a sleep at a known time:
=> T1 (1430-1500)
Removing the core sleep:
=> T-C1
Changing the length of the core sleep:
=> TC1(2230-0230)
Adding a sleep at an approximate time:
=> T2 (~1900:20m)
Adding a sleep at an approximate time that may be skipped (? can be combined with all T-naps):
=> T3? (~2030:30m)
The approximate time contains the start and duration instead of the start and end. A duration may be added in other formats as well,
even those with known times, for ease-of-reading, using the same `:[minutes]m` format.