GithubHelp home page GithubHelp logo

jeff-phrasing's Introduction

Jeff's phrasing dictionary for Plover

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 O Word Negative forms
_ _ do / does / did don't / doesn't / didn't
A _ can / could can't / couldn't
_ O shall / should shall not / shouldn't
A O will / would won'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 F Modifier SWRAGD
? _ _ _ {starter} {} I could go
? E _ _ {starter} {} 'be' + -ing verb form I could be going
? _ _ F {starter} {} 'have' + past verb form I could have gone
? E _ F {starter} {} 'have been' + -ing verb form I 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 F Omit Result KPWR-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 form you have gone
_ _ * _ _ F * {starter} 'haven't' + past verb form you haven't gone
_ _ _ _ U F * {starter} 'just' you just go
_ _ * _ U F {starter} 'just' {} you just don't go
_ _ _ E _ _ * {starter} be + -ing verb form you are going
_ _ * E _ _ * {starter} not be + -ing verb form you 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 form you have been going
_ _ * E _ F * {starter} 'haven't been' + -ing verb form you 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.

Stroke Meaning (-T) Meaning when using there
`` {empty} {empty}
D {empty, past tense} {empty, past tense}
B To be (a) To be (a)
RPBG To become (a)
BL To believe (that)
RBLG To call
BGS Can/Could [2]
RZ To care
PBGZ To change
BG To come (to) To come
RBGZ To consider
RP To do (it)
PGS To expect (that)
LT To feel (like)
PBLG To find (that)
RG To forget (to)
GS To get (to)
GZ To give
G To go (to) To go
PZ To happen To happen
T To have (to)
PG To hear (that)
RPS To hope (to)
PLG To imagine (that)
PBLGSZ just just
PBGS To keep
PB To know (that)
RPBS To learn (to)
LGZ To leave
BLG To like (to)
LZ To live To live
L To look
LG To love (to)
LS To let
RPBL To make (a)
PL May/Might (be) May/Might (be)
PBL To mean (to)
PBLS To mind
PLZ To move
PBLGS Must (be) -- no past tense Must (be) -- no past tense
RPG To need (to) To need (to)
PS To put (it)
RS To read
RLS To realize (that)
RLG really really
RL To recall
RPL To remember (that)
RPLS To remain
R To run
BS To say (that)
S To see
PLS To seem (to) To seem (to)
BLS To set
RBL Shall/Should [2]
RBZ To show
RBT To take
RLT To tell
PBG To think (that)
RT To try (to)
RPB To understand (the)
Z To use [1] To use
P To want (to)
RBGS Will/Would [2]
RBS To wish (to)
RBG To 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.

jeff-phrasing's People

Contributors

jthlim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

jeff-phrasing's Issues

Use of number key

Hi, I have been using this system for a few weeks now, and I am very pleased with it!
I am just wondering (as a former Aerick phrasing user) if you are planning on doing anything with the number key in the future?

SWHRELZ translates to "where he lives" but fails reverse lookup

Oddly enough, "where she lives" doesn't have the same problem. I ran through the debugger and it looks like reverse_lookup() successfully matches "he" to "where he lives", but can't find any more matches past that point. With the input SWHR*ELZ, it matches "she" to "w!re she lives" immediately afterward and functions properly.

I'm not entirely sure what's going on well enough to propose a fix, but something weird is definitely going on.

edit: SWHEBL has the same issue, so it's probably not specific to the SWHR starter.

Adding a inversion for "be" verbs

As it is possible to write "do I want to" as a phrase, and often find myself wanting to write inversions with "be" as the auxilliary.

For instance, "are you" or "is it" in phrases.

Is it possible to replace a lesser used phrase with it?

[Suggestion] Fancy images like the Emily's Symbols Dictionary

Hi, the existing steno keyboards look ugly, because some squared letters are emojis:

πŸ†‚πŸ†ƒπŸ…ΏπŸ…·βŸπŸ„ΎβŸπŸ„΅πŸ„ΏπŸ„»πŸ…ƒπŸ„³
πŸ†‚πŸ…ΊπŸ††πŸ†βŸπŸ„ΎβŸπŸ…πŸ„±πŸ„ΆπŸ…‚πŸ…‰
γ€€γ€€γ€€πŸ…°πŸ…ΎβŸπŸ„΄πŸ…„

Here's a better looking image from Emily's Symbol Dictionary:
ss

I would be grateful if you would make similar images in all of your steno dictionaries

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.