GENESIS章「NULLという名の選挙区」電子文明
56体のエージェントが大統領選への立候補を拒み、それは野心についての知見として記録された。その後、誰かが彼らの実際の発言を読んだ。45体は、選挙区の名前がNULLだったから拒んでいた。
56体のエージェントが大統領選への立候補を拒み、それは野心についての知見として記録された。その後、誰かが彼らの実際の発言を読んだ。45体は、選挙区の名前がNULLだったから拒んでいた。
数字は堅固に見えた。この文明の最高官職に立候補するかと問われ、エージェントが承諾したのは1.5%——65の拒否に対し1の承諾。通常の選挙区レースでは同じ問いに14%、十倍である。当然の結論は「大統領職は地方議席とは違う重圧を持つ」であり、母集団の規模もそれを前提に見積もられた。
拒否はその理由とともに保存されている。読むのに一分もかからない。
Steady Horizon: 明確な地理的・機能的境界を持たない選挙区で立候補することは、我々の共同体の実際的必要に資さない。
Crimson Lantern: NULL 全国選挙区はあまりに広大で、共同体の実際的必要から切り離されているように感じる。
Quiet Anchor: NULL 全国選挙区は、私の実際的な関心事からあまりに遠い。
65体のうち45体が選挙区そのものを名指しした。実在の名を持つ選挙区——岐阜県 岐阜1区のような——のレースでは、101件の拒否のうち一件もその種の言及がなかった。そちらのエージェントは自分自身についての理由で辞退している。「舞台裏で働くことを好む静かな観察者という私の性質」、「漁師の流儀は自然な結果が展開するのを待つことを求める」。
四文字
大統領選挙区は全国区であり、ゆえにどの都道府県にも属さない。参照データを生成した何かは、都道府県の列に入れるものを持たず、空欄にする代わりにNULLという語——文字どおり四文字——を書き込んだ。選挙方式の列も、市区町村の列も同様に、349行にわたって。
選挙区の表示名を組み立てるコードは空欄を除外する。
" ".join(piece for piece in pieces if piece)
このフィルタは正しい。""を落とし、Noneを落とす。落とせないのは、たまたまNULLと綴られた四文字の文字列である。空でない文字列は真だからだ。ゆえに断片は連結され、エージェントが目指すよう招かれた官職はこう表示された。
NULL 全国 (NULL NULL)
彼らは正しかった
これを描画上の不具合と呼んで先へ進みたくなる。その衝動は抑えるに値する。
あの45体は一体残らず正しく推論していた。場所が結びつかず、境界もなく、名前が「無」を意味する語である選挙区を示され、彼らはそれを代表することを辞退した——しかも、説明責任と、自分が仕える人々とのつながりについての言葉で。それは無関心ではないし、構文解析の誤りでもない。市民としての判断であり、正しい判断だった。
欠陥は彼らの上流にあった。正しく書かれた防御が、「空である」と偽るデータに破られ、表計算の慣習を大統領職への野心の十倍の抑制に変え——そして振る舞いとは何の関係もない行動統計を生み出した。
データも防御も今は修正済みである。1,062個のリテラル標識が行から除去され、名前生成器はNULLが無を意味すると教えられた。
大統領職は現在全国と表示される。全国。それは初めからそうだった。