diff --git a/in-progress/documentation-driven-development.scm b/in-progress/documentation-driven-development.scm new file mode 100644 index 0000000..e69de29 diff --git a/in-progress/feature-change-applier.scm b/in-progress/feature-change-applier.scm new file mode 100644 index 0000000..4690d34 --- /dev/null +++ b/in-progress/feature-change-applier.scm @@ -0,0 +1,100 @@ +(article + (hgroup + (h1 "feature change applier") + (p (em "a first attempt at a conlanging tool"))) + (section + (hgroup + (h2 "what is this?") + (p + (em + "a tool for conlanging: a feature-based sound-change applier + capable of applying multiple sets of rules at once.")) + (hr)) + (p + "you can try it out here: " + (a ((href "https://sorrelbri.github.io/feature-change-applier/")) + "feature change applier app")) + (img ((src "/static/img/fca.png") + (alt "an image of Feature Change Applier application. visible + are labeled sections. 'proto language lexicon' is a text + field with nonsense weirds. 'phonetic features' is a list + of binary values shuch as '+ back' / '- back' and + characters representing associated sounds like 'a / u / ɯ' + / 'ə', 'epoch 1' is a text field with a list of phonetic + rules such as + '[+ occlusive - nasal]>[+ occlusive + nasal]/n_.' and + buttons to 'Remove epoch 1' or 'Add Epoch'. 'modeling + options' is a single selected radio button labeled + 'Default output' with buttons labeled 'Run Changes' and + 'Clear Output'. 'Results of Run' is a list headed 'epoch + 1' and containing newline separated words 'annɯ anat ant + annɯ tʰa nnɯ"))) + (h3 "an unfinished project") + (p + "some background on conlanging and my interst in conlanging software + can be found in this " + (a ((href "/unsettled/1")) + "introductory post about conlanging software")) + (p + "this project was initially intended to function as a sound change + applier: a software tool that takes as input a list of lexical items + in a language and a list of sound change rules and produces as + output a new list of lexical items resulting from the application of + each rule to each of the lexical items in the input. more info about + sound change appliers will be available: " + (a ((href "/unsettled/?")) + "[pending] review of existing conlanging tools")) + (p + "there are two ways in which i sought to extend the functionality of + the typical sound change applier: through feature-based rules, and + through the processing of multiple rule sets at one time. " + (a ((href "https://en.wikipedia.org/wiki/Distinctive_feature")) + "phonological features") + " are proposed binary attributes of phonology that can be used to + distinguish different phonemes. [+/- nasal] is the distinguishing + feature in the minimal pair of phones [n][d]. the processing of + multiple rule sets is accomplished in this project via the notion + of an 'epoch.' at least one epoch must be defined, which takes as + its input the initial lexicon. any additional epochs must have + their input lexicons configured by the user, but they will default + to running in sequence. what this allows is for 'snapshots' of + lexicons between suites of rules (analogous to 'intermediate' + phases in historical linguistics, such as old english>middle + english>early modern english>modern english.) this also allows for + comparisons of different rule sets or the simulation of sound + changes across a family of related languages (analogous to vulgar + latin>italo-western, vulgar-latin>eastern romance, vulgar + latin>southern romance)") + (p + "both of these additional features are present, although the app is + quite buggy and unreliable")) + (section + (hgroup + (h2 "how does it work?") + (p (em "i'll tell you what i remember")) + (hr)) + (p + "i made this a few years ago, right after i first learning how to + write web apps and so i used the tools that i knew a few years ago. + this means that it's javascript! specifically, a react app, where + all the fun processing stuff happens via the react hooks useReducer + pattern. " + (a + ((href + "https://github.com/sorrelbri/feature-change-applier/tree/sj_latl/src/reducers" + )) "all of the reducers are here")) + (p + "at the end of my meaningful work on the project, i started using a " + (a ((href "https://nearley.js.org/")) + "javascript earley parser called nearley") + " as i started conceptualizing the tool as just one component in a + larger suite of tools i hoped to create. the language part never got + very far--writing a language is hard! writing a language when you've + not had significant programming experience is hard! ill advised? " + (a + ((href + "https://github.com/sorrelbri/feature-change-applier/blob/sj_latl/src/utils/latl/grammar.ne")) + "there's the start of something like an ebnf grammar for the + project")) + (p + "this project isn't done! and it never will be!"))) \ No newline at end of file diff --git a/in-progress/latl-primitives.scm b/in-progress/latl-primitives.scm new file mode 100644 index 0000000..e69de29 diff --git a/in-progress/syntax-considered-harmful.scm b/in-progress/syntax-considered-harmful.scm new file mode 100644 index 0000000..e69de29 diff --git a/static/img/fca.png b/static/img/fca.png new file mode 100644 index 0000000..8c48cb8 Binary files /dev/null and b/static/img/fca.png differ