Compare commits
1 commit
4011469048
...
7ce504a73d
Author | SHA1 | Date | |
---|---|---|---|
7ce504a73d |
5 changed files with 100 additions and 0 deletions
0
in-progress/documentation-driven-development.scm
Normal file
0
in-progress/documentation-driven-development.scm
Normal file
100
in-progress/feature-change-applier.scm
Normal file
100
in-progress/feature-change-applier.scm
Normal file
|
@ -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!")))
|
0
in-progress/latl-primitives.scm
Normal file
0
in-progress/latl-primitives.scm
Normal file
0
in-progress/syntax-considered-harmful.scm
Normal file
0
in-progress/syntax-considered-harmful.scm
Normal file
BIN
static/img/fca.png
Normal file
BIN
static/img/fca.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 235 KiB |
Loading…
Reference in a new issue