A Plover python dictionary allowing for consistent symbol input with specification of attachment and capitalisation in one stroke.

Overview

Emily's Symbol Dictionary

Design

This dictionary was created with the following goals in mind:

  • Have a consistent method to type (pretty much) every symbol
  • Specify spacing and capitalisation of that symbol in 1 stroke
  • Hackable and understandable to anyone who finds it useful :)

Sections

To support the design goals, for each symbol there are 6 different options specifiable in sections of each stroke:

  1. Unique Starter (Red)
  2. Spacing/Attachment (Orange)
  3. Capitalisation (Teal)
  4. Variant (Green)
  5. Symbol (Purple)
  6. Repetition (Blue)

These options are mapped to different sections of the steno board:

Coloured Layout Diagram

Unique Starter

The first part of the stroke is always the same and identifies all the symbols. In the Magnum Steno dictionary that I use, SKHW is a unique key combination for the left hand that is never used. (note that SKWHR is used, but by not using R-, this makes it unique)

Unique Starter Diagram

Due to this, all the combinations of remaining strokes will have no clashes and are free to be used to specify everything needed. To adjust this starter to your dictionary just change the "uniqueStarter" variable at the top of the dictionary!

Attachment

There is a consistent way to specify attachment to the text around a symbol using the A and O keys. By default with no attachment specified spaces are inserted on both side of a symbol, like the & in the following example: one & two.

Keys Output
No Attachment Diagram x . x, one & two

When the A key is used, no space is inserted before the symbol is typed, moving it to the left of normal, like the : in this example: example: one.

Keys Output
Left Attachment Diagram x. x, example: one

Similarly, when the O key is used, no space is inserted after the symbol, moving it to the right of normal, like the " in this example: said "To.

Keys Output
Right Attachment Diagram x .x, said "To

When both combined, no spaces are used at all like the . in this example: 3.6.

Keys Output
Both Attachment Diagram x.x, 3.6

Capitalisation

The * can be used to specify capitalisation of the text following the symbol.

By default no capitalisation is applied.

Key Output
Lowercase Diagram x . x, (cons

With the * key used, the next input is capitalised.

Key Output
Uppercase Diagram x . X, said "To

Variant

There are a lot of similar symbols, to manage this, each symbol has a base symbol and a list of variant symbols. The specific variant required is chosen with a combination of the E and U keys, this allows for 4 total variants of a symbol.

By default the base symbol is typed, this is generally the most common of all the variants.

Key Output
Variant 0 Diagram (, $

When the E key is used, the left (or first) variant is typed instead.

Key Output
Variant 1 Diagram [, ¥

When the 'U' key is used, the right (or second) variant is typed.

Key Output
Variant 2 Diagram <,

When both E and U are used, the final variant is typed.

Key Output
Variant 3 Diagram {, £

These variants are stored in the main symbols dictionary and you should edit them based on which ones are more frequent for you! Though I hope my defaults are good enough.

Symbol

The main section is the symbol section, used to specify the specific symbol to type. Only a 2x3 grid is needed to address all the symbols, using variants. All of the patterns for symbols are done according to shape, rather than phonetics or briefs, and so should be remember visually with the images as an aid. For each symbol shape the pattern only addresses the base symbol, it doesn't apply as well to the variant symbols. As such, the variants should be anchored in memory to the base symbol itself rather than the pattern.

Pattern Symbols Description
Whitespace
Whitespace Diagram {#Tab}, {#Backspace}, {#Delete}, {#Escape} The pattern aligns with the tips of the arrows on a tab key legend: ↹
Arrows
Arrow Diagram {#Up}, {#Left}, {#Right}, {#Down} Looks like an arrow key cluster
Navigation
Navigation Diagram {#Page_Up}, {#Home}, {#End}, {#Page_Down} Arrow key cluster but with an addition key held down
Music
Music Diagram {#AudioPlay}, {#AudioPrev}, {#AudioNext}, {#AudioMute} Like a strangely rotated L for err... _L_ovely music?
Blank
Blank Diagram , {*!}, {*?}, {#Space} It's blank! Self descriptive
!
Exclamation Diagram !, ¡, ¡, ¬ Vertical shape that's off to the left, like ! on a regular keyboard
"
Double Quote Diagram ", “, ”, „ Two dots up high like its shape, and off to the left like on ISO keyboards
#
Hash Diagram #, ©, ®, ™ Two vertical bars like in the shape
$
Dollar Diagram $, ¥, €, £ Makes an S shape like a $
%
Percent Diagram %, ‰, ‰, ‰ Same as a / but with the two extra keys representing the dots
&
Ampersand Diagram & Makes a mirror image of the standard 'and' brief (mirrored for ease)
'
quote Diagram ', ‘, ’, ‚ One dot up high, similar to ", on the index for importance
(
Open Diagram (, [, <, { Similar to the standard steno brief
)
Close Diagram ), ], >, } Similar to the standard steno brief
*
Star Diagram *, ×, ×, × single dot shape, off to the right like JIS, up high in the sky
+
Plus Diagram +, §, ¶, ± single dot shape, off to the right like JIS, under the star
,
Comma Diagram , Single dot shape, below like on a keyboard, middle finger as less important
-
Dash Diagram -, –, —, — Line in shape, up in the top right like a normal keyboard
.
Dot Diagram ., •, •, … Single dot in shape, below like on a keyboard, index finger as important
/
Slash Diagram /, ÷, ÷, ÷ Shape of a /
:
Colon Diagram : Vertical shape, off to the right like a normal keyboard
;
Semicolon Diagram ; Literally a , and . at the same time
=
Equals Diagram = Literally a - and a _ at the same time
?
Question Diagram ?, ¿, ¿, ¿ Looks like the top of a ?
@
At Diagram @ Large complicated shape, only way to make a big spiral
\
Backslash Diagram \ Shape of a \
^
Caret Diagram ^, «, », ° Shape of a ^ and other pointy/raised symbols
_
Underscore Diagram _, µ, µ, µ A line down low opposing -, and other lowered symbols
`
Backtick Diagram \ ` Single dot up high, next to '
|
Pipe Diagram |, ¦, ¦, ¦ Nice symetrical vertical shape goes in the middle
~
Tilde Diagram ~, ˜, ˜, ˜ Makes the shape of a ~

Repetition

You may want to duplicate certain symbols, such as logical OR || or org-mode headings ### Title. Repetition is done with the -T and -S keys.

By default any symbol is typed out once.

Key Output
One Diagram :

When using the -S key, the symbol is typed twice in a row. Think of 's' pluralising words.

Key Output
Two Diagram ::

When using the -T key, the symbol is typed out three times in a row. Think _T_riple.

Key Output
Three Diagram :::

When using both -S and -T the symbol is typed out a combined 4 times.

Key Output
Four Diagram ::::
Comments
  • My plover complained about the json file: backslashes are not escaped

    My plover complained about the json file: backslashes are not escaped

    Hi!

    I tried to install the json file into plover (just got the most recent plover installation for windows), and I got parse errors for the various entries with backslashes.

    Apparently, the json parser doesn't understand \{, so I had to double the backslashes into \\{ (and the same for 2, 3, 4 backslashes).

    I thought I'd edit the python script and rerun it, but the python script needs to be imported somewhere, running it doesn't do anything.

    opened by cniekel 4
  • License?

    License?

    Am I free to modify and publish the code/resources of emily-symbols?

    I've been (slowly) creating a dictionary for use with Emacs which extensively provides definitions for modified keys. Having done this for the alphabet, my next hurdle was to address symbols. That's now been solved by you. I cannot thank you enough! I would like to know if I can incorporate your ideas and code into my own dictionary.

    PS: How did you generate the layout diagrams?

    Best wishes, Matt

    opened by excalamus 4
  • Capitalization doesn't seem present in the dictionary

    Capitalization doesn't seem present in the dictionary

    Capitalization doesn't seem present in the dictionary. The docs have the following:

    image

    But I can't seem to see any reference to it in the dictionary. I might be miss understanding how this script works, I'm fairly new to Plover.

    opened by Georift 2
  •  Escaping \ in .json

    Escaping \ in .json

    Great dictionary! I just experienced some problems with the .json version on Debian Buster and Ubuntu 20.04. The \ needed to be changed to \. The Python dictionary works fine, but is not compatible with the CLI version of Plover. Best, Robert

    opened by robert-winkler 2
  • Changing unique starters where indicated makes the dictionary stop working

    Changing unique starters where indicated makes the dictionary stop working

    This is at least the behaviour people will see.

    Currently (623b1d5e2bcaa62ebf7e8ee97e895f4cc14b2e48) the indicated place to change the unique starters looks like this:

    # define your starters here
    uniqueStarters = ["SKWH", "#SKWH"]
    

    Further down, the starter used in an outline is checked against what's set above:

        if starter not in uniqueStarters:
            raise KeyError
    

    The starter used in the outline is then used to select the appropriate symbol group:

        selection = symbols[starter][pattern]
    

    However, the starters used in the symbols dictionary are fixed, and not updated, and uniqueStarters isn't used elsewhere:

    symbols = {
        "SKWH": {
    ...
        "#SKWH": {
    

    I propose two ways to fix this, either or neither can be used: #9 or #10

    opened by mawillcockson 0
  • Add anki cards for studying Emily's Symbol Dictionary

    Add anki cards for studying Emily's Symbol Dictionary

    Hi!

    I just created an Anki deck to help me study this dictionary. Thought this repo might be a helpful home for the deck.


    Examples of some of the cards in the deck:

    2022-01-16_22-56-56_screenshot

    2022-01-16_22-57-13_screenshot

    2022-01-16_22-57-37_screenshot

    2022-01-16_22-58-53_screenshot


    Let me know if you have any questions about the deck. Hoping this might be helpful to any other Anki-users out there (I think we have at least a few in the steno community).

    opened by jladdjr 1
Owner
Emily
Emily
C.J. Hutto 2.8k Feb 18, 2021
Source code for AAAI20 "Generating Persona Consistent Dialogues by Exploiting Natural Language Inference".

Generating Persona Consistent Dialogues by Exploiting Natural Language Inference Source code for RCDG model in AAAI20 Generating Persona Consistent Di

null 16 Oct 8, 2022
Geometry-Consistent Neural Shape Representation with Implicit Displacement Fields

Geometry-Consistent Neural Shape Representation with Implicit Displacement Fields [project page][paper][cite] Geometry-Consistent Neural Shape Represe

Yifan Wang 100 Dec 19, 2022
Random-Word-Generator - Generates meaningful words from dictionary with given no. of letters and words.

Random Word Generator Generates meaningful words from dictionary with given no. of letters and words. This might be useful for generating short links

Mohammed Rabil 1 Jan 1, 2022
Yomichad - a Japanese pop-up dictionary that can display readings and English definitions of Japanese words

Yomichad is a Japanese pop-up dictionary that can display readings and English definitions of Japanese words, kanji, and optionally named entities. It is similar to yomichan, 10ten, and rikaikun in spirit, but targets qutebrowser.

Jonas Belouadi 7 Nov 7, 2022
A BERT-based reverse-dictionary of Korean proverbs

Wisdomify A BERT-based reverse-dictionary of Korean proverbs. 김유빈 : 모델링 / 데이터 수집 / 프로젝트 설계 / back-end 김종윤 : 데이터 수집 / 프로젝트 설계 / front-end Quick Start C

Eu-Bin KIM 94 Dec 8, 2022
A BERT-based reverse dictionary of Korean proverbs

Wisdomify A BERT-based reverse-dictionary of Korean proverbs. 김유빈 : 모델링 / 데이터 수집 / 프로젝트 설계 / back-end 김종윤 : 데이터 수집 / 프로젝트 설계 / front-end / back-end 임용

null 94 Dec 8, 2022
The Sudachi synonym dictionary in Solar format.

solr-sudachi-synonyms The Sudachi synonym dictionary in Solar format. Summary Run a script that checks for updates to the Sudachi dictionary every hou

Karibash 3 Aug 19, 2022
Python functions for summarizing and improving voice dictation input.

Helpmespeak Help me speak uses Python functions for summarizing and improving voice dictation input. Get started with OpenAI gpt-3 OpenAI is a amazing

Margarita Humanitarian Foundation 6 Dec 17, 2022
Input english text, then translate it between languages n times using the Deep Translator Python Library.

mass-translator About Input english text, then translate it between languages n times using the Deep Translator Python Library. How to Use Install dep

null 2 Mar 4, 2022
An ultra fast tiny model for lane detection, using onnx_parser, TensorRTAPI, torch2trt to accelerate. our model support for int8, dynamic input and profiling. (Nvidia-Alibaba-TensoRT-hackathon2021)

Ultra_Fast_Lane_Detection_TensorRT An ultra fast tiny model for lane detection, using onnx_parser, TensorRTAPI to accelerate. our model support for in

steven.yan 121 Dec 27, 2022
This project converts your human voice input to its text transcript and to an automated voice too.

Human Voice to Automated Voice & Text Introduction: In this project, whenever you'll speak, it will turn your voice into a robot voice and furthermore

Hassan Shahzad 3 Oct 15, 2021
The aim of this task is to predict someone's English proficiency based on a text input.

English_proficiency_prediction_NLP The aim of this task is to predict someone's English proficiency based on a text input. Using the The NICT JLE Corp

null 1 Dec 13, 2021
Khandakar Muhtasim Ferdous Ruhan 1 Dec 30, 2021
One Stop Anomaly Shop: Anomaly detection using two-phase approach: (a) pre-labeling using statistics, Natural Language Processing and static rules; (b) anomaly scoring using supervised and unsupervised machine learning.

One Stop Anomaly Shop (OSAS) Quick start guide Step 1: Get/build the docker image Option 1: Use precompiled image (might not reflect latest changes):

Adobe, Inc. 148 Dec 26, 2022
A Python 3.6+ package to run .many files, where many programs written in many languages may exist in one file.

RunMany Intro | Installation | VSCode Extension | Usage | Syntax | Settings | About A tool to run many programs written in many languages from one fil

null 6 May 22, 2022