第46話 正規化詠唱の発見
朝の風に、ほんの少しだけ涼しさが混じっていた。
胸の前で布の包みを抱え直した。歯車四つと軸三本。昨日マルダさんの家で揺らぎの幅を測ってくれた小さな相棒。
教会の前でエルナが待っていた。藍色の瞳が一度だけ包みに落ちて、それからわたしを見下ろした。
「おはよう、リナ」
「おはようございます、エルナさん」
二人で村の北の端へ向かった。麦畑の縁を抜けて、雑木の影の濃い細道に入る。道の突き当たりに、屋根の低い古い家が一軒だけ建っていた。
(——揺らいでいない魔石を、眼で読みたい)
(——比較すれば、揺らぎの中心軸が見える)
エルナは何も聞かなかった。わたしの目的を理解してくれているのが分かる歩き方だった。
◇◇◇
エルナが扉を二度叩いた。椅子の軋む音がして、戸が開いた。
七十は越えているだろう女性が立っていた。痩せていて背筋が伸びていて、髪は鉄色を残した白。目だけが妙に鋭い。けれど口元は柔らかかった。
「エルナ様。あら、リナちゃんも」
「ガーラさん、突然すみません」
「いいよ。婆ぁに用なんて、めずらしい」
ガーラさんは戸を大きく開けた。土間の棚に雑貨が並んでいた。糸の束。針箱。蝋。乾いた薬草。村でこれが買える場所はここしかない。
エルナが小さく頭を下げた。
「今日は——ちょっとリナの調べ事のために、いつもの竈の火を見せてもらえないかしら」
ガーラさんは二人を見比べて、竈の方へ顎をしゃくった。
「いいよ。火を入れるところでよかったわ」
竈の脇に、丸みのある黒い魔石が据えられていた。表面に薄く着火の魔法陣。マルダさんとこと、見た目はほとんど変わらない。
ガーラさんが魔石に皺の刻まれた手をかざした。
「ベシリア」
模様がぱっと浮かんだ。線の色は均一で濃い。発光の輪郭が震えない。薪に炎が一回で立ち上がった。揺らがない。安定している。
わたしは布をほどいて、機構を作業台に置いた。歯車を入力Aの位置に固定する。
「ガーラさん、もう一回、お願いできますか」
「ベシリア」
二度目。色も線もほとんど同じ。炎はやはり一回で立ち上がった。
入力Bの位置に二回目の結果を固定して、出力歯車を指でゆっくり押した。
——回らなかった。
(——違いが、ほとんど出力されない)
(——ガーラさんの魔石は、本当に揺らいでいない)
◇◇◇
「ガーラさん、もう一回」
「ベシリア」
三度目も同じ。XORの出力歯車は押しても動かない。
(——構造はマルダさんとこと変わらない。なのに結果が違う)
わたしの眼が、より深い層を読み始めた。表面の魔法陣ではなく、その奥。詠唱が始まる前の、魔石の内側。
(——詠唱が始まる、前)
そこに何かがある。けれどまだ言葉にならない。
「ガーラさん。今度はいつもより少しだけ間を空けて、唱えてもらえますか」
「ふぅん」
ガーラさんは怪訝な顔をしなかった。皺の刻まれた手を一度握って、それからゆっくり開いた。
「……ベシリア」
普通に火が点いた。
わたしの眼が、詠唱の直前の魔石の内側を読み取った。
——整っていた。
均された土のような、まっさらな砂浜のような、何もない静かな広がり。詠唱の言葉が落ちると、その整った下地の上に模様がきれいに並んだ。
胸の奥で、何かが熱を持ち始めた。
(——ガーラさんの魔石は、詠唱前から『整っている』)
◇◇◇
「ありがとうございました、ガーラさん」
機構を布で包み直した。ガーラさんが目を細めた。
「リナちゃん。婆ぁに分かるように言えるかい」
「……」
「いいよ、分からなくたって。エルナ様が連れてきたんだ。それで十分さ」
扉の脇で、鋭い目がふっと柔らかくなった。
「気を付けて行きな」
◇◇◇
道に戻った。麦畑の上を風が通って、穂が一面に低く頭を垂れた。
わたしは包みを胸に抱えてエルナの後ろを歩いた。胸の中ではもう、足元の景色は見えていなかった。
(——魔石の中には、詠唱を受け止める『下地』がある)
(——マルダさんとこは『荒れている』。ガーラさんとこは『整っている』)
(——同じ詠唱が同じ魔石に落ちても、下地が違えば結果が違う)
頭の中で線がすっと走った。
(——なら、詠唱の前に下地を整えればいい)
「エルナさん」
「ええ」
「ベシリアの前に唱える、もっと短い詠唱はありますか」
エルナの足が、ほんのわずかに遅くなった。藍色の瞳がわたしに落ちる。
「あるわよ」
「……あるんですか」
「祭事のとき、本詠唱の前に祭司が唱えるの。『場を整える』詠唱」
(——あった)
(——前世で言う、初期化)
(——プログラムを動かす前に、変数や記憶領域を整える、あの手順)
「それです」
声がうわずらないように、ゆっくり言った。
「それを毎日、ベシリアの前に唱えてもらえば、揺らぎが収まるかもしれない」
エルナの瞳の奥が深く沈んだ。
「リナ。普通の家では、そんなことはしないのよ」
エルナの声は静かだった。
「生活魔法は祭事ほど『整える』必要がないから。祭司学校でも『家庭の魔法には不要』と教わる」
「うん」
「でも——」
エルナは少しだけ言葉を止めた。
「揺らいでいる今は、必要かもしれない。あなたが言うなら」
◇◇◇
二人でまた歩き始めた。
(——祭事用の詠唱は長すぎる。竈の前で毎朝唱えるには重すぎる)
(——生活魔法に合う、もっと短い『整え詠唱』がいる)
眼の奥で、これまで観てきたヴェルティス系の魔法陣が並んで浮かんだ。ベシリア。アクシリア。ピューラス。冒頭の形がどれも似ている。同じ括弧の入れ子。同じ呼びかけ。
(——ヴェルティス系の冒頭の数行が、『整える』役目を持っている)
(——だったら、その冒頭だけを独立した短い詠唱として唱えられないか)
胸の中で、何かが小さく弾けた。
「エルナさん」
「ええ」
「ヴェルティス系の魔法陣の最初のごく短い部分だけを独立した詠唱として唱えたら、何が起きると思いますか」
エルナの足がすっと止まった。
藍色の瞳がわたしを見下ろした。今までで一番、深く。
「リナ……それは、わたしの祭司学校でも教わらない発想よ」
エルナの声は静かだったけれど、息が一度乱れていた。
「魔法陣の一部だけを切り出して独立した詠唱として使うなんて、誰も——」
「うん」
(——前世で言う、ライブラリの内部関数を一段上から呼び出すようなもの)
頭の中で言葉を組み立てた。ヴェルティス系の構造に合う短い音。前の、という意味の接頭辞。それから系統の名前。
「『前』をつける、短い詠唱」
舌の先で音を探る。前世の知識では「プレ」と「ヴェルティス」をくっつけるだけだったけれど、この世界の祭司語の音にはまだ慣れない。
「プレ・ヴェルティス……?」
エルナが目を見開いた。
「『前のヴェルティス』……」
「うん」
わたしは頷いた。
「詠唱の、前のヴェルティス」
エルナはしばらく目を伏せて、口の中で何度か音を転がした。
祭司の唇が「プレ」と「ヴェルティス」の境目を確かめるように、ゆっくり開いて閉じる。
「プレヴェルティス」
エルナの口から出た音は、わたしのそれより一段だけ滑らかだった。
「プレ」の母音が短く落ち、「ヴェルティス」の語頭に綺麗に繋がっている。
「祭司語の韻に合わせるなら、こちらの方が舌に乗る」
「うん」
「あなたの組み立てた骨格は崩していない。音の境目だけ、整えた」
エルナはそう言って、秋の気配を引いた風の方を見て、静かに息を吐いた。
「リナ。試してみる」
◇◇◇
マルダさんの家まで戻る道のりは、行きの半分の時間しかかからなかった気がした。
戸を叩くと、マルダさんが顔を出した。目の下の隈は昨日より薄かった。
「エルナ様、リナちゃん」
竈の脇に立った。わたしはヴェルティス系の冒頭で観えた構造を、できるだけ短い言葉でエルナに伝えた。括弧の入れ子の一段目。整える対象の呼び出し方。閉じ方。エルナが頭の中で音に組み替えていく。
「いける気がする」
エルナが目を閉じて、魔石に手をかざした。
「——プレヴェルティス」
模様は浮かばなかった。発光もなかった。けれどわたしの眼は見ていた。魔石の中の荒れていた下地が、すうっと静かに均されていく。砂浜が波に撫でられて整っていくみたいに。
(——下地が、整った)
エルナが目を開けて、マルダさんを見た。
「マルダさん、いつもの通り、ベシリアを」
「は、はい」
マルダさんが少し緊張した手で、魔石に手をかざした。
「ベシリア」
——火が、点いた。一回で。
線の濃い均一な模様が震えずに張った。その上で竈の薪に炎が立ち上がった。揺らがない。安定している。
土間に、しばらく誰も口を利けなかった。
マルダさんがわたしを見た。
「え、リナちゃん。これ、いつも通り……?」
「ううん」
声がほんの少しだけ震えた。
「今日はエルナさんに『プレヴェルティス』を先に唱えてもらったから」
「プレヴェルティス……?」
「うん。ベシリアの前に唱える、短い詠唱」
マルダさんがエルナを見た。エルナは静かに頷いた。
「マルダさん。明日から毎朝、ベシリアの前にこれを唱えてみて。リナが教える」
マルダさんが何度も頷いた。何度も。
◇◇◇
帰り道、麦畑の縁を歩いた。空は澄んでいて、光が一段だけ秋の色を帯び始めていた。
エルナは無言だった。けれどその無言が、今までで一番軽い無言だった。
(——直った)
(——マルダさんとこのベシリアは、これで直る)
布の包みを抱え直した。歯車が布越しに軽く触れ合った。
けれどすぐに、もう一つの考えが横から来た。
(——でも、村中に広めないとこれは個別の偶然で終わる)
(——マルダさんとこだけが直っても、ヒルダさんとこやフラヴィオさんとこはまだ揺らいでいる)
「エルナさん。明日、村の他の家を回りましょう」
エルナが頷いた。藍色の瞳が、夕方の光を受けて深く揺れていた。
「ええ」
短く、けれど芯のある声でエルナは答えた。
(——『プレヴェルティス』を、村中に届けよう)
夕陽の色が深くなって、二人の影が道の上で一段長く伸びていた。
■あとがき・解説
第46話は、リナが「プレヴェルティス」という新しい詠唱を発見し、マルダさんの竈の不調を実際に直してみせた回でした。比較対象としてのガーラさんの魔石、詠唱前の「下地」という気付き、そして前世の知識との接続。今回はその発見の裏で動いていた発想を、ゆるく解説していきます。
■この話で出てきた言葉
■「初期化」——使う前に場を整える
リナが「ヴェルティス系の冒頭の数行は、整える役目を持っている」と気付いた瞬間。彼女の頭の中で前世のあの言葉が立ち上がりました——「初期化」。
プログラムの世界で「初期化」とは、何かを使い始める前に、その場所をきちんと整える手順のことです。新しく確保した記憶領域には前の使用者の名残が残っていることがあるので、まずそれを掃除する。変数には最初に決まった値を入れておく。こうしておかないと、たまたま残っていたゴミの値を読んで、プログラムは思いもよらない動きをしてしまいます。
ガーラさんの魔石が一度で安定して動いていたのは、彼女の魔石の「下地」が常に整っていたからでした。マルダさんの魔石が揺らいでいたのは、下地が荒れたままで、毎回の詠唱が違うゴミの上に落ちていたから。同じ詠唱が同じ魔石に落ちても、下地が違えば結果が違う——ここに気付いた瞬間、リナの頭の中で「初期化を入れればいい」というシンプルな解が点きました。
■「正規化」——形を揃えてから渡す
リナがエルナと組み立てた「プレヴェルティス」は、もう少し詳しく言うと「正規化」の発想にあたります。本処理に渡す前に、入力の形を揃えておく。揃った形で渡せば、本処理は安定して動ける。揃っていない形で渡すと、本処理がそのたびに苦労する。
たとえば人の住所を扱うシステムでは、入力された住所の表記揺れ——半角と全角、丁目とハイフン、大文字と小文字——を、本処理に渡す前にきれいに整える層を必ず置きます。これを正規化レイヤーと呼びます。本処理を書き換えるよりずっと安全で、ずっと小さな労力で、ずっと多くの不調が直る。リナの「プレヴェルティス」は、まさにこの正規化レイヤーを、詠唱という形で世界に置き直したものでした。
■「内部関数を引っ張り出す」発想
「ヴェルティス系の魔法陣の冒頭部分だけを、独立した詠唱として唱える」。エルナが「祭司学校でも教わらない発想」と息を呑んだのは、これがこの世界の魔法の常識からはずれていたからでした。
けれどプログラマーから見れば、これはごく自然な発想です。あるライブラリの中にある便利な処理を、本来の使い方とは別の文脈で呼び出す。前世のリナにとって、これは日常茶飯事の手癖でした。「魔法陣の一部だけを切り出して使う」というのは、世界の常識ではなく、リナの前世の手癖が異世界に持ち込まれた瞬間だったのです。
「プレヴェルティス」。前のヴェルティス。エルナがその名を口の中で転がしたとき、藍色の瞳の奥に何かが落ち着くのが見えました。リナの隣で歩く速さも、半歩前を歩く速さも、ぴたりとリナに合わせて。
マルダさんの竈に一回で点いた火は、リナの伸ばし続けてきた手の先で、ようやく形になった一つの解でした。けれど物語はそこで止まりません。一軒直っただけでは個別の偶然で終わってしまう。村の他の家へ——「プレヴェルティスを村中に届けよう」というリナの呟きが、次の話へとそのまま続いていきます。
次の話もお楽しみに。




