ページセットに版を含められるようにして、スナップショットをページセットで実現すれば、型を統合できる。
スナップショットの使われ方(プレビューモードやタイムマシンモード)を考えると、同じページの版はひとつだけでいいので、スナップショットは版の集合でなくてもいい。
同名ページがあるので、サブセットWikiではページIDと版を特定する情報が必要。でもそれなら版の集合にしたほうが簡単になる?
必要な情報はさまざま †
プレビューモードで必要なのは、「ページID→書きかけ版」のハッシュテーブル。タイムマシンモードで必要なのは、「ページID→日付」のハッシュテーブル。または「ページID→当時の版」のハッシュテーブル。サブセットWikiで必要なのは、ページIDの集合。- ページ/履歴は、同じページIDに結び付く版の集合。
版(ページオブジェクト)からページIDを得られるので、プレビューもタイムマシンも「版の集合」だけでいい。2つは統合できる。
サブセットWikiの場合は統合できなそう †
サブセットWikiで使うページ名も、版(ページオブジェクト)から得られるけど、ページ名は同名ページも複数含むので、そのうちのいずれかの版だけを使うことになる。どの版を使うか?というか、版を参照せずに作れるのが利点。でもページ名から版を得ることはできるし、版からページ名を得ることもできる。
サブセットWikiを作る検索はページIDを対象にしなければならない。ページ名は同じでもページIDが異なれば内容も異なるので。
ページセットはページ名ではなく、ページIDのセットでなければならない。
プレビューやタイムマシンで使うハッシュテーブルのキー側だけの集合。