EnigmaStudioと汎用検索が進めた、単語検索ツールの設計思想

ワードサーチの未来についてのフライパン職人氏の怪文書が出ましたね!


ニコニコしちゃうね。

「その時代における最先端の謎を作ろう」

謎制作の妄想未来予想図/これからの謎解きの話をしよう

とか良すぎる。

記事の内容を読んでみるリアクションnoteに需要がありそうだけど、
それはまた別の機会に。

この文章に触発されて、自分も何か書きたくなったので、別の怪文書を用意することにしました。


この記事は、自分の脳内にある謎制作ツールの設計思想の流れを辿るもので、単語検索ツールの発展について触れていますますが、
個々の単語検索ツールの機能やアルゴリズムの話には触れていません。(書くとしたら別記事になります)
また、ワードサーチの歴史や正史がどうかなどについて述べるものでもないです。(こっちも余力があれば別記事で調べて書きます)


従来型のワードサーチツール

EnigmaStudio以前に自分が公開していた単語検索ツールや、
世の中に公開されている単語検索ツール、サービスについて、

いろいろなツール

ツールと辞書が紐づいた形で世に出ていました。
「何文字目が◯である◯文字の単語」といったような基本の検索
手に入りやすい辞書と言えば豚辞書でしたし、
豚辞書の使い勝手に不満があった場合はサイト独自に辞書を用意したり、
単語検索でできること自体にそれほど差はなく、インタフェースの差異や収録単語などがそれぞれのツールの個性や使い勝手の違いとなっていました。

ツールが内部的に持っている辞書

複数単語のクロスワード検索やアナグラム検索、
謎解きでの単語検索の決定版である、「謎解き単語検索β」など、
特殊なアルゴリズムを持つツールや、インタフェースに優れたツールが増えたことで、

「辞書」「検索ツール」が分離して語られる機会が増え、
「この検索ツール(アナグラム|複数クロスワード|etc)をこの辞書(英語|ローマ字|一般語|etc)で使いたい」という声も要望としてよく聞くようになりました。
また、一般語辞書が作られ、謎解き検索βに実装されたことで、ツール中で、数千、数万語単位の辞書を複数選択でき、「辞書を選ぶ」という行為も一般的になりました。

しかしながら、辞書を複数選択できるようになったところで、
各ツールが個別の辞書を持っており、また、一般語辞書にメンテナンスを加えるたびにすべてのツールにアプデを加える必要があったりするなどの問題も生まれ、
ツールと辞書を分離したプラットフォームを作る構想が生まれました。

EnigmaStudioの誕生

このツイートから半年後に原型が作られ、1年後にリリースされました。

EnigmaStudio

今までの単語検索ツールがツールの検索の段階で辞書の選択があったのに対して、
辞書の読み込みを独立させようという思想で作られたのがEnigmaStudioです。
見た目上は辞書読み込みの一手間が増えただけで、そんなに変わらないですが、
設計上、「同じ辞書セットを複数のツールで使い回す」という辞書と検索ツールの分離、独立を果たすという目的がありました。

汎用検索

先ほどのツイートの翌日のDiscordでの会話より

無茶苦茶な妄想としてあった会話ですが、何度も妄想という名の怪文書構想という名の怪文書のやりとりを繰り返した結果、わんどが1日使えば原型ができあがるところまで仕様が詰められ、上記の発言から1年9ヶ月が経った23年10月に汎用検索の原型が完成しました。

汎用検索の図

汎用検索の詳細は別記事に任せるとして、単語検索の絞り込み規則と、変換規則からなるコマンドを組み合わせることで、
単語とその変換からなる組を検索することについて、今まで複雑な正規表現を書いたりプログラムを書いていたような検索をフォーム操作だけで実現できるようにしたものです。

いくつものツールの機能を一つに集約し、今まで個別のツールやプログラムを使い、全然別の検索として扱われていた検索をコマンドの組み合わせを変えることで実現できるようにしたものです。

これは、「検索ツール」「検索アルゴリズム」「入力インタフェース(コマンドの組)」に独立分離する試みで、単語検索の設計のフェースがまた一つ進みました。

複合コマンド

複合コマンド(図ではグループコマンド)

汎用検索によって、「コマンドを組み合わせていろいろな検索を作れる」という状態になりましたが、毎回コマンドを組み合わせるのは大変ですし、
実際によく使う組み合わせのレシピのようなものを作ったり、独自の入力フォームがないと、特化ツールと比べて使い勝手が悪くなってしまいます。
そこで、12月に複数のコマンドを組み合わせたものを呼び出せる複合コマンドの機能を実装し、漸く世に広める準備が出来ました。

「辞書」「検索アルゴリズム」「入力インタフェース(コマンドの組)」のうち、入力インタフェースを交換可能にするアップデートと言えます。

▲この記事の後半でたくさんの複合コマンドの解説が出てくるけど、「コマンドの組み合わせ方のやり方を覚えよう」だと大変なことになっていた。

ワードジェネレータ

様々なワードリストを呼び出し、様々な変換を行うことができる「ワードジェネレータ」も辞書呼び出しの代わりに使える汎用検索の部分機能となりました。
謎解きによく現れる題材は単語探しの対象になりがちなので、
検索によっては数万語の辞書より、数十語の題材を変換検索したい場面もあります。
ワードジェネレータはそういった際のコンパクトで機動性の高い辞書として使うことができます。

ここまでが2024年の年明け時点での、自作の単語検索ツールの最新の設計になっています。

辞書管理

ここからは未来の話です。

先ほど、ワードジェネレータに対して「機動性が高い」という表現をしましたが、EnigmaStudioは20ほどの辞書および様々なワードリストをサポートしていますが、「決まった辞書しか使えない」のと、「複数の辞書を組み合わせたり変換を掛けたり前処理を行ったりすることで使い勝手の良い辞書データを作って入力時や検索の途中で呼び出せるようになること」には、検索側の自由度が増した現在でも差があります。
2024年には何らかの手段で辞書管理の手段が入るような気がしています。

謎サジェスト機能

ここまでの内容で検索内容によって辞書を選んだり、コマンドを組み合わせたり、さらにコマンドを組み合わせたりすることができるようになりました。
これは、様々な謎を作るときの単語検索の手法をコマンドの組み合わせという統一フォーマットで表現できるということになります。
一つのキーワードから複数のグループコマンドを生成し、呼び出したり、
ChatGPTのAPIには自然言語からの関数呼び出しの機能を用いて、自然言語での単語検索指示も行えるようにしたりとインタフェースもさらに進化することでしょう。

これも2022年1月12日に話していた。

終わりに

単語検索の単機能のツールや、プログラムを書いて単語検索をする人はいても、この規模の汎用化に踏み込んだ人はいなくて、変なものを作ったなあ。という感じです。
ある日冷静になって、「なんでこの機能がツール化されて手元にあるんだろう」開発者本人なのに思ってしまった。

▲突然冷静になるわんど

「単語検索の最先端」を名乗るのは烏滸がましいですが、
需要の割に高度で、「単語検索のノーコードツール」は自分とフライパン職人がいなかったら、当分?ずっと?この世になかったものだなあと思います。世の中、意外とそういうのあって、単語検索界でわかりやすい例だと、「豚辞書」とかがそう。

豚辞書が30年経っても使われているように、
汎用検索もツールが動かなくなった後も、
設計とマニュアルが未来に掘り起こされて再実装される、みたいなことが起こるといいですね。


以上、単語検索の設計思想についてでした。

この記事が気に入ったらサポートをしてみませんか?