Back to the schedule
Previous: A tour of vterm
Next: Object Oriented Code in the Gnus Newsreader
Lakota Language and Emacs
Grant Shangreaux
Download compressed .webm video (36.3M)
Download compressed .webm video (11.5M, highly compressed)
View transcript
Download compressed Q&A .webm video (14.3M)
Download compressed Q&A .webm video (6.8M, highly compressed)
When I began learning Lakota, the language of my ancestors, there was no way for me to type it on a computer without using non-free software. Additionally, the only software I could find supported just one of the proposed orthographies for the language.
As an Emacs user, I knew that free software offered the ability for many types of languages to co-exist in the same program and went looking for how to enable an input mode for Lakota in Emacs. This talk will discuss how Emacs enabled me to define input modes for multiple Lakota orthographies using the Quail multilingual input package.
I will also discuss some of the ethical and cultural considerations I went through when publishing the package. Lakota and many other indigenous languages were actively suppressed for many years, and are in danger of extinction. The language is being recovered now, but much of the available educational material comes from non-indian people. Before publishing an input mode for Emacs, I wanted to ensure that I included an orthography developed by Lakota people, not only the suggested orthography present in most of my educational material. Additionally, the choice of where to publish the source as an Emacs package was important, since some corporations have been known to support ongoing oppression against indigenous descended peoples.
Questions
Q4: Did you write the company backend to complete on Lakota words?
With a Lakota dictionary file, one could probably leverage other company methods for completion.
Seems to be company-dabbrev, it happens automatically when typing in Org mode at least. Unfortunately the only digital Lakota dictionary I'm aware of is non-free, so I'm not sure what to do about that.
- Yeah, I'm not sure, but the dictionary files needed would really just be word-lists, so maybe there is a way to find or produce something of this sort.
Q3: Why did you decide on e.g. a' for á? In my country's input method (which is Dutch, and in French, German, etc.) the default is to put the accent first, so 'e -> é.
For me, this was my first experience with it and it made more sense in my head to have the modifier come after. Its possible I read about postfix notation in a tutorial I found (and lost) that demonstrated Quail input modes. The X11 input has it as a prefix, so I may change it in the future. I'd like to consult with other Lakota speakers and tribal members, however, as it seems worthwhile trying to get consensus from native speakers on usage.
Q2:Can you give us a demo of you typing in either Lakota input method?
The demo starts at 02:06 in the Q&A video.
Q1: Advantages of using Emacs Input Methods over something like xcompose?
→ Compose https://wiki.archlinux.org/index.php/Xorg/Keyboard_configuration#Configuring_compose_key
Ah yes, I found something about this when making the X layout, but it
was not immediately apparent. Emacs was easier for me to inspect and
learn about than X, easier to iterate on as I was learning how it all
worked. Emacs can re-eval the layout definition and give live
feedback, while X required a restart to try different things. Emacs is
also cross platform, so anyone can easily install this. also, sharing
an X config seemed more difficult to me, I don't know how to tell
someone to install it properly 
Notes
- https://www.gnu.org/software/emacs/manual/html_node/emacs/Input-Methods.html
- Quail: lisp/international/quail.el
- https://git.sr.ht/~shoshin/lakota-input.git
Transcript
nahaŋ iyuha ċaŋte waṡteya nape ciyuzap̄elo. Hello relatives. Grant Shangreaux is what they call me, and all of you I gladly take your hand and shake it. Greetings everyone. Today I'm going to talk about Lakota language and Emacs and how free software and Emacs empowered me to write on the computer in the language of my ancestors.
Lakȟótiyapi, the Lakota language. The Lakota/Dakota dialect area, for those of you who you don't of know, the Lakota/Dakota people are also known as the Sioux, and the tribes cover an area of roughly 10 US states and parts of Canada and so this language is spoken over a wide range of area. However, the US government policy directly tried to silence this language. My father was taken to a boarding school and was punished for speaking his native language, and so he didn't teach it to his children. Several generations of Lakota and Dakota people and other tribes all over the country lost their first language, their native language. So today only around 2,000 first language native speakers are speaking Lakota. However, there's language recovery projects that are empowering second language learners like myself to teach it to the new generation of children.
without knowing my heritage. I didn't know who my father was. Both my parents were white. I discovered my biological family in around 2015. It was kind of a shock to me up until that point probably the only time I'd heard the Lakota language was in the movie Dances with Wolves possibly some other times around Nebraska I'd heard it, but even myself growing up, you know, pretty close to to Lakota people and other native American people, American Indian people, I kind of thought it was just dead. I thought the language was not alive anymore. But in 2016, my daughter began her journey into this world, and I was doing a lot of searching to find out like what could I do, you know, not knowing my family, not knowing my culture... What could I do to try to bring that into our life? So I found out about these Lakota classes that were happening, I went up to Standing Rock in North Dakota and attended the Lakota Summer Institute for three weeks and began my journey to learn the language so I can try to pass it on.
I could talk a lot more about my story. I'm sure there's a lot to say, But we're here to talk about Emacs. I was already a free software user at the time and at the Lakota Language Institute they were giving us software. There's a dictionary you could get on Android. There is a keyboard for Android that you could type with. They had keyboard input methods for Mac and Windows. But I'm a Linux user, free software user, so I didn't have access to those things as easily as I could, and I do a lot of my thinking and note taking in Emacs and in Org Mode and so being able to write this, to write things down, to type on my own computer was pretty important to me. I wasn't much of an Emacs hacker yet. At the time, I had barely done anything, mostly just, you know, hacked on my config file. But this was a real chance for me to experience the benefits of free software first-hand, and not just to benefit myself, but to potentially benefit everyone, anyone interested in learning this language. So Emacs and that free software philosophy really empowered me. So I began digging in. I looked. I began reading the the manual more closely.
there's not a lot of
other languages spoken or written
where I'm from,
so it's not common that I have to
think about this with computers.
I know international people
have had to come up with
with interesting ways to enter their text,
and Emacs is probably a pioneer in that.
I'd like to know more about the
history of this, but
there's a whole section in the manual on
international Emacs.
I began reading this and I was
talking about
different input methods, and how many
different languages were supported, and
how you could enter the text, and how it
supports the different characters and so on.
I even noticed a few languages
support several input methods
that became important for me later on as
I was working on this.
Many, many languages are already
supported, so
those of you who haven't looked into
this yet, if you press
C-\, it will open up a
selection menu
for you to select
your input method, and you can, there's
207 listed here.
That's including the two that I've
contributed.
So 205 on a vanilla Emacs.
That's a lot of languages supported
by Emacs, but there's so many more
that could be. And since Emacs is free
software and it is what it is, I knew
that defining a new
input method was surely possible.
Unfortunately the the manual didn't
describe it directly, or at least I
didn't pick it up.
I timidly dove down into the source code
and discovered the Quail package.
So back in the day, apparently, there
was Mule which is like the
multi... I don't know it stood for,
something about
language environments, and it has
evolved and.
At some point some Japanese
coders created an input method called
Tamago,
which means egg in Japanese.
Tamago evolved into Quail, and
in the comments you can see they talk
about how the quail egg is eaten in
Japan. It's a smaller thing.
The quail-mode is like a nicer version
of Tamago, I guess.
There's a pun saying they hoped it would
egg people on to create more input modes.
Quail is quite nice. I looked into it,
and there's basically two things: you use
quail-defined-package and quail-define-rules.
So quail-define-package
you can see here is a function. It's
probably a macro that takes a name,
a language, a title, and some optional
stuff which
I didn't really have to deal with.
Define NAME as a new Quail package for
input LANGUAGE. TITLE is a string to be split
at the mode-line to indicate this package.
this is a whole thing on its own because the Lakota language was never written pre-contact and post-contact. Like, there's several attempts at writing it and different orthographies and there's drama around all of this stuff. It's pretty common to have drama going on in any American Indian stuff going on. So as I was doing this, I started with the suggested Lakota orthography, which is actually called by its authors the the Standard Lakota Orthography, but its authors are are European. The main author is a man named Jan Ullrich, and I appreciate all his work, and I'm grateful for the materials he's made available, but it's a little bit problematic because it's not an orthography created by our people, by Lakota people. So there's another one called the White Hat Orthography, which is created by Albert White Hat, who's a teacher from the Sičháŋǧu tribe. So I created two, and thankfully Emacs lets me do that, so it's pretty simple.
I just say the package I want, and then all
these nils and t's for options. I don't
actually know what they mean, but it
works.
I could look it up. And then quail-define-rules
just defines mappings from ascii
keys to
the text you want to put in.
So for this one, there's a nasal n, and then
a dot and a macron, like a wedge shape
for marking up the consonants.
So that one's pretty easy.
suggested Lakota orthography is a little
bit more difficult,
but still pretty easy. I just map a
sequence of keys
a followed by the apostrophe makes the
accented vowels, so all of those,
and then again we have the haceks
for the guttural sounds of the language
and the nasal n. So that's it. Basically,
these two
definitions allow me to type
Lakota language in Emacs,
and it's great. It works. Great.
is another problematic thing. I wanted to use free software to do that. So the first thing I did was I posted on SourceHut, which is great. It's a good alternative for a Git Forge. And I got it published on Melpa, so the Lakota input package is available if you'd like to try it out. And bandali, one of our hosts for the conference, is helping me now through the process of committing the code to Emacs because I would like to do that. I would like it to be available to everyone through Emacs itself, so that anyone who wants to use it just has to download Emacs, and there you go, you can type Lakota language. So. Pilámayaye. Thank you all for listening, and I hope to see you around in our Emacs community. Tókša akhé, wačhíŋ kiŋ kte.
Back to the schedule
Previous: A tour of vterm
Next: Object Oriented Code in the Gnus Newsreader
