ページセットに版を含められるようにして、スナップショットをページセットで実現すれば、型を統合できる。

スナップショットの使われ方(プレビューモードやタイムマシンモード)を考えると、同じページの版はひとつだけでいいので、スナップショットは版の集合でなくてもいい。

同名ページがあるので、サブセットWikiではページIDと版を特定する情報が必要。でもそれなら版の集合にしたほうが簡単になる?

*** 必要な情報はさまざま [#w523e2f6]
- プレビューモードで必要なのは、「ページID→書きかけ版」のハッシュテーブル。
- タイムマシンモードで必要なのは、「ページID→日付」のハッシュテーブル。または「ページID→当時の版」のハッシュテーブル。
- サブセットWikiで必要なのは、%%ページ名%%ページIDの集合。
- %%プレビューモードで必要なのは、「ページID→書きかけ版」のハッシュテーブル。%%
- %%タイムマシンモードで必要なのは、「ページID→日付」のハッシュテーブル。または「ページID→当時の版」のハッシュテーブル。%%
- %%サブセットWikiで必要なのは、ページIDの集合。%%
- ページ/履歴は、同じページIDに結び付く版の集合。

版(ページオブジェクト)からページIDを得られるので、プレビューもタイムマシンも「版の集合」だけでいい。2つは統合できる。

*** サブセットWikiの場合は統合できなそう [#e7ba3ac4]
サブセットWikiで使うページ名も、版(ページオブジェクト)から得られるけど、ページ名は同名ページも複数含むので、そのうちのいずれかの版だけを使うことになる。どの版を使うか?というか、版を参照せずに作れるのが利点。でもページ名から版を得ることはできるし、版からページ名を得ることもできる。

''サブセットWikiを作る検索はページIDを対象にしなければならない。''ページ名は同じでもページIDが異なれば内容も異なるので。
ページセットはページ名ではなく、ページIDのセットでなければならない。
プレビューやタイムマシンで使うハッシュテーブルのキー側だけの集合。
*** スナップショットは名称を変えて残す [#y8bb1298]
- スナップショット → 版セット(版集合)
版IDの集合か、ページオブジェクトの集合。
プレビューモードやタイムマシンモードで使用する。
- ページセットはそのまま
ページセットは同名ページのうちのひとつにあたるページのセットなので「ページセット」。ページIDの集合。
検索結果や、サブセットWikiで使用する。