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