Jeff's phrasing dictionary for Plover

April 21, 2024 ยท View on GitHub

Background

In many systems, there are strokes possible where the phrases formed are typically unusable. For example, the verb endings or tense could mismatch, such as: I really doesn't wanted.

This phrasing dictionary automatically matches tenses and verb forms, which makes it easier to learn because there's less to remember. With the key-space freed up, extra flexibility has been added to enable more versatility with the phrases.

Some examples:

  • SWR-GT produces I go to
  • KWHR-GT produces he goes to
  • KWHRUGT produces does he go to
  • SWR-GTD produces I went to
  • KWHR-GTD produces he went to
  • SWHEUGTD produces when I went to
  • SWRAFGTD produces I could have gone to
  • KWHRO*UFGTD produces he just shouldn't go to
  • KWHRO*EGTD produces he shouldn't be going to
  • SWRAOEUFGTD produces I would never go to
  • SWREFGT produces I have been going to
  • STWHAOEUGT produces that will still go to
  • SWR-RPBT produces I understand the
  • STHRAOBT produces there will be a
  • SWRA*EURPBT produces I still can't understand the
  • SWR*UFPGTSDZ/TWRAOEPBLGTD produces I just didn't expect that we would be finding that
  • WHA/KPWRUPBG/TWROERPD produces what do you think we should be doing
  • KWR/KPWRURPTD produces why did you do it
  • SWR*PB/SWHR*EGTD produces I don't know where she went to

Many decisions on the word choices were taken from statistical data and Google Books N-gram Viewer.

This dictionary also supports full reverse lookup, so you can see how to stroke phrases in Plover's suggestions window.

Interactive Learning Tool

There's an excellent tool for practicing jeff-phrasing here.

System

There are two ways phrases can be constructed -- simple form and full form.

Simple form

A simple phrase is constructed with:

  1. A starter (what, that, if, when, where, who, why, for)
  2. A pronoun (I, he, she, you, we, they)
  3. Optional have
  4. A verb e.g. go, say, understand, etc.
  5. An optional suffix word. These are specific to each verb.
  6. A tense

Example: For the stroke SWHUFBGT

  1. SWH is the starter: when
  2. U is you
  3. F is have
  4. BG is the verb come
  5. T is the suffix word to
  6. Phrase is not using past tense as there is no -D

This forms the expected phrase: when you have come to

Full form

The phrase is constructed with:

  1. A starter (I, you, he, she, it, we, they, that, this, there)
  2. A choice of auxiliary verb do/can/shall/will
  3. An optional not
  4. Phrase structure, controlling word order and just/still/never/even/have/be/always
  5. A verb e.g. go, say, understand, etc.
  6. An optional suffix word. These are specific to each verb.
  7. A tense

The phrase will generally be constructed in a manner that feels grammatically correct.

Example 1: For the stroke SWRO*FGTD:

  1. SWR is the starter: I
  2. O is shall
  3. * is not
  4. F is have
  5. G is the verb go
  6. T is to
  7. D is for past tense

Once the verb forms and tenses are matched and short form applied, this results in: I shouldn't have gone to

Example 2: See how the verb 'be' changes:

  • SWR-B produces I am
  • SWR-BD produces I was
  • SWR-FB produces I have been
  • SWR-FBD produces I had been
  • SWROB produces I shall be
  • SWROBD produces I should be

Simple form

Simple Form Image

Starters

Simple form starters use the keys on the left hand side of the board, including the left side vowels:

  • STHA: that
  • STPA: if
  • SWH: when
  • SWHA: what
  • SWHR: where
  • SWHO: who
  • SWHAO: why
  • SPWH: but
  • STPR: for
  • SKP: and [*]

[*] Using SKP for and causes some conflicts with the default dictionary. This phrasing module does NOT try and replace the following:

  • SKPUR: "and you're" (would be "and you run")
  • SKPUL: "and you'll" (would be "and you look")
  • SKPEUT: "and it" (would be "and I have", but this can be stroked with SKPEUF)
  • SKP*: Fingerspelling "&".

If there are other conflicts, you can modify the file and add specific exceptions to the NON_PHRASE_STROKES section, or remove the SKP entry from SIMPLE_STARTERS altogether.

Pronouns

Pronouns use the following:

  • EU: I
  • *EU: we
  • E: he
  • *E: she
  • U: you
  • *U: they
  • *: it

Have

Simple form uses -F to add the word have and causes the verb to change to its past participle form.

  • SWHAURP: what you do
  • SWHAUFRP: what you have done
  • STPAEUGD: if I went
  • STPAOUFGD: if I had gone

Verb & suffix words

The verb and suffix words follow the same schema as the full form detailed below.

Full form parts

Full Form Image

Starters

Full form starters use the keys on the left hand side of the board:

  • SWR: I
  • KPWR: you
  • KWHR: he
  • SKWHR: she
  • KPWH: it
  • TWR : we
  • TWH: they
  • STKH: this
  • STWH: that
  • STHR: there (third person singular form -- *)
  • STPHR: there (third person plural form -- *)
  • STKPWHR: `` (empty -- third person singular form)
  • STWR: `` (empty -- third person plural form)

(*) Note that there can only use a limited set of verbs to avoid collisions with the main dictionary.

Examples:

  • SWR-RPGT/STWR-RPBT produces 'I need to understand the'
  • STHR-BG produces there comes
  • STPHR-BG produces there come
  • STHRAOEFD produces there would have been
  • STHRAOEURPGT produces there will still need to
  • KWHR-PL/STWR-FPBT produces 'he may have known that'
  • SKWRAEUPB/STKPWHREUFGT produces 'Jane never goes to'

Do, Can, Shall, Will

The keys AO* are used to determine which of the additional words are added. The form that is added depends on the tense of the verb. * is added to get the negative version.

A OWordNegative forms
_ _do / does / diddon't / doesn't / didn't
A _can / couldcan't / couldn't
_ Oshall / shouldshall not / shouldn't
A Owill / wouldwon't / wouldn't

To get did, should, could, would, use a past tense verb (or past tense placeholder -D).

There are special cases in the phrase structure section so that do can be omitted.

Phrase structure

EUF controls word ordering and how the words just, still, never, even, be and have and always combine into the sentence.

  • E is used for verb forms of to be.

  • F is used for verb forms of to have.

  • EF is used for verb forms of have been.

  • U is used to swap the order of starter and middle words:

    • SWROGTD: I should go to
    • SWROUGTD: should I go to
  • EU gives the word still and is used as a suffix in positive form, but as a prefix for negative form

    • ...AEU...: ... can still ...
    • ...A*EU...: ... still can't ...
  • UF gives the word just and is used as a suffix in positive form, but as a prefix for negative form

    • ...AUF...: ... can just ...
    • ...A*UF...: ... just can't ...
  • -EUF appends the word never for positive forms, and even for negative forms.

    • ...AEUF...: ... can never ...
    • ...A*EUF...: ... can't even ...

Full table:

* E U FModifierSWRAGD
? _ _ _{starter} {}I could go
? E _ _{starter} {} 'be' + -ing verb formI could be going
? _ _ F{starter} {} 'have' + past verb formI could have gone
? E _ F{starter} {} 'have been' + -ing verb formI could have been going
? _ U _{} {starter}could I go
_ _ U F{starter} {} 'just'I could just go
* _ U F{starter} 'just' {}I just couldn't go
_ E U _{starter} {} 'still'I could still go
* E U _{starter} 'still' {}I still couldn't go
_ E U F{starter} {} 'never'I could never go
* E U F{starter} {} 'even'I couldn't even go

Note: The {} in the table represents do/can/shall/will

For the empty prefixes STWR and STKPWHR, since there is no starter word:

  • U and *U will give the infinitive form of the verb if can/shall/will are not used.

    • STWRUGT: to go to
    • STWR*UGT: not to go to
    • STWRULTS: to feel like
  • U will append always when used with can/shall/will:

    • STWROURBD: should always ask
  • UF will append just

  • EU will append still

  • EUF will append never

  • *EUF will append even

Phrase structure with do

do (neither A nor E pressed) is handled slightly differently to enable writing phrases that don't use any of do/can/shall/will:

In some cases, the word do or don't is omitted as shown in the following table.

A O * E U FOmitResultKPWR-G:
_ _ _ _ _ _*{starter}you go
_ _ * _ _ _{starter} {}you don't go
_ _ _ _ U _{middle} {starter}do you go
_ _ * _ U _{middle} {starter}don't you go
_ _ _ _ _ F*{starter} 'have' + past verb formyou have gone
_ _ * _ _ F*{starter} 'haven't' + past verb formyou haven't gone
_ _ _ _ U F*{starter} 'just'you just go
_ _ * _ U F{starter} 'just' {}you just don't go
_ _ _ E _ _*{starter} be + -ing verb formyou are going
_ _ * E _ _*{starter} not be + -ing verb formyou aren't going
_ _ _ E U _*{starter} 'still'you still go
_ _ * E U _{starter} 'still' {}you still don't go
_ _ _ E _ F*{starter} 'have been' + -ing verb formyou have been going
_ _ * E _ F*{starter} 'haven't been' + -ing verb formyou haven't been going
_ _ _ E U F*{starter} 'never'you never go
_ _ * E U F{starter} {} 'even'you don't even go

Verbs and suffix words

All verbs have a present and past tense version. The past tense is formed by adding -D, unless the verb includes -S, in which case -Z is used instead.

Suffix words are indicated in parentheses, and are added by using -T. If the stroke includes -T, then -S is used instead. Note that not every verb has a suffix word.

For past tense with suffix words that cause a diagonal to be formed (-TZ or -SD), then -TSDZ is used instead.

StrokeMeaning (-T)Meaning when using there
``{empty}{empty}
D{empty, past tense}{empty, past tense}
BTo be (a)To be (a)
RPBGTo become (a)
BLTo believe (that)
RBLGTo call
BGSCan/Could [2]
RZTo care
PBGZTo change
BGTo come (to)To come
RBGZTo consider
RPTo do (it)
PGSTo expect (that)
LTTo feel (like)
PBLGTo find (that)
RGTo forget (to)
GSTo get (to)
GZTo give
GTo go (to)To go
PZTo happenTo happen
TTo have (to)
PGTo hear (that)
RPSTo hope (to)
PLGTo imagine (that)
PBLGSZjustjust
PBGSTo keep
PBTo know (that)
RPBSTo learn (to)
LGZTo leave
BLGTo like (to)
LZTo liveTo live
LTo look
LGTo love (to)
LSTo let
RPBLTo make (a)
PLMay/Might (be)May/Might (be)
PBLTo mean (to)
PBLSTo mind
PLZTo move
PBLGSMust (be) -- no past tenseMust (be) -- no past tense
RPGTo need (to)To need (to)
PSTo put (it)
RSTo read
RLSTo realize (that)
RLGreallyreally
RLTo recall
RPLTo remember (that)
RPLSTo remain
RTo run
BSTo say (that)
STo see
PLSTo seem (to)To seem (to)
BLSTo set
RBLShall/Should [2]
RBZTo show
RBTTo take
RLTTo tell
PBGTo think (that)
RTTo try (to)
RPBTo understand (the)
ZTo use [1]To use
PTo want (to)
RBGSWill/Would [2]
RBSTo wish (to)
RBGTo work (on)

[1] - used to is special cased as TZ and TDZ and requires shifting the right hand to press. It doesn't change form like other verbs.

  • SWR-TZ produces I used to
  • SWRETZ produces I am used to rather than a verb with -ing
  • SWRETDZ produces I was used to rather than a verb with -ing

[2] The auxiliary verbs can/shall/will do not change with subject and are present to better support simple form phrases.

Memorization hints:

  • live, give and move use LZ, GZ and MZ.
  • let, get and put use LS, GS and PS

Installation

  1. In plover, first install plover-python-dictionary
  2. Save jeff-phrasing.py from this repository
  3. Drag and drop the file into plover.

You may also be interested in:

Credits

This dictionary takes inspiration from both Jade and Aerick's phrasing systems.