{"id":21096961,"url":"https://github.com/kdelwat/onset","last_synced_at":"2026-03-05T22:31:23.691Z","repository":{"id":14479955,"uuid":"63759694","full_name":"kdelwat/Onset","owner":"kdelwat","description":"A language evolution simulator, using realistic phonetic changes.","archived":false,"fork":false,"pushed_at":"2023-03-01T04:39:27.000Z","size":885,"stargazers_count":34,"open_issues_count":8,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-04-14T12:32:24.307Z","etag":null,"topics":["flask","linguistics","phonetics","phonology","python","vue"],"latest_commit_sha":null,"homepage":"https://onset.cadel.me","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdelwat.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-07-20T07:19:55.000Z","updated_at":"2024-04-10T22:22:08.000Z","dependencies_parsed_at":"2022-08-28T08:01:31.230Z","dependency_job_id":"cc6594f4-7d66-491f-b156-4b8568e293b0","html_url":"https://github.com/kdelwat/Onset","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdelwat%2FOnset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdelwat%2FOnset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdelwat%2FOnset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdelwat%2FOnset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdelwat","download_url":"https://codeload.github.com/kdelwat/Onset/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225438665,"owners_count":17474464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","linguistics","phonetics","phonology","python","vue"],"created_at":"2024-11-19T22:44:51.609Z","updated_at":"2026-03-05T22:31:23.653Z","avatar_url":"https://github.com/kdelwat.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Onset\n\nOnset is a language evolution simulator, which evolves a list of words\nin [IPA form](https://en.wikipedia.org/wiki/International_Phonetic_Alphabet)\naccording to realistic phonological rules.\n\nThe frontend is built with [Vue](https://vuejs.org/) and the CSS\nframework [Bulma](http://bulma.io/). It communicates with the backend using\nsimple REST endpoints.\n\nThe backend is built with Python and [Flask](http://flask.pocoo.org/).\n\n## Directory Structure\n\n+ `src` is the source code for the Vue frontend\n+ `app` is the source code for the Python API, written in Flask.\n+ `engine` is the source code for the evolution engine which is called by Flask.\n+ `app/templates/` contains the Webpack-generated index file, served with Flask.\n+ `app/static/` contains static assets generated by Webpack.\n+ `config` contains Webpack configuration files, generated using [vue-cli](https://github.com/vuejs/vue-cli)\n\n## Build Setup\n\n``` bash\n# install Python dependencies\npip install -r requirements.txt\n\n# install Javascript dependencies\nnpm install\n\n# build frontend\nnpm run build\n\n# run using Flask's development server\npython run.py\n\n# or use PyPy for a speed boost\npypy3 run.py\n```\n\nTo install development requirements, which will allow testing, validation, and\nscript usage:\n\n```bash\npip install -r requirements-dev.txt\n```\n\nTo validate the YAML data:\n\n``` bash\npykwalify -d engine/data/rules.yaml -s engine/data/rules.schema.yaml\npykwalify -d engine/data/diacritics.yaml -s engine/data/diacritics.schema.yaml\n```\n\nTo run the tests:\n\n```bash\npy.test\n```\n\n## Sources\n\nA variety of sources were used for the information needed to build this app.\nPlease see the `LICENCE.md` file in the `engine/data` directory for specific\ndata sources.\n\nThe following papers were used when implementing the algorithms:\n\n+ Harold R. Bauer (1988) *The ethologic model of phonetic development: I. Phonetic contrast estimators*, Clinical Linguistics \u0026 Phonetics, 2:4, 347-380, DOI: 10.3109/02699208808985265\n+ Carol Stoel-Gammon (2010) *The Word Complexity Measure: Description and application to developmental phonology and disorders*, Clinical Linguistics \u0026 Phonetics, 24:4-5, 271-282, DOI: 10.3109/02699200903581059\n+ Carterette, E. and Jones, M. (1974) *Informal Speech: Alphabetic and Phonetic Texts with Statistical Analyses and Tables* (Berkeley: University of California Press).\n\nGeneral information on the linguistics underpinning the app is from:\n\n+ [Trask's Historical Linguistics](https://www.amazon.com/Trasks-Historical-Linguistics-Larry-Trask/dp/0340927658) by Larry Trask.\n+ [Introductory Phonology](https://www.amazon.com/Introductory-Phonology-Bruce-Hayes/dp/1405184116) by Bruce Hayes.\n+ Wikipedia\n\nA lot of technical inspiration was taken from the source code\nof [panphon](https://github.com/dmort27/panphon/). In particular, the deparsing\nalgorithm and YAML data files were inspired by panphon's approach. Please check\nit out!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdelwat%2Fonset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdelwat%2Fonset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdelwat%2Fonset/lists"}