物心ついたときから地理に取り憑かれている——壁に地図を貼るタイプ、首都を全部そらで言えるタイプだ。この関心は、これまで持ったほかのほとんどの関心を生き延びてきた。ものがどこにあるかを知ることは、私にとって、より広い世界を視界の中に保つための方法なのだ。プロジェクトフォルダにまだ残っている最も古いアイデアの一つが、地理のアイデアだ——スクレイパーと、サイト。十年前から頭の中にある。
2015年ごろ、授業で何かを提出する必要があって、一緒でなければ意味をなさない小さなプロジェクトを二つ作った。Wikipedia から国の事実を引き出してファイルにする C# のスクレイパーと、そのファイルを読んで amCharts で地図の上に事実を描くフロントエンドだ。どちらも粗かった。だが動いたし、成績もついたし、成績のために作ったたいていのものと違って、アイデアは私のもとに残った。
プロジェクトそのものは、そのあとほぼフォルダの中で動かないままだった。そのアイデアのほうは、そうではなかった。何年ものあいだ、私はそれを頭の中で転がし続けた——開いて動き回れる世界まるごと、どの事実もどこか別の場所への扉になっている世界を。2025年の初めに、そのバージョンを本気で作りはじめた。今のコードは2015年のものとほとんど何も共有していない——アイデアは十年もの、実装はごく最近だ。その時間を越えて渡ってきたのは、それがどうなりうるかというイメージだった。
古いバージョンには、パイプラインと呼べるものがほとんどなかった。C# のスクレイパーは手で、一度だけ走り、JSON ファイルを吐き出す——それを走らせ直すものも、チェックするものも、何もなかった——そして私はそのファイルを GeoGeek に持ち込んでコミットしていた。私が統合レイヤーだったのだ。だから、作り直しの最初の決定の一つは、データはちゃんとしたプロジェクトでなければならない、というものだった。自分で動き、自分の出力をチェックし、公開するもの。サイトはただそれに依存すればよく、私はもう運び屋ではなくなる。
それが今の WikiGeo と GeoGeek だ——データエンジンと、それをほかのライブラリと同じようにインストールし、Wikipedia には決して触れないアプリ。WikiGeo は九言語版の Wikipedia を読み、その混沌を一貫したレコードに変える。
学校で地理に出会ったやり方は、暗記と静止した地図だった——覚えるべき首都のリスト、ラベルを貼るための印刷物。私はこの科目が退屈だと思ったことは一度もない。退屈なのは道具のほうだと思っていた。GeoGeek の背後にある賭けは、地理を楽しめるくらいインタラクティブにしても、それでもより多くを知って出てこられる、というものだ——探索することは、勉強することでもある。作り直しのどの選択も、一つの問いに戻ってきた。これは世界を、いじって楽しいものにするか、そうでなくするか。アプリに入ったものの大半は、私が使ったことのある何かへの小さないら立ちとして始まった。
地図アプリが国で止まるのが嫌いだった。フランスを眺めることはできても、その中を歩き回ることはできない。だから GeoGeek の地図は決して止まらない——世界、大陸、国、州、地区、どの層も本物のアドレスで、行き止まりはどこにもない——そして、GeoGeek がある地域のデータを持っていないところでは、その掘り下げの階層はそもそも存在しない。壊れたサブ地図もなければ、空のページもない。クイズは、ラベルを隠して時計を走らせただけの、その同じ地図だ——探索が記憶に変わる場所。
私はある場所の事実を、その場所のすぐ隣に置きたかったし、それがどこかへ通じてほしかった。国をクリックすると、地図の横にインフォボックスが開く——国旗、首都、人口、通貨、隣国、行政区分——そして、その中の隣国も行政区分も、それぞれがさらに奥へ入る道になっている。首都は、あなたが動くにつれて地図そのものの上に現れる。それは Wikipedia が記事の隅に置いているのと同じ種類のインフォボックスで、それはふさわしい。WikiGeo がそこから事実を抜き出し、GeoGeek がそれを、ただ読むのではなくクリックしてたどれるインフォボックスに戻す。
地球儀と平面地図が、いちばんはっきりした例だ。平面地図で走査し正確にクリックすること、そして地球儀を回してものの本当の大きさと、何が本当に何の隣にあるかを見ること——その両方をやってくれる道具を、私はどうしても見つけられなかった——だから探すのをやめて、両方を作った。二つのあいだをフェードでつなぎ、あなたが自分の位置を見失わないように。言語も同じだ。アプリは WikiGeo が読むのと同じ九言語で動き、あなたが打ち込む答えのところまでそうだ。自分のアプリの中で、国を「間違った」名前で呼んだせいで不正解にされるのは、出口を示されているようだった。要点は体験のほうだ。その下のデータは、それに仕えるためにある。
かつて私だった部分——スクレイパーを走らせ、JSON をざっと見て、コミットする——は、今は片づいている。WikiGeo は自分でクロールし直し、日付のついたスナップショットをすべて保持し、Wikipedia のページが形を変えてパーサーを壊すほどになると警報を鳴らす。それは「完成」と同じことではない。私はたいていの週、両方のリポジトリの中にいて、また一つの国の行政区分をつないだり、地図のまた一つの縁を削ったりしている。そこにいたいのだ。デモが geogeek.vercel.app で動いていて、プッシュのたびに再デプロイされる——いつも私が最後にコミットしたもの、粗いところも含めて全部だ。両方のリポジトリは公開されていて、データは自由に取っていい。私はこれらを、まず自分のために、そして同時にみんなのために作った。こういうプロジェクトは、中に入る人が増えるほど良くなると信じているからだ。地理が、暗記するリストではなく、歩き回れる場所であってほしいなら、一緒にやろう。
土台はできた。あとは建てるだけだ。