Giter Club home page Giter Club logo

typey-type-data's Introduction

Typey Type Data

This project contains data for Typey Type, a free typing app designed for steno students to practise and master stenography.

Sponsor

You can support Di’s efforts on Patreon. A monthly donation helps Di build more lessons and features to help you fast-track your steno progress.

Contributing lessons or dictionaries

To contribute lessons or dictionaries, see the Typey Type CLI repo instead.

This repo contains the results of automated scripts from the CLI that transform Typey Type’s steno-dictionaries and other data to produce the files in this repo.

You can create issues for lesson ideas or inaccurate data. See the CONTRIBUTING guidelines.

Steno dictionaries git submodule

Historically this repo has contained the steno-dictionaries submodule but that has been moved to Typey Type CLI. If you've been using the paths to these dictionaries in Plover, for example, you may need to update them to look in the CLI's submodule or somewhere standalone. For example, if Plover was looking for:

~/projects/typey-type/typey-type-data/didoesdigital/dictionaries

… replace that with:

~/projects/typey-type-cli/didoesdigital/steno-dictionaries/dictionaries

… or a completely separate place like:

~/steno/didoesdigital/steno-dictionaries/dictionaries

Code of Conduct

This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

Licenses

This project is licensed under GPL-2.0, as shown in LICENSE. The following files came from Plover and are also licensed under GPL-2.0:

Related repos

typey-type-data's People

Contributors

didoesdigital avatar twitchard avatar wezm avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

typey-type-data's Issues

Inaccurate data for two-key briefs

Details

I believe I found some inaccurate data while working through the two-key briefs. I'm still new to stenography, so I could be wrong. Following the current contributing process for submitting inaccurate data to look into.

List of folders & chords to investigate

  • lessons/collections/two-key-briefs/two-key-briefs--F
    • TP-PL - Should be removed.
  • lessons/collections/two-key-briefs/two-key-briefs--P
    • WR - Should be removed.
  • lessons/collections/two-key-briefs/two-key-briefs--R
    • TR - Remove or replace with T-R.
    • KR - Remove or replace with K-R.
    • WR - Should be removed.
  • lessons/collections/two-key-briefs/two-key-briefs--T
    • OR - Should be removed.
  • lessons/collections/two-key-briefs/two-key-briefs-A
    • HRO*ER/PA - Should be removed or replaced with PA ("Pa").
  • lessons/collections/two-key-briefs/two-key-briefs-O
    • #-Z - Should be removed.
  • lessons/collections/two-key-briefs/two-key-briefs-P
    • HRO*ER/PA - Should be removed or replaced with PA ("Pa").
  • lessons/collections/two-key-briefs/two-key-briefs-R
    • -RL - Should be removed.
    • -RT - Should be removed.

Add linters for word lists

Overview

In order to keep lessons (fundamentals, drills, collections; not stories) up to date with the latest dictionaries, we can add linter checks that flag changes that need to be made, which can then be made manually.

Background

This is a useful part of the larger work to make the static lesson generator project (which is not open source) redundant. Instead of generating lesson files with words and strokes from word lists and dictionaries, we could keep word lists in this project as the source of truth for lessons, and then use a linter to check what words match lesson criteria.

Linter checks

Filter: "Strokes that…" where a word now qualifies or no longer qualifies

If dictionaries change and a word no longer qualifies for a lesson (e.g. a word that is no longer a single-stroke word should be removed from the single-stroke briefs lesson), the linter should highlight what word no longer qualifies, what criteria it doesn't match, and for what lesson.

Likewise if a word now qualifies but isn't in a lesson.

Filter: "Words that…" where a word now qualifies or no longer qualifies

If "z-index" moves from the HTML dictionary to the CSS dictionary and should no longer appear in the "HTML" lesson and should now appear in a "CSS" lesson, the linter should highlight the word that no longer qualifies or now qualifies, what criteria it doesn't or does match, and for what lesson.

Filter: "Entries that…" where a word and stroke combo now qualify or no longer qualifies

If "rest" is changed from REFT to R*ES, it should no longer qualify for the "One-syllable words with F as V or S" lesson, even though it is still one syllable and has an "s" sound (the word qualifies) but the stroke has no F (the stroke does not qualify).

Likewise for changed strokes that now qualify. Likewise for words that newly qualify. Likewise for words that no longer qualify.

Sorting

If "longest words" lesson has words of different lengths in any order, the linter should flag which lesson is out of order, what sorting method it is using, and what words fail the sorting method for that lesson.

De-duplication

Don't show "the" 3 times because it's in 3 dictionaries.

Linter requirements

Input:

  • Dictionaries: a source dictionary or dictionaries in a given order (either the typey-type.json generated dictionary or the source dictionaries that it is generated from in a specific order; or perhaps specific domain dictionaries like html.json)
  • Lesson: a lesson name/id and all its criteria
  • Word list: the lesson word list to check
  • Affixes: preferred prefixes and suffixes (should these be moved into a shared file that is used directly by Typey Type? As a dictionary?)

Processing will need:

  • Filters: individual "filter" criterion, such as "one syllable" or "stroke contains an asterisk"
  • Lesson filter list: a way to specify all criteria for a lesson, e.g. "one syllable" AND "F as V or S" and no duplicates and what sorting method
  • De-duplication: a way to de-duplicate words that appear repeatedly across dictionaries
  • Sorting: sorting methods, such as default/unsorted or by word length

Output:

  • a list of lessons that failed
  • what filter, de-dup, or other check failed the lesson
  • what word failed the filter
  • what sorting failed the lesson

Tests:

  • e.g. given "mysql", the "one syllable" filter should return false

Approach

Create a node.js linter with tests to run on lessons. Perhaps use the lessonIndex.json as source for lessons to check.

Art of Chording lessons

Hi!
I've started with steno a couple of weeks ago and am using Art of Chording for theory lessons. However, I prefer TypeyType over other sites when it comes to practicing. StenoGrind by Noah contains a word list and some sentences built from the lessons in the textbook. I invested some effort to convert them into custom lessons for TypeType. Would you be interested in include them directly?

While starting out I felt that while TypeyType is a great tool, it lacks dedicated learning material that coincides with the lessons included. There is a very short explanation for each one and they kinda work but definitely do not replace a full textbook. This is the reason why I'd love to see more lessons included that match with books that are already out there.

Add open-source Node CLI to make lessons and Typey Type dictionaries

A new Node CLI to generate lessons can be made open source and replace the closed-source MVP Ruby project that is well overdue for an overhaul. By using JavaScript, the Typey Type app front-end code and the CLI can reuse shared methods. Lessons will be able to rely on word lists and metadata instead of statically generated lesson files with stroke hints hard coded, which will make Typey Type much more flexible to make and modify lessons in the app with personal dictionaries.

TODO:

  • scaffold Makefile and CLI commands
  • generate standard Fundamental lessons
  • generate non-standard Fundamental lessons like:
    • fingerspelling,
    • punctuation,
    • numbers, and
    • roman numerals
  • generate standard Drill lessons
  • generate non-standard Drill lessons like prefixes, suffixes, steno party tricks, and phrasing briefs
  • generate collections
  • generate stories
  • build lean Typey Type dictionary with brief solitude/mandatory briefs
  • build global lookup dict
  • refine stroke hint look up
  • build lesson index
  • build dictionary index

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.