<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://smkang96.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://smkang96.github.io/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-08-18T11:05:33+00:00</updated><id>https://smkang96.github.io/feed.xml</id><title type="html">blank</title><subtitle>Sungmin&apos;s Blog
</subtitle><entry><title type="html">How Cuneiform?</title><link href="https://smkang96.github.io/blog/2026/how-cuneiform/" rel="alternate" type="text/html" title="How Cuneiform?" /><published>2026-08-08T10:00:00+00:00</published><updated>2026-08-08T10:00:00+00:00</updated><id>https://smkang96.github.io/blog/2026/how-cuneiform</id><content type="html" xml:base="https://smkang96.github.io/blog/2026/how-cuneiform/"><![CDATA[<p>How did people learn to read this stuff?</p>

<p><img src="/assets/images/2026-07-24-21-45-34.png" alt="a close-up image of a cuneiform inscription" width="600" class="center" /></p>

<p>I don’t know why, but I’ve been thinking about this for a few months now, and decided to get to the bottom of it.</p>

<p>My usual go-to is Wikipedia for these matters, and there is indeed a relevant article titled <a href="https://en.wikipedia.org/wiki/Decipherment_of_cuneiform">Decipherment of Cuneiform</a>. I was not satisfied by the amount of detail it provided, however. For example, it says: “Della Valle understood that the writing had to be read from left to right”. What? How?? I also looked up one or two of the linked books in Wikipedia and searched for YouTube videos, which were similarly unsatisfactory.</p>

<p>So how, specifically, did people learn to read cuneiform?</p>

<p>One thing I learned in the process is that there are many different types of cuneiform. This post only deals with Old Persian cuneiform, the first to be deciphered.</p>

<p>Necessary caveats: I am (obviously) not an expert. While I wrote the post in its entirety, I also relied on Claude Opus for discussion and translation of original sources in Latin, German, and French.</p>

<h2 id="awareness">Awareness</h2>

<p>Travelers visiting ancient Persian lands regularly encountered sculptures accompanied by mysterious ‘decorations’:</p>

<p><img src="/assets/images/2026-07-24-23-30-31.png" alt="dense cuneiform with sculpted figurines to the left, right, and bottom." width="600" class="center" /></p>

<p>Many thought this was text, and tried to decipher it, without making much (known) progress. Nonetheless, there were some early guesses which turned out to be correct. For example, the Italian traveler Pietro Della Valle, who had been in the region between 1616-1621, saw the glyph</p>

<blockquote>
  <p><span style="font-size: 50px">𐎠</span></p>
</blockquote>

<p>and observed (translation by Claude):</p>

<blockquote>
  <p>What gives me an indication that it may be written from left to right in our manner is the character, which is composed of four similar pyramidal figures — three upright with the point downward, and one lying on its side above them. For of the pyramidal figures, the head of this writing, as one sees in all the characters, is the broad part, which always stands uppermost when they are upright. Now in that pyramidal figure lying above the three that stand on end, since its head — that is, the broad part — is on the left, and its tail — that is, the point — on the right, it shows that the beginning of the writing is from the left side toward the right. Still, I do not affirm it for certain.</p>
</blockquote>

<p>Simply put, because the lower three ‘triangles’ of the example glyph get narrower as they go down, and the upper ‘triangle’ gets narrower as it goes from left to right, the text might be read left to right. But he’s not sure.</p>

<p>(This is all Della Valle had to say, if you were wondering if I left something out. Not strong reasoning IMO, but it is what it is.)</p>

<p>Not everyone agreed that the ‘decorations’ were actually text, however. Thomas Hyde, who coined the term <em>cuneiform</em><sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup>, apparently believed that the signs were meant to serve as ornaments. (Charitably, perhaps he saw inscriptions with just a few lines? I cannot imagine seeing literal walls of text like the one photographed above and concluding “Ah, decoration.”)</p>

<p>Such was the state by the 1760s - controversy on whether cuneiform even represented writing proper. This changed with Carsten Niebuhr.</p>

<h2 id="details-emerging">Details Emerging</h2>

<p>Carsten Niebuhr, a German mathematician and cartographer, excelled in his studies, and was thus recommended to be part of the Danish Arabia expedition at the age of 27. You can see his journey route below:</p>

<p><img src="/assets/images/2026-07-25-00-40-35.png" alt="map of the danish expedition to yemen" width="600" class="center" /></p>

<p><em>Image from <a href="https://twitter.com/deSyracuse/status/1171377770598977536">deSyracuse</a>.</em></p>

<p>This was a dangerous journey: Niebuhr was the only one of the six members to survive. That he survived is fortunate for us, because Niebuhr visited Persepolis, an ancient Persian city with many cuneiform inscriptions, and made a number of critical contributions, getting the decipherment ball rolling.</p>

<p>First, Niebuhr left highly accurate copies of the inscriptions at Persepolis, and published them in 1778, in a series of tables labeled from A to L. This allowed anyone with access to his book to contribute, not just people (like him) who were fortunate enough to see the inscriptions in person.</p>

<p>Second, Niebuhr noticed that there was not just one but three types of script. See an image of how he classified them below (on the right, tables B, C, and D):</p>

<p><img src="/assets/images/2026-07-25-14-25-10.png" alt="Niebuhr's table of script types" width="600" class="center" /></p>

<p>Not having seen the inscriptions myself, it is difficult to know how easy it is to tell in person, but once they are organized like this it is relatively easy to see the differences. In type B, for example, the wedges only appear vertically or horizontally, <em>except</em> when the wedge is used alone. In type C, various forms of diagonally oriented wedges appear. Type D is somewhat similar to type B, but there are generally more wedges. Probably there was some physical separation between the blocks, making it easier for Niebuhr to tell that they were meant to be distinct.</p>

<p>Finally, Niebuhr noticed that one of the three scripts he identified was the simplest, making it the prime target for decipherment. Regarding type B above, Niebuhr says (translated):</p>

<blockquote>
  <p>The number of letters is therefore by no means as large as one might perhaps have supposed from the copies of my predecessors. I have collected the various letters of one alphabet, the one that occurs most often, and have found no more than 42 of them.</p>
</blockquote>

<p>Niebuhr has, by this point, provided accurate records and established key basic facts about the script, including different script types and which would be easiest to decipher (the type in Table B, which we will alternatively call “Old Persian Cuneiform”). But he has not yet deciphered the meaning of the text.</p>

<h2 id="breakthrough">Breakthrough</h2>

<p>As Niebuhr’s records spread, Oluf Gerhard Tychsen guessed that the diagonal wedge (𐏐) was likely a word separator. It is unique, as discussed above, in that it is the only diagonal wedge to appear in the glyphs. Furthermore, separating by the wedge yields roughly word-sized chunks.</p>

<p>This observation in turn made it easy to realize that there is a common recurring sequence in the text. See if you can find it yourself (here, I quote part of the <a href="https://en.wikipedia.org/wiki/DNa_inscription">DNa inscription</a>):</p>

<blockquote>
  <p>𐏐 𐎠𐎭𐎶 𐏐 𐎭𐎠𐎼𐎹𐎺𐎢𐏁 𐏐 𐎧𐏁𐎠𐎹𐎰𐎡𐎹 𐏐 𐎺/𐏀𐎼𐎣</p>

  <p>𐏐 𐎧𐏁𐎠𐎹𐎰𐎡𐎹 𐏐 𐎧𐏁𐎠𐎹𐎰𐎡𐎹𐎠𐎴𐎠𐎶</p>

  <p>𐏐 𐎧𐏁𐎠𐎹𐎰𐎡𐎹 𐏐 𐎭𐏃𐎹𐎢𐎴𐎠𐎶 𐏐 𐎻𐎡𐎿𐎱𐏀𐎴𐎠/𐎴𐎠𐎶</p>

  <p>𐏐 𐎧𐏁𐎠𐎹𐎰𐎡𐎹 𐏐 𐎠𐏃𐎹𐎠𐎹𐎠 𐏐 𐎲𐎢𐎷𐎡/𐎹𐎠</p>
</blockquote>

<p>This is parsed favorably, so you should be able to make it out: “𐎧𐏁𐎠𐎹𐎰𐎡𐎹” is a frequently recurring pattern. What might it be, though? A name? A title? An article like “the”? Tychsen made some guesses as to how to read the script, but it was not the most accurate.</p>

<p>It is at this point where <a href="https://en.wikipedia.org/wiki/Georg_Friedrich_Grotefend">Georg Grotefend</a>, a 27-year-old scholar, made a series of bold informed guesses that led to significant progress.</p>

<p>In his 1802 submission to the Göttingen Society, Grotefend suggested the following:</p>

<h3 id="the-script-is-alphabetic">The script is alphabetic</h3>

<p>If we accept 𐏐 is a separator, the glyphs in Niebuhr’s Table B cannot represent individual words. Not only are there too few observable glyphs for that, it is implausible that there would be repetitions of exact phrases over and over. Thus, the script is likely alphabetic.</p>

<h3 id="the-language-it-describes-is-likely-old-persian">The language it describes is likely Old Persian</h3>

<p>If the script is alphabetic, certain glyphs are likely vowels. We can identify which of them are vowels, by looking at glyph frequency, since vowels can be expected to occur more often. Indeed, three glyphs are notably more frequent: 𐎠, 𐎶<sup id="fnref:2"><a href="#fn:2" class="footnote" rel="footnote" role="doc-noteref">2</a></sup>, and 𐎡.</p>

<p>Grotefend argued the usage of these glyphs closely fits vowel usage in the <a href="https://en.wikipedia.org/wiki/Avestan">Avestan</a> language (the language used by the Persian peoples in 1500-400 BCE). Therefore, we can deduce that the language the glyphs are recording is similar in nature. This makes sense because the glyphs were found in Persian lands, and Avestan is a Persian language.<sup id="fnref:3"><a href="#fn:3" class="footnote" rel="footnote" role="doc-noteref">3</a></sup></p>

<h3 id="the-script-is-read-left-to-right">The script is read left-to-right</h3>

<p>Grotefend provides a stronger reason why the script is read left-to-right: namely, that patterns are better preserved when read in such a manner.</p>

<p>Here, Grotefend did not give a specific example, but it’s fairly easy to find one. Consider the often-recurring pattern “𐎧𐏁𐎠𐎹𐎰𐎡𐎹”, and how it is recorded in Niebuhr’s original table. We can see an instance of the <em>left</em> part of it appearing on the right side of second line and the <em>right</em> part at the left side of the third line. This provides reasonably strong indication that the glyphs are read left-to-right, top-to-bottom, just like the Latin alphabet usually is.</p>

<p><img src="/assets/images/2026-07-25-16-22-04.png" alt="linebreak of common cuneiform word" width="600" class="center" /></p>

<h3 id="the-pattern-𐎧𐏁𐎠𐎹𐎰𐎡𐎹-likely-means-king-with-the-kings-name-appearing-to-its-left">The pattern “𐎧𐏁𐎠𐎹𐎰𐎡𐎹” likely means “king”, with the king’s name appearing to its left</h3>

<p>With the reading order in mind, Grotefend observes that Niebuhr’s Table B and G start as:</p>

<blockquote>
  <p>Table B:   𐎭𐎠𐎼𐎹𐎺𐎢𐏁𐏐𐎧𐏁𐎠𐎹𐎰𐎡𐎹</p>

  <p>Table G: 𐎧𐏁𐎹𐎠𐎼𐏁𐎠𐏐𐎧𐏁𐎠𐎹𐎰𐎡𐎹</p>
</blockquote>

<p>From this, he conjectures that “𐎧𐏁𐎠𐎹𐎰𐎡𐎹” is a title, most likely “king”, and that the sequence preceding “𐎧𐏁𐎠𐎹𐎰𐎡𐎹” is the king’s name. This makes sense as there are also inscriptions where the “king” sequence appears in succession: “<span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐏐<span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐎠𐎴𐎠𐎶”, which would mean “king of kings”.</p>

<h3 id="identification-of-the-kings-in-the-inscriptions-darius-and-xerxes">Identification of the kings in the inscriptions: Darius and Xerxes</h3>

<p>Tables B and G are in fact almost identical in structure:</p>

<blockquote>
  <p>Table B:</p>

  <p><span style="color:green">𐎭𐎠𐎼𐎹𐎺𐎢𐏁</span>𐏐<span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐏐<span style="color:purple">𐎺𐏀𐎼𐎣</span>𐏐  // [name1] king [word1]</p>

  <p><span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐏐<span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐎠𐎴𐎠𐎶𐏐 // king of kings</p>

  <p><span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐏐𐎭𐏃𐎹𐎢𐎴𐎠𐎶𐏐 // king [word2]</p>

  <p>𐎻𐎡𐏁𐎫𐎠𐎿𐎱<span style="color:red">𐏃</span>𐎹𐎠𐏐 // [word3 with 𐏃 modifier]</p>

  <p><span style="color:skyblue">𐎱𐎢𐏂𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐</span> // [word4] [word5]</p>

  <p>…</p>
</blockquote>

<blockquote>
  <p>Table G:</p>

  <p>𐎧𐏁𐎹𐎠𐎼𐏁𐎠𐏐<span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐏐<span style="color:purple">𐎺𐏀𐎼𐎣</span>𐏐 // [name2] king [word1]</p>

  <p><span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐏐<span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹</span>𐎠𐎴𐎠𐎶𐏐 // king of kings</p>

  <p><span style="color:green">𐎭𐎠𐎼𐎹𐎺<span style="color:red">𐏃</span>𐎢𐏁</span>𐏐<span style="color:goldenrod">𐎧𐏁𐎠𐎹𐎰𐎡𐎹<span style="color:red">𐏃</span></span>𐎹𐎠𐏐 // [name1 with 𐏃 modifier] king</p>

  <p><span style="color:skyblue">𐎱𐎢𐏂𐏐𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹𐏐</span> // [word4] [word5]</p>
</blockquote>

<p>There is a clear pattern between the two; what can we do with this? Here, there is a difference between the interesting story on Wikipedia, and what I could find in Grotefend’s original text.</p>

<h4 id="wikipedias-story">Wikipedia’s Story</h4>

<p>Note that [name1] is mentioned in Table G. The story goes that it was already known that Persian kings described themselves in this formula. For example, here goes the translated description of a Persian king in the 200s (<a href="https://sites.uci.edu/sasanika/sapur-is-inscription-naqs-e-rajab-snrb/">Shapur I</a>):</p>

<blockquote>
  <p>… lord Shapur,
king of kings of the Iranians and non Iranians…
son of … lord Ardashir, king of kings of the Iranians…</p>
</blockquote>

<p>Then the recurrence of [name1] in Table G likely means that [name2] was a <em>son</em> of [name1], with the <span style="color:red">𐏃</span> modifier perhaps doing a grammatical job related to the “son of” meaning. With this in mind, we can make an interesting observation about Table B: there, [word3] does <em>not</em> have the king title following it, unlike Shapur’s description and Table G, which explicitly note the father is a king. Thus, we need to find a Persian king whose father was not a king, but whose son was.</p>

<p>Two Achaemenid kings fit that pattern: Cyrus II and Darius I.<sup id="fnref:4"><a href="#fn:4" class="footnote" rel="footnote" role="doc-noteref">4</a></sup> A distinguishing factor is that for Cyrus II, the name of his father and son were the same (Cambyses). However, [name2] and [word3] are clearly different. So [name1] must be Darius! From here, we can deduce the sound values of the cuneiform, since we earlier suspected it to be alphabetic, and eventually decipher it all.</p>

<h4 id="grotefends-description">Grotefend’s Description</h4>

<p>Unfortunately, the tidy story is not what I could find in Grotefend’s 1802 submission.</p>

<p>Instead, Grotefend noted that [name1] appears in both Niebuhr’s tables B and G, and thus deduced that the kings first mentioned in B and G were father and son:</p>

<blockquote>
  <p>… from which I gathered that the kings praised in these inscriptions were father and son. Since therefore the name of Darius — which the sacred codex calls Darjavesch — seemed to square with that word which Tychsen read Malkéusch (Dârhéusch), and the name of Xerxes with that which Tychsen read Osch patscha (Khschhêrschê): what the royal title was could not long escape me.</p>
</blockquote>

<p>Thus, Darius and Xerxes are Grotefend’s guesstimates of the names based on the father-son relationship and the reconstructed sounds of Tychsen, not from a genealogy search.</p>

<p>Be it genealogy or guesstimate, Grotefend has concluded that [name1] is Darius and [name2] is Xerxes. Having established that the glyphs are alphabetic in nature, we can start deducing what <em>sounds</em> the glyphs would represent.</p>

<h3 id="phonetic-deduction">Phonetic Deduction</h3>

<p>Once a name is known, mapping it back to sounds might not seem <em>too</em> hard. But consider: would the ancient Persians have pronounced Darius the same way as we English speakers do? Probably not: “Darius” is in fact a Latin form of the Greek term for the King, so it is twice removed from the name in its native language. Thus, for accurate decipherment, one must try to reconstruct how the ancient Persians might have called their king.</p>

<p>Grotefend reconstructed Darius’s name from the Bible, where Darius is called “Darjavesch”. Without describing why, he slightly modified this to “Dárheúsch”,<sup id="fnref:5"><a href="#fn:5" class="footnote" rel="footnote" role="doc-noteref">5</a></sup> which was then used to identify the glyph sounds:</p>

<table>
  <thead>
    <tr>
      <th>𐎭</th>
      <th>𐎠</th>
      <th>𐎼</th>
      <th>𐎹</th>
      <th>𐎺</th>
      <th>𐎢</th>
      <th>𐏁</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>D</td>
      <td>a</td>
      <td>r</td>
      <td>h</td>
      <td>e</td>
      <td>u</td>
      <td>sch</td>
    </tr>
  </tbody>
</table>

<p>Conveniently, [name2] (Xerxes) shares all glyphs with Darius except its first. Guessting the first letter to be <em>kh</em> based on Xerxes’s name, we get</p>

<table>
  <thead>
    <tr>
      <th>𐎧</th>
      <th>𐏁</th>
      <th>𐎹</th>
      <th>𐎠</th>
      <th>𐎼</th>
      <th>𐏁</th>
      <th>𐎠</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>kh</td>
      <td>sch</td>
      <td>h</td>
      <td>a<sup id="fnref:6"><a href="#fn:6" class="footnote" rel="footnote" role="doc-noteref">6</a></sup></td>
      <td>r</td>
      <td>sch</td>
      <td>a</td>
    </tr>
  </tbody>
</table>

<p>The “kh” read is also corroborated by our key word “king”, “𐎧𐏁𐎠𐎹𐎰𐎡𐎹”, which starts with the same glyph as Xerxes; Grotefend says that an earlier scholar reconstructed the Old Persian term for king to be “Khscheio”.<sup id="fnref:7"><a href="#fn:7" class="footnote" rel="footnote" role="doc-noteref">7</a></sup></p>

<p>Grotefend, not being an expert in ancient Persian himself, used a dictionary of Old Persian words to reconstruct even more. For example, <span style="color:purple">𐎺𐏀𐎼𐎣</span> would read as “e?r?” based on what we have deduced. Grotefend thinks this word is an adjective (as it appears after “king”), and finds from the dictionary the word “eghré”, meaning “strong” or “great”. Thus he further connected “𐏀” with “gh” and “𐎣” with “é”. Through such a process, he constructed the following table and provided the meaning of the shorter inscriptions from Niebuhr:</p>

<p><img src="/assets/images/2026-07-26-18-24-36.png" alt="grotefend's table of old persian cuneiform decipherment" width="600" class="center" /></p>

<p>Well, then, this looks good, are we done now?</p>

<p>Not quite. When compared with a modern reconstruction, Grotefend’s phonetic reconstruction wasn’t even half correct. As mentioned, Grotefend relied on a dictionary of Old Persian words. However, later scholars pointed out that the dictionary he relied on had many problems itself, leading to incorrect deductions. That <span style="color:purple">𐎺𐏀𐎼𐎣</span> word earlier? Modern scholars would read it as “vazraka”, not “eghré”, so it was quite far off.</p>

<p>Without an accurate phonetic reconstruction, it was thus impossible to read text that did <em>not</em> follow patterns already established. This contributed to skepticism amongst the academic experts in the area; to them, using Grotefend’s table to decipher unknown text probably led to sounds that seemed meaningless or even impossible in the ancient Persian language.</p>

<p>Grotefend’s semantic reading was validated when <em>hieroglyphs</em> were deciphered. In 1823, an Egyptian vase was found to have both the cuneiform “𐎧𐏁𐎹𐎠𐎼𐏁𐎠𐏐” and hieroglyphs spelling out “Xerxes”. This further supported Grotefend’s guess that [name2] was in fact Xerxes. Nonetheless, this did not rescue the ultimately incorrect phonetics.</p>

<h2 id="expert-at-the-rescue">Expert At The Rescue</h2>

<p>Enter Eugène Burnouf. Born to a scholarly family, Burnouf was an expert in ancient Iranian and Indian languages. He had deciphered Avestan (an ancient Persian language) script, and thus had a deep knowledge of the language, precisely what Grotefend lacked.</p>

<p>Here, the popular story seems to be that “Burnouf discovered that the first of the inscriptions published by Niebuhr contained a list of the satrapies of Darius”, which is… another interesting but inaccurate story.<sup id="fnref:8"><a href="#fn:8" class="footnote" rel="footnote" role="doc-noteref">8</a></sup></p>

<p>Having written this, though, I sympathize with simplifying, as it’s impossible to fully communicate what Burnouf did. From this point on, decipherment becomes less about exciting ideas and more about the diligent application of language-specific knowledge, making it difficult to distill into a single compelling observation. Nonetheless, here is my hopefully more instructive summary of Burnouf’s methodology based on my reading of <a href="https://archive.org/details/mmoiresurdeuxin01burngoog/page/n196/mode/2up">Burnouf’s book</a>.</p>

<p>The key method for him was to note that there were some words that were close but not exact matches to known geographies and gods. I built the following table to simulate the knowledge that he had in his mind and show the technique: try to match the Grotefend reading to the closest known word, knowing that the Grotefend reading is partially accurate.</p>

<table>
  <thead>
    <tr>
      <th>Known cuneiform word</th>
      <th>Grotefend reading</th>
      <th>Known words and geographies (randomized order)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>𐎠𐎢𐎼𐎶𐏀𐎭𐎠</td>
      <td>auroghda</td>
      <td>-anam (common suffix)</td>
    </tr>
    <tr>
      <td>𐎲𐎠𐎧𐎫𐎼𐎡𐏁</td>
      <td>bakhmrosch</td>
      <td>Achaemenid (demonym)</td>
    </tr>
    <tr>
      <td>𐎠𐎴𐎠𐎶</td>
      <td>atschao</td>
      <td>Ahura Mazda (supreme god of Zoroastrianism)</td>
    </tr>
    <tr>
      <td>𐎠𐎿𐎶𐎠𐎴𐎶</td>
      <td>asoatscho</td>
      <td>ashmanem (the sky)</td>
    </tr>
    <tr>
      <td>𐏃𐎧𐎠𐎶𐎴𐎡𐏁𐎡𐎹</td>
      <td>akhaotschoschoh</td>
      <td>Bactria (region name)</td>
    </tr>
  </tbody>
</table>

<p>If you tried matching the words, hopefully it wasn’t too hard to match “auroghda” with Ahura Mazda, as both start with the “au” vowels and end with “da”. If we accept this match, we can identify that the “m” sound we would expect from Ahura Mazda is completely missing from Grotefend’s reading. Thus, we can correct Grotefend’s reading of “𐎶” from “o” to “m”.</p>

<p>We can be surer of this reading, because it makes other readings closer to our matches. Consider the reading “asoatscho”, which was probably one of the harder to match. Its reading would now be “asmatschm”, close to “ashmanem”. This is again almost accurate, while suggesting that “𐎴” should be read as “n” instead of “tsch”.</p>

<p>To complete the matching process: reading “𐎴” as “n” completely reconstructs “-anam”, so we can again be more confident. “akhaotschoschoh” becomes “akhamnoschoh”, which matches “Achaemenid” sans the suffixes. Probably the easiest match was “bakhmrosch” matching Bactria, again sans suffixes. Again, this is a simplification of what Burnouf did - he had many more Persian words and cuneiform words to match consistently - but it illustrates the rough process through which he corrected Grotefend’s reconstruction.</p>

<p>Contrary to the popular narrative, it is only after this series of corrections was made that Burnouf recognized there was a list of satrapies in one of Niebuhr’s inscriptions - he did not <em>start</em> with the recognition that the list of satrapies was in the inscriptions.</p>

<p>Burnouf’s phonetic reconstruction was <em>still</em> not completely correct, but it was substantially closer than Grotefend’s. Over the years, later scholars could further refine the phonetic reconstruction, eventually leading to its modern form:</p>

<p><img src="/assets/images/2026-08-08-17-51-56.png" alt="Wikipedia's phonetic table of Old Persian cuneiform" width="600" class="center" /></p>

<h2 id="epilogue-the-behistun-inscription">Epilogue: The Behistun Inscription</h2>

<p>We have told the story of how the cuneiform type in Niebuhr’s Table B, which he identified as the easiest to decipher, was gradually understood. But what about the types in Tables C and D?</p>

<p>Here, the British officer Henry Rawlinson played a role similar to Niebuhr. During his time in Persia, Rawlinson provided an accurate depiction of the <a href="https://en.wikipedia.org/wiki/Behistun_inscription">Behistun Inscription</a>, which has inscriptions in all cuneiform types, but which are much longer. This seems to have been enough source material for the decipherment of the other types. Just look at how much is inscribed: all the “lines” you see on the left, on the right, and on the bottom of the photograph are all in fact cuneiform from what I can see.</p>

<p><img src="/assets/images/2026-08-08-17-59-53.png" alt="A photograph of the Behistun inscription" width="600" class="center" /></p>

<p>But that’s a story for another day, and I’ve satisfied my itch for a while. When (if?) we come back to this topic, we’ll describe what ideas were used in deciphering the other, substantially more complex cuneiform types.</p>

<hr />

<h3 id="footnotes">Footnotes</h3>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>wedge-form, cunei- is from the Latin <a href="https://en.wiktionary.org/wiki/cuneus">cuneus</a> <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2">
      <p>To be clear, this is from the original 1802 text of Grotefend, but further research has revealed it is not a vowel. <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3">
      <p>Grotefend and the later Burnouf actually call the language “Zend”, but Avestan seems to be the modern term for the language, so I used Avestan for consistency. <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4">
      <p>Looking up the family tree of the Achaemenid dynasty, I was further confused by this explanation, as Cyrus II’s father was also a king. Claude suggested that Herodotus, a Greek historian, did not consider Cyrus II’s father a king. I looked at the Herodotus passage that Claude cited for that (1.107), but it was not clear to me. In any case Grotefend doesn’t appear to have considered Cyrus as a candidate, so it doesn’t matter. <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5">
      <p>While reviewing the manuscript, I realized that this change actually introduced more problems in the phonetic reconstruction: using the biblical “Darjavesch” would have potentially allowed the accurate reading of “𐎹” as “ya” and “𐎺” as “v”. This was probably difficult to see by Grotefend because he thought cuneiform to be alphabetic, but much later research showed the Old Persian cuneiform to be partially syllabary (representing both consonant and vowel, as in “ya”). If one assumes alphabetic representation, the cuneiform does not have enough glyphs for Darjavesch. <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:6">
      <p>Here, 𐎠 poses a bit of a problem: Xerxes is nowadays read with an “e” sound, which is different from an “a” sound, so why would they be represented with the same glyph? Grotefend notes this and justifies that in non-cuneiform representations of the old language, the same character could be read as multiple sounds. (This is an instance where he was wrong - it seems like modern reconstructions of Old Persian do not have the “eh” sound at all, and that a consistent “a” was the right reconstruction.) <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:7">
      <p>This also fits well with e.g. kshatriya, which is of the same origin. I was initially confused by the <em>Decipherment of Cuneiform</em> Wikipedia article which claimed the correct modern reading of 𐎧 is “wsa”, but this seems wrong and “𐎧” as “kh” seems right. <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8">
      <p>Wikipedia can’t exactly be faulted, because it is another error from <em>The Archaeology of the Cuneiform Inscriptions</em>, p.14, published in 1908. A small problem not worth noting in the main text: Niebuhr published inscriptions in Tables A-L, and Burnouf noted that <em><code class="language-plaintext highlighter-rouge">Table I</code></em> (i.e. the 9th table, counted in alphabetic order) of the inscriptions contains the list of tributaries, not the “first”. <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="hobby" /><category term="fun" /><summary type="html"><![CDATA[The ideas behind the decipherment of Old Persian Cuneiform]]></summary></entry><entry><title type="html">Why Think?</title><link href="https://smkang96.github.io/blog/2026/why-think/" rel="alternate" type="text/html" title="Why Think?" /><published>2026-07-21T06:22:00+00:00</published><updated>2026-07-21T06:22:00+00:00</updated><id>https://smkang96.github.io/blog/2026/why-think</id><content type="html" xml:base="https://smkang96.github.io/blog/2026/why-think/"><![CDATA[<p>Humanity has long prided itself on its ability to think - we call ourselves <em>Homo sapiens</em> after all. For a long time there was nothing on this planet that could think like us. Being an academic myself, I also value my capability for thought.</p>

<p>In the last few years, however, we have made replicas of our thought process in the form of large language models (LLMs). LLMs are quite good at thinking - not only do they have a superhuman breadth of knowledge, they can reason well enough to solve long-standing math problems.</p>

<p>This has made me wonder. If LLMs can think, and often reach even better conclusions than I can, why think? Will future generations still need to think?</p>

<h3 id="think-to-interact-in-real-time">Think, to interact in real-time</h3>

<p>One thing current LLMs struggle to do is to react in real-time. In many social situations, however, being able to answer immediately while on one’s feet is a critical requirement. Thus, one may argue that thinking is essential to navigate these cases.</p>

<p>I am doubtful. LLM inference is being optimized every day. The capabilities to “read” social situations will also grow rapidly if that ever starts to become an economic bottleneck for AI in doing work. Thus, even if this is a reason one should think right now, it is not a durable reason to think.</p>

<h3 id="think-to-gain-status">Think, to gain status</h3>

<p>Let’s start by looking at something else: physical strength. Historically, physical strength was necessary to do many jobs: farming, blacksmithing, sailing, et cetera.</p>

<p>At some point, physical strength became non-essential for many valuable jobs. The likely pivotal point was the industrial revolution, as we started using powerful machines to do the physical work, instead of doing it ourselves.</p>

<p>As a result, physical strength is primarily a <strong>status symbol</strong> in everyday life now, not a functional barrier in doing work. Being better at sports or weightlifting has little practical value, but it increases one’s esteem.</p>

<p>LLMs are automating thinking, just like the industrial revolution automated physically demanding tasks. Under this analogy, being capable of good thinking would still be valuable as a status symbol, rather than being an economically valuable capability. Good thinkers would be admired the way we admire people who can lift heavy objects, with the simultaneous understanding that machines are in an incomparable, separate category.</p>

<h3 id="think-to-be-healthy">Think, to be healthy</h3>

<p>Let’s extend the analogy with physical strength. Exercise is beneficial for one’s health, in addition to status. As a result, health is a big reason we continue to engage in physical activity, even when physical strength has little direct economic value.</p>

<p>Just like a prolonged period of not exercising can have harmful effects on the body, prolonged periods of not thinking can have harmful effects on one’s mind and health. For a direct example, without a regular habit of thinking, one may grow indulgent and intolerant of inconveniences, in a way that is self-harming. There are many more indirect ways in which the lack of thinking harms one’s health as well.</p>

<h3 id="think-to-understand-what-you-want">Think, to understand what you want</h3>

<p>Machines cannot reproduce desires and needs. Even in a hypothetical world where machines themselves have desire, machines cannot reproduce <strong>your specific</strong> desires and needs.</p>

<p>While knowing what you want sounds trivial, it usually requires thoughtful unpacking to understand what you truly want. For example, let’s say I feel irritated. Is it because I am in a hot subway station? Is it because I woke up late and couldn’t have breakfast and am now hungry? Is it because the person next to me is speaking loudly? Is it all of these or none of them? To disentangle this requires thought, and as long as LLMs do not have direct access to my brain, LLMs cannot provide the answers for me.</p>

<p>This principle, that LLMs cannot tell you what you need, generalizes beyond the self. Coding agents, for example, can generate code at superhuman speed, but they cannot operate without someone telling them what to do in the first place. Thus, an accurate understanding of what is needed, and having the thinking acumen to distill that, is a durable reason to think.</p>

<h3 id="think-to-be-original">Think, to be original</h3>

<p>A famous quip from Ted Chiang for LLMs is that they are a “<a href="https://www.newyorker.com/tech/annals-of-technology/chatgpt-is-a-blurry-jpeg-of-the-web">blurry jpeg of the web</a>”. That is, LLMs are a distillation of the monumental body of knowledge that humanity has compiled on the internet. While the individuals contributing to that knowledge were each unique, LLMs as a single model “average” over all of these individuals.</p>

<p>Being “average” might sound like a surefire path to mediocre results, but it is not. Consider the “average face”, which can be constructed by averaging the face images of a large number of people. Often, the “average” face is better-looking than each of the individual faces, a phenomenon known as <a href="https://en.wikipedia.org/wiki/Averageness">averageness</a>, which is used as way of quantitatively measuring beauty. Similarly, LLMs, which represent an “average” of cognition, have well-rounded capabilities few individuals can match.</p>

<p>The problem with “averageness” is thus more subtle. It is not that the “average” thinking LLMs can provide yields mediocre results: in fact it can deliver superior results than any individual on their own. Rather, the problem is that despite the superiority of the tool, you cannot stand out if you use LLMs for your thinking, because your superior tool will be something that everyone else has.</p>

<p>Meanwhile, your own experiences nudge you to think differently from everyone else, as they are inhabiting a different physical body. Thus, if you can think based on your experiences, which you cannot directly share with an LLM (yet), your thoughts will have a unique nature that others would not be able to replicate.</p>

<h3 id="think-for-the-joy-of-it">Think, for the joy of it</h3>

<p>Yes, the cliché answer. I still think it’s true.</p>

<hr />

<h3 id="addendum-aaare-my-thoughts-original-though">Addendum: Aaare my thoughts original, though?</h3>

<p>I typed everything above with my own hands and with my own thoughts, without the influence of any LLM (sans proofreading). But I was curious how LLMs would answer my question of why I should continue thinking. Here is a what they had to say (I asked them to give a three point summary):</p>

<table>
  <thead>
    <tr>
      <th>GPT-5.5</th>
      <th>Claude Fable 5</th>
      <th>Gemini 3.1 Pro</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Thinking is how you decide what to value, not just what is true.</strong> An LLM can generate arguments and solutions, but only you can determine which questions are worth asking and which goals are worth pursuing.</td>
      <td><strong>Thinking is constitutive, not just instrumental.</strong> You don’t think merely to produce conclusions; thinking is how you form beliefs you can genuinely call your own, understand <em>why</em> something is true, and remain the kind of agent who can judge whether an LLM’s answer is even right.</td>
      <td><strong>Agency and Curiosity:</strong> While LLMs are exceptional pattern-matching engines, they lack intent and curiosity, only generating outputs when mathematically prompted to do so. Human thought remains the essential catalyst that asks novel questions, challenges paradigms, and sets the direction for new discovery.</td>
    </tr>
    <tr>
      <td><strong>Thinking is how you judge rather than merely receive.</strong> Even if an LLM often reaches better conclusions, you need enough understanding to recognize when its reasoning applies, when it is mistaken, and when its answer conflicts with your own experience or priorities.</td>
      <td><strong>Outsourced cognition atrophies.</strong> Judgment, taste, and the ability to ask good questions are skills maintained by use — and someone must still frame problems, evaluate outputs, and take responsibility for decisions, none of which can be delegated without ceasing to be the author of your own work.</td>
      <td><strong>Context and Meaning:</strong> Your capacity for thought is intertwined with human ethics, emotion, and lived experience, allowing you to assign real-world significance to abstract concepts. An AI can synthesize vast amounts of academic literature, but only a human mind can ascertain <em>why</em> those findings actually matter to society.</td>
    </tr>
    <tr>
      <td><strong>Thinking is part of living, not just a means to an answer.</strong> Curiosity, insight, and the gradual process of understanding are themselves meaningful human experiences; outsourcing every thought would be as impoverishing as outsourcing every conversation or every journey simply because someone else could do them better.</td>
      <td><strong>Value and meaning live in the activity itself.</strong> Much like we still run despite cars, thinking carries intrinsic satisfaction and constitutes part of a flourishing human life — its worth was never solely in producing conclusions faster than the alternatives.</td>
      <td><strong>Accountability and Judgment:</strong> Because AI can produce highly plausible but fundamentally ungrounded or hallucinated reasoning, your critical thinking is required to rigorously evaluate its conclusions. We must continue to think because we alone bear the moral and practical responsibility for how knowledge is applied in the real world.</td>
    </tr>
  </tbody>
</table>

<p>As an exercise, the reader can think about whether my thoughts are in fact original.</p>]]></content><author><name></name></author><category term="musing" /><category term="essay" /><category term="thinking" /><summary type="html"><![CDATA[I think about why we should think when we have thinking machines.]]></summary></entry><entry><title type="html">[ICSE 2023] Exploring LLM-based General Bug Reproduction</title><link href="https://smkang96.github.io/blog/2023/libro-explained/" rel="alternate" type="text/html" title="[ICSE 2023] Exploring LLM-based General Bug Reproduction" /><published>2023-08-27T07:08:00+00:00</published><updated>2023-08-27T07:08:00+00:00</updated><id>https://smkang96.github.io/blog/2023/libro-explained</id><content type="html" xml:base="https://smkang96.github.io/blog/2023/libro-explained/"><![CDATA[<p>(Associated files, such as the bibtex or slides, can be found <a href="/al-folio/publications/#Kang2023aa">here</a>.)</p>

<p>TLDR: This paper introduces <code class="language-plaintext highlighter-rouge">LIBRO</code>, a technique that automatically reproduces bug reports with high precision.</p>

<h2 id="motivation">Motivation</h2>

<p>When users or developers find bugs, they can report these bugs on issue tracker software, such as on GitHub as issues or on Jira. Such reports are called “bug reports”. Bug reports are generally written in natural language, and may be submitted without a <strong>test</strong> that reproduces the issue. This is a difficult situation for developers, as they will then have to manually try to reproduce the issue in the bug report by writing their own test code. Given the large volume of bug reports being submitted every day, this burden can be overwhelming. Thus, bug reproduction is a situation where automatic test generation could help developers.</p>

<p>Despite this, due to the difficulty of natural language processing, automatic bug reproduction has been mainly limited to crash bugs, where the expected behavior is clear - the program should not crash. This actually leaves some simple cases (from the human perspective) difficult to automatically handle for machines. For example, consider the following <a href="https://issues.apache.org/jira/browse/MATH-370">bug report</a> from Commons Math:</p>

<blockquote>
  <p><strong>NaN in “equals” methods</strong></p>

  <p>In “MathUtils”, some “equals” methods will return true if both argument are NaN.
Unless I’m mistaken, this contradicts the IEEE standard.</p>

  <p>If nobody objects, I’m going to make the changes.</p>
</blockquote>

<p>In this case, it is clear what the expected behavior is to a human (<code class="language-plaintext highlighter-rouge">equals</code> methods should return false if both arguments are NaN). However, when trying to deal with this report using a rule-based algorithm, you immediately face two difficulties. First, the report does not explicitly spell out the expected behavior, so it is difficult to extract the expected behavior. Second, even if you get the oracle, all the code references in the report are disconnected, so it can be difficult to automatically write a test based on the available information. It is likely such difficulties that made automatic bug reproduction outside of crash bugs difficult.</p>

<h2 id="approach-and-results">Approach and Results</h2>

<p>It is no longer news, but one of the observations of our paper is that large language models (LLMs) do quite a good job of overcoming these challenges. After all, LLMs are good enough at natural language processing to the extent that they are capable of <a href="https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html">explaining humor</a>, and they are capable of generating code as well. Consequently, they are a natural solution to the test reproduction problem.</p>

<p>However, to build a tool that is actually useful to developers, simply generating many solutions from an LLM is not enough - we can’t hand a hundred candidate reproducing tests to a developer and say “job done”. Thankfully, for automatic bug reproduction, we find features that can help reduce this manual inspection cost. For example, a bug reproducing test should actually fail on the current, buggy version of the code, which allows us to automatically filter a portion of the unhelpful solutions. We bundled this heuristic, along with others, as an automated post-processing pipeline, specialized for handling bug reproduction.</p>

<p>With LLMs and the post-processing, which together we group in the tool <code class="language-plaintext highlighter-rouge">LIBRO</code>, we could both reproduce <strong>one-third</strong> of all of the bugs in the Defects4J benchmark, which is a substantially better performance than the baselines that we compared against. Furthermore, with the postprocessing pipeline we could achieve a precision of up to 0.85, reducing developer hassle with false positives.<sup id="fnref:1"><a href="#fn:1" class="footnote" rel="footnote" role="doc-noteref">1</a></sup></p>

<h2 id="perspective-a-year-after-submitting-the-paper">Perspective A Year After Submitting The Paper</h2>

<p>Since then, there has been a substantial amount of work on test generation using large language models. Testing does seem to be one of the most natural applications of LLMs for software engineering - while LLMs have the tendency to be wrong, it is okay for tests to be “wrong”, as this may actually lead to the testing of interesting behavior, as we note in <a href="https://arxiv.org/abs/2306.05152">Robert et al.</a>.</p>

<p>If I can leave one takeaway for any readers who have come this far, it is that while LLM results are certainly valuable, the generation results of LLMs can be much more valuable when they are evaluated by a rule-based system, as once this is done, it is easier for humans to have trust in such results. This is a theme of much of my subsequent work on LLMs: I argued this point in my <a href="/al-folio/publications/#Kang2023lg">GI workshop position paper</a>, and explicitly made this a central theme of my <a href="/al-folio/publications/#kang2023explainable">Automatic Scientific Debugging</a>.</p>

<h3 id="footnotes">Footnotes</h3>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1">
      <p>In <a href="https://dl.acm.org/doi/10.1145/2931037.2931051">prior work</a> on fault localization, most developers reported that they would be satisfied with an FL tool with an accuracy of ca. 90%, so it is feasible that developers would be satisfied with the precision of <code class="language-plaintext highlighter-rouge">LIBRO</code>. <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name></name></author><category term="academia" /><category term="LLM" /><category term="test_generation" /><summary type="html"><![CDATA[An explanation of my ICSE'23 work, and perspective one year after submitting the paper]]></summary></entry></feed>