2023-12-11 14:49:29 +00:00
|
|
|
|
(article
|
|
|
|
|
(h1 "beginning work on LATL")
|
|
|
|
|
(p
|
|
|
|
|
"a little introduction to a project i started thinking about in early 2020,
|
|
|
|
|
as i was learning how to do web development and wanted to try my hand at
|
2023-12-24 21:55:02 +00:00
|
|
|
|
combining some hobbies")
|
|
|
|
|
(p (a ((href "#the-point")) "skip the story and get to the point"))
|
|
|
|
|
(section ((id "the-story"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(hgroup
|
|
|
|
|
(h2 "what even is this?")
|
2023-12-24 21:55:02 +00:00
|
|
|
|
(p (em "a story of linguistics and hubris"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(hr))
|
|
|
|
|
(p
|
2023-12-24 21:55:02 +00:00
|
|
|
|
"so, when i was a wee little child, i discovered language. like, most
|
|
|
|
|
wee little children discover language, but some wee little children
|
|
|
|
|
get given the lord of the rings when they're ten or something and get
|
|
|
|
|
into the narrative and the characters, sure. but those appendices....
|
|
|
|
|
there's .. a language here? called quenya? and it's written in this
|
|
|
|
|
script? called tengwar? and there's a related language, sindarin? and
|
|
|
|
|
this tolkien guy just made all this up? ")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"so, i did the precocious kid thing and said to myself \"if this dead
|
|
|
|
|
british weirdo (who's like really into the concept of royalty) can
|
2023-12-24 21:55:02 +00:00
|
|
|
|
make a whole new language, then surely i can too\"")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
2023-12-24 21:55:02 +00:00
|
|
|
|
"i did not, in fact, make a language. i made a relex of the language
|
|
|
|
|
i already spoke (my own peculiar idiolect of u.s. english,) but we all
|
|
|
|
|
gotta start somewhere" )
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"for a long time the internet to me was mostly "
|
|
|
|
|
(a ((href "https://listserv.brown.edu/archives/conlang.html"))
|
|
|
|
|
"the brown university conlang listserv.")
|
|
|
|
|
" here i learned about different phonology, what the heck
|
|
|
|
|
morphosyntactic alignment is, diachronicity and how different
|
|
|
|
|
languages can be related. i got exposed to awkwords and sca2 (tools
|
|
|
|
|
for generating words and modeling changes to those words.) but i
|
|
|
|
|
never interacted with ppl much. i was a kid and the ppl in there
|
|
|
|
|
really knew their stuff, and i never much felt comfy with the idea
|
|
|
|
|
of being just "
|
2023-12-24 21:55:02 +00:00
|
|
|
|
(em "in public") " on the internet like that")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"anyway i got better at making languages and learning about how
|
2023-12-24 21:55:02 +00:00
|
|
|
|
language works, and it's just been a (sometimes more consistent, at
|
|
|
|
|
times less) hobby of mine for most of my life")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"flash forward to a few years ago, i'm working on a language that has
|
|
|
|
|
turned into the passion project that i've spend the majority of my
|
2023-12-24 21:55:02 +00:00
|
|
|
|
conlanging on and i'm getting frustrated with my tools. other
|
|
|
|
|
conlangers have made some really cool tools that i've used forever,
|
|
|
|
|
but i wanted to change my workflow. i wanted to do more complex,
|
|
|
|
|
phonological-feature-aware, sound change rules; i wanted diachroinc
|
|
|
|
|
tooling for morhposyntactic bits of my languages; i wanted a tighter
|
|
|
|
|
feedback loop between defining some changes, or lexical items, or
|
|
|
|
|
whathave you, and seeing the results; i wanted to see how a
|
|
|
|
|
derivational pattern at one stage in a parent form of a language
|
|
|
|
|
branches out or collapses into different derivational patterns in a
|
|
|
|
|
child language")
|
|
|
|
|
(p
|
|
|
|
|
"all was not well in my conlanging")
|
|
|
|
|
(p
|
|
|
|
|
"i would need to " (strong "do some programming"))
|
|
|
|
|
(p
|
|
|
|
|
"the thing is, i had just learned javascript. i had built a few
|
|
|
|
|
little toy web apps, and i was not ready to execute on a vision
|
|
|
|
|
for a multi-purpose conlanging tool that was beginning to take shape in my head")
|
|
|
|
|
(p "i tried anyway")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p "and i made "
|
2024-01-29 01:25:57 +00:00
|
|
|
|
(a ((href "/settled/1"))
|
2023-12-24 21:55:02 +00:00
|
|
|
|
"a bad first draft of a sound change tool"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
2023-12-24 21:55:02 +00:00
|
|
|
|
"there's an e-bnf grammar in that project somewhere! the hubris i
|
2023-12-11 14:49:29 +00:00
|
|
|
|
had then, to think i could make a little javascript-backed
|
|
|
|
|
language tool with all of the bells and whistles i needed! with
|
|
|
|
|
the knowledge that i had then! (or more accurately, didn't have)")
|
|
|
|
|
(br)
|
|
|
|
|
(p "but now..."))
|
2023-12-24 21:55:02 +00:00
|
|
|
|
(section ((id "the-point"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(hgroup
|
|
|
|
|
(h2 "reviving this project")
|
|
|
|
|
(p (em "whatcha gonna do sorrel?"))
|
|
|
|
|
(hr))
|
2023-12-24 21:55:02 +00:00
|
|
|
|
(p "i'm still not ready")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"but at least, today i'm forgoing bells and whistles for
|
|
|
|
|
execution models. core abstractions. experience using "
|
|
|
|
|
(a ((href "https://racket-lang.org"))
|
|
|
|
|
"a (programming) language-oriented programming language")
|
2023-12-24 21:55:02 +00:00
|
|
|
|
" maybe. there's a lot to think about")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"so, i'm going to try reviving this project. or, more accurately,
|
|
|
|
|
reimagining this project. from the little sound change tool that
|
|
|
|
|
was merely an unusably buggy iteration on tools that other
|
|
|
|
|
conlangers had executed better, to a more robust environment for
|
|
|
|
|
conlanging. one which gives language nerds the power to solve
|
|
|
|
|
all of their language nerding problems in one runtime, with an
|
|
|
|
|
extensible and reflective interface. and which is written in such
|
|
|
|
|
a way, with the appropriate abstractions, that lanuage nerdy
|
2023-12-24 21:55:02 +00:00
|
|
|
|
hackers can hack their own tools on top of it")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"and i'm going to be doing "
|
|
|
|
|
(a ((href "https://www.recurse.com/"))
|
|
|
|
|
"a hecking hacking retreat")
|
|
|
|
|
" about it. i'll spend some full-time programming days making a
|
|
|
|
|
goofy little thing for goofy little language nerds surrounded by
|
|
|
|
|
goofy programming nerds doing whatever rad things they happen
|
2023-12-24 21:55:02 +00:00
|
|
|
|
to be getting up to when i happen to be there")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"like many of the communities i am a part of, i am a quiet part of
|
|
|
|
|
the conlanging community. so, we'll see how this goes. maybe it
|
|
|
|
|
is only ever something of interest to me and the conlangers i
|
|
|
|
|
interact with in meatspace. maybe it only teaches me some things
|
|
|
|
|
about designing and building a tool of the type that i'm designing
|
|
|
|
|
and building. hoooopefully it is helpful in a way to other
|
|
|
|
|
conlangers such that it evolves beyond what i could do on
|
2023-12-24 21:55:02 +00:00
|
|
|
|
my own (cause i ain't no whiz kid 10x programmer)")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(p
|
|
|
|
|
"but that's all me getting ahead of myself (as is often my wont.)
|
|
|
|
|
first! to pack for the trip!"))
|
|
|
|
|
(section
|
|
|
|
|
(hgroup
|
|
|
|
|
(h2 "packing for the trip")
|
|
|
|
|
(p (em "a biggg heap of things to expand"))
|
|
|
|
|
(hr))
|
|
|
|
|
(p
|
|
|
|
|
"i'm just gonna fly right through these. there's going to be a lot
|
2024-01-19 03:39:13 +00:00
|
|
|
|
to read up on, to explore, to think and talk through, to build
|
|
|
|
|
toy versions of before it gets time for larger prototyping and
|
|
|
|
|
building a workable tool. so, here's the very start of the
|
|
|
|
|
thinking-in-public. each of these little thoughts is going to get
|
|
|
|
|
at least it's own writeup (if not several) and i'll update with
|
|
|
|
|
additional sections and links to the writeups as i go. a note: it
|
|
|
|
|
would be impossible for me (and probably most ppl) to create the
|
|
|
|
|
full vision in the time i'll be working on it fulltime")
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
|
|
|
|
(h3 "notes on the goals")
|
|
|
|
|
(p
|
|
|
|
|
"it's good to have goals! to define what it even is yr tring to
|
|
|
|
|
do. so here's my attempt. my goal is to create a foss+ working
|
|
|
|
|
runtime that *can* serve as a singular tool for conlangers with
|
|
|
|
|
some basic programming capacity. it should be linguistically
|
|
|
|
|
*theory neutral* to the extant that such a thing is possible.
|
|
|
|
|
it should allow for the definition of all relevant structures
|
|
|
|
|
of a language *in code* and support the construction of grammars,
|
|
|
|
|
dictionaries, text documents and (stretch goal) non-programmer
|
|
|
|
|
friendly tools *from code*. it should support phonological,
|
|
|
|
|
lexical, syntactic, morphological, semantic, etc transformations
|
|
|
|
|
across different 'epochs' be they diachronic or synchronic.
|
|
|
|
|
these transformations should work on transformations, ie
|
|
|
|
|
morphological transformations should themselves be transformed
|
|
|
|
|
by phonological transformations. users of the tool should be
|
|
|
|
|
able to edit their work and see the consequences of their changes
|
|
|
|
|
quickly. hopefully, this can all happen on the web, i guess,
|
2023-12-24 21:55:02 +00:00
|
|
|
|
cause ppl like using their browser as the everything app"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
|
|
|
|
(h3 "notes on existing tools")
|
|
|
|
|
(p
|
|
|
|
|
"i'm going to talk a bunch about existing tools made by
|
|
|
|
|
conlangers or made for professional linguists and used by
|
|
|
|
|
conlangers or just yr regular old spreedsheets and such. i'm
|
|
|
|
|
going to be doing some research about how conlangers do their
|
2023-12-24 21:55:02 +00:00
|
|
|
|
conlanging, lest this truly be a just-for-me type project"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
|
|
|
|
(h3 "notes on primitives")
|
|
|
|
|
(p
|
|
|
|
|
"i think some interesting things start to bubble out of some of
|
|
|
|
|
those goals up there. like the idea of supporting a bunch of
|
|
|
|
|
different kinds of transformations that should themselves be
|
|
|
|
|
transformable. the primitives we're working with have to work
|
|
|
|
|
below the level of \"lexeme\" or \"phoneme\" to have something
|
|
|
|
|
abstract that can apply to both. i'm not going to get into
|
|
|
|
|
specifics even a little bit at this point-you'll have to stay
|
2023-12-24 21:55:02 +00:00
|
|
|
|
tuned for more"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
|
|
|
|
(h3 "notes on execution model")
|
|
|
|
|
(p
|
2023-12-24 21:55:02 +00:00
|
|
|
|
"this is going to be the crunchiest stuff to think about. i'm
|
2023-12-11 14:49:29 +00:00
|
|
|
|
going to make some arguments for some things that (it is my
|
|
|
|
|
belief) fall out of these goals. things like dynamic typing.
|
|
|
|
|
things like reflectivity (this is sooo important it gets its
|
|
|
|
|
own section.) things like lazy evaluation (because languages
|
|
|
|
|
are big and sometimes you only want to look at a subset of a
|
2023-12-24 21:55:02 +00:00
|
|
|
|
language.) there's also some hypothetical notions that will
|
|
|
|
|
require some experiments to determine applicability to the
|
|
|
|
|
project. i'm just going to list them as questions and not
|
|
|
|
|
expound upon or defend their existence as questions here:
|
|
|
|
|
propositions as a means of combination? propagation networks
|
|
|
|
|
as primitives?"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
2023-12-24 21:55:02 +00:00
|
|
|
|
(h3 "notes on reflectivity and interaction")
|
|
|
|
|
(p
|
|
|
|
|
"this is so important! i want conlangers to use this tool to
|
|
|
|
|
iterate and that requires ~something like a REPL~ in a
|
|
|
|
|
dynamic environment. my dream is to have a bidirectional
|
|
|
|
|
flow of information; whereby a user of the system can define
|
|
|
|
|
some rules about their language, evaluate those rules on some
|
|
|
|
|
data in an interpreter, inspect those data, modify those data
|
|
|
|
|
and run the interpreter such that it produces possible rules
|
|
|
|
|
that would yield the new result. wether or not that experience
|
|
|
|
|
results from the project, users should be able to rebind
|
|
|
|
|
anything their project needs *at runtime*"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
2023-12-24 21:55:02 +00:00
|
|
|
|
(h3 "notes on portability")
|
|
|
|
|
(p
|
|
|
|
|
"as the project develops i will have to give some thought to
|
|
|
|
|
how to make it available to conlangers with different kinds
|
|
|
|
|
of computation experience. the ideal would be for a full
|
|
|
|
|
featured web implementation that interoperates with hosted
|
|
|
|
|
implementations, but we'll see"))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
2023-12-24 21:55:02 +00:00
|
|
|
|
(h3 "notes on the substrate")
|
|
|
|
|
(p
|
|
|
|
|
"not a lot to say here. i will begin this project in racket
|
|
|
|
|
because i have some familiarity with it and it is
|
|
|
|
|
specifically built for developing languages. i will be using
|
|
|
|
|
other tools to explore other aspects of the project and may
|
|
|
|
|
ultimately move away from the racket ecosystem, but a girl
|
|
|
|
|
has gotta start somewhere")))
|
2023-12-11 14:49:29 +00:00
|
|
|
|
(section
|
|
|
|
|
(hgroup
|
|
|
|
|
(h2 "about the name")
|
|
|
|
|
(p (em "it's pronouced ˈlæ.ɾɫ̩"))
|
|
|
|
|
(hr))
|
|
|
|
|
(p
|
|
|
|
|
"i don't know dude, naming things is hard. it's a working name,
|
|
|
|
|
it works good as an extension. "
|
|
|
|
|
(code "my-conlang.latl") "anyone?")
|
|
|
|
|
(p
|
|
|
|
|
"i also just like syllabic laterals? they sound neat to me. the
|
2023-12-24 21:55:02 +00:00
|
|
|
|
official initialism is " (u "l") "inguistic " (u "a") "nalytic "
|
|
|
|
|
(u "t") "ransformation " (u "l") "anguage, but it also double
|
|
|
|
|
entendres to " (u "l") "ower " (u "a" ) "nterior " (u "t")
|
|
|
|
|
"emporal " (u "l" ) "obe, so that's just kind of fun.")
|
|
|
|
|
(p
|
|
|
|
|
"and the l means there can be lambda iconography-this is crucial
|
|
|
|
|
for a new computer project. [ˈλæ.ɾɫ̩] as a typographic image is
|
|
|
|
|
so perfectly specific to the kinds of things i dream about.")
|
|
|
|
|
(p "maybe it'll have a different name some day, idk")))
|