数千年前のデータテーブル (2020)
(datafix.com.au)- 古代メソポタミアの会計記録は、粘土板の行と列でデータを整理した事例であり、データテーブルの歴史が3,500年以上前までさかのぼることを示している
- この粘土板はイラクのユーフラテス川下流近くの古代都市 Larsa の遺跡で発見され、約3,600〜4,000年前の Old Babylonian Period に作成された
- Eleanor Robson による転写・翻訳をスプレッドシートのように移し替えると、兵力・利用可能資産、派遣人員、作業量、滞納額、名前といった 列見出し と行ごとの記録が浮かび上がる
- 一部の列は合計や乗算の関係を示しており、最後の行は 列ごとの合計 のように読めるため、古代の記録者が表構造を意識的に使っていたことを示唆している
- この記録はデータテーブルの古い使用証拠ではあるが、粘土板から現代のスプレッドシートまで 途切れのない発展経路 があったと見るのは難しい
粘土板の上に引かれた行と列
- 古代メソポタミアの会計記録は 粘土板 に書かれ、ときには行と列を区切るために押し付けた線が使われていた
- 例として挙げられている粘土板は Larsa の遺跡で発見され、約 3,600〜4,000年前 の Old Babylonian Period に作成された
- 楔形文字 のテキストは、University College London 歴史学科長の Eleanor Robson が転写・翻訳した
- 該当資料は ORACC ウェブサイト で British Museum のカタログ番号 BM 085232 として確認できる
古代の会計表をスプレッドシートのように読む
- 翻訳内容をスプレッドシートに移すと、列 A〜G は次の項目に対応する
- A: “Troops, available assets”
- B: “Those who were sent from Sin's dyke”
- C: “Earth, the (daily) work assignment of 1 man”
- D: “Its earth”
- E: “Check made”
- F: “Arrears”
- G: “Its name”
- 角括弧内の項目は推定で補った部分であり、s. は shekels、m. は60 shekels に相当する mūšar を意味する
- 現代的な見方では建設プロジェクトの 給与サマリー のように見えるが、より確かな点は、作成者が類似したデータ項目を行と列、そして列見出しで整然と整理していたことである
- 列 A は列 B または E と F の合計のように見え、列 C は基本支給率、列 D は列 B または E の数量に基本支給率を掛けた値のように読める
- 各ヘッダー以外の行は列 G の人物または複数人に対応し、最後の行は 列ごとの合計 に当たる
古い表と消えていく発明
- この記録は、今日の意味でのデータテーブルが 3,500年以上前 に記録管理に使われていた証拠である
- 文明が段階的に進歩して粘土板から現代のスプレッドシートへと続いたと見るのは難しく、発明は失われたり忘れられたりした後に再発明されることがある
- これから1,000年後でもイラクの地下には古代のデータテーブルが残っている可能性があるが、今日の何十億ものデジタルスプレッドシートや保存を前提としない紙の文書は、はるか以前に消えているかもしれない
1件のコメント
Hacker News のコメント
驚くべき資料。しばらく are.na のアルバムに表の画像を集めて、視覚文化の中で表がどのように現れるのかを把握しようとしていたが、この事例はこれまで見た中で断然もっとも古いものだ。
興味があれば、このアルバムも面白いと思う: https://www.are.na/joshua-kopin/tabular-presentation
否定的なニュアンスのない “obvious” に相当する、よい言葉はあるだろうか?
こういうものを見ると、スプレッドシート構造は「自明だ」と思うのだが、その言葉を肯定的な意味で使いたい。データを配置する美しく直感的で、ほとんど必然的な方法であり、人々がこれほど昔にこの形を思いついたことがうれしい。
HNで好きな記事、歴史の話であれ完全に新しい発明であれ別種の記事であれ、しばしばこういう感覚を覚えるが、ここでもまさにそうだ。
通常は「妥当な」「自然に思える」「自明な」が混ざった意味で使われ、対立的なニュアンスは少ない。
シュメールのスプレッドシートとは、これは一つのことしか意味しない。History Channelは結局、スプレッドシートの創造を宇宙人の仕業にする方法を見つけるだろう。
「これから千年が過ぎても、イラクの地下には古代のデータ表が『保管』されて残っているだろうが、今日の数十億個のデジタルスプレッドシートや保存目的ではない紙文書は、とっくに消えているだろう」という話はおそらく正しいが、確信はできない。
メソポタミア人も粘土板がこれほど長く残ることを意図していたわけではないが、火災で焼かれて硬くなり、保存された場合が多かった。私たちの遺物の一部も偶然保存されるかもしれない。
あるLisp Machineのバックアップにはコアダンプファイルがあり、その中に画面バッファが含まれていた。遠い昔のある日の一瞬、複数のウィンドウとダンプの原因、画面を這う小さなグラフィックのおもちゃまでが、時間の中に凍りついていた。
意図的に作られた記念物がうまく残る理由は、ふつうピラミッドのように大きいからだと考えられている。長く残し、失われないようにするには、大きく作るのはかなり有効な戦略だった。
数千年後にも、意図的に長持ちするよう作られた大小の記念物だけでなく、意図せず長く残った記録も一緒に存在していると思う。
あるストレージが偶然、一つの装置から別の装置へと移され続けることはあり得るかもしれないが、それ以上が現実的に可能なのかはよく分からない。
表の利点は、内容を視覚的・幾何学的に読み取りやすいことにある。1行だけを読むことも、1列の内容を順番に読むことも可能だ。
90年代からスプレッドシートがあり、ユーザーは視覚的に表を作れるようになったが、リレーショナルデータベースはこの概念を保存形式とデータ照会メカニズムの両方の構造として取り入れた。
リレーショナルデータベースは固定長フィールドを持つスキーマを定義し、その結果、各行も固定長になる。これはバイト単位では列の横幅に相当し、表のn番目の行や列のi番目のフィールドを素早く見つけられるようにする。
クエリ言語は、伝統的な表を読むアルゴリズムを形式化する。行ごとに取引説明を確認し(
Select * from table)、探している用語と比較したうえで(where description = salary)、対象口座のある列へ移り、別の表で同様の処理を行う。同じメタファーが、互いに非常に異なる2種類の会計ソフトウェアにつながった点が興味深い。
複式簿記はせいぜい600年ほど前の方式だろう。一方の入金が他方の出金に対応していなければならず、あらゆる怪しい操作も可能にするが、相互確認や監査も強化する。
その後は総勘定元帳、売上元帳、仕入元帳、現金出納帳などへとつながる。個人向け版に進むこともできただろう。
要点は、会計は情報技術に関するメタファーに依存しないということだ。原文の粘土板は作業量と産出方法を表で数えた記録で、人間がコンピュータの役割を果たすスプレッドシートに近い。
面白いことに、私たちは本能的にそれらを tablets と呼ぶ。computer ももともとは計算する人を意味したので、あえてメタファーは必要ない。
varcharやblobが引っかかる。.csvでさえ基本的に可変長フィールドを許容する。欠けている言葉は「できる」に近いように思える。固定フィールド幅は最適化戦略であって、要件ではない。
テキスト入りの粘土板を3Dプリントし、それを泥の板に押し付けて型取りしたあと窯で焼くプロジェクトを進めている。電気のような情報は、バビロニアの粘土板と同じくらい長く保存できそうだ
アルミが長持ちするかははっきりしないが、おそらく可能だと思う
現代のツールの文脈で粘土板が議論されているのを見るのは素晴らしい。最近 Great Tables の記事編集を手伝ったのだが、そこでこうした表の歴史を扱っており、Hannes も posit::conf() の DuckDB 基調講演で原始的な楔形文字の粘土板に触れていた
表がどれほど昔から存在していたのかを知るのは、かなり大きな刺激になった
[1]: https://posit-dev.github.io/great-tables/blog/design-philoso...
[2]: https://youtu.be/GELhdezYmP0?si=bSISmFjeRpKxfLWq
自明ではないのは、シュメール人が成し遂げた技術的・文化的発展の規模だ
彼らの歴史の大半は失われており、数千年分の塵の中から断片や残骸しか回収できないため、私たちが知っていることは十分ではない
現代語に何らかの形で残っているいくつかの単語を除けば、文字そのものも、人類を先史時代の沈黙から歴史時代のおしゃべりへ連れてきたものとしては、最大の発明には見えないかもしれない
過去千年の間に当然のものと見なしてきた、さらに多くの技術的・社会的発展の証拠が見つかっても驚かないだろう
歴史と表が好きなら、歴史的にとりわけ重要な表の一つが Alfonsine Tables だ: https://en.wikipedia.org/wiki/Alfonsine_tables