• 追加された行はこの色です。
  • 削除された行はこの色です。

RIGHT:[[:t/データアクセス]]

*** データアクセスの一例 [#y43c5bbd]
+ ページセットを作る。
	+ 「全ページ」から検索などで集合を縮小。
+ ページセット内のページ1つずつにセレクターを適用。要素セットが得られる。
+ 得られた多数の要素を要素自身の評価で同一視、集計、ソート。
	+ 要素が行なうのはハッシュコード生成。その処理にパラメーターを与えて、同一ハッシュコードになる場合を増やしたり減らしたりできる。どんなパラメーターかは要素次第なので要素の具体的なクラスに依存することになる。
	+ 得られたハッシュコードを使って集計。
	+ ソートは要素が持つ評価関数で順序付け。
	+ 型が揃っていないときはどうなるか??
		+ ソートできない。
		+ ハッシュコードに渡すパラメーターを型別にしなければならない。
+ セレクターを使った後にデータコンテキストの処理。

*** 例えば、日付の集計をするには [#g885f15b]
+ 気になることを検索してページセットを作る。
+ 得られたページそれぞれにセレクターを適用。日付の集合を得る。
+ 日付で(それが書かれている)ページを分類。分類の粗さを1日/1ヵ月ごとにしたり、しきい値を複数設定して不規則な(任意の)期間ごとにまとめたり。
	+ 要素(日付要素)からページを得るには??
	ページ→要素セットのときに要素→ページセットも作っておかないといけない。
	ページ←→要素のマッピングはセレクター側でやるべき??
	+ 日付からハッシュコード取得。それをキーにしてDictionary作り。値側にはページ(かページのID)。
+ 分類別に含まれるページ数を数えて、(日付の示す)期間×ページ数の一覧表やグラフを作る。
+ 気になることが月別にどれだけあったかが分かる。

*** 例えば、検索結果の1日前を調べるには [#j6edaed3]
データアクセスで[[:t/1日前]]も実現したい。
例えば食事記録。体調が良くなった/悪くなったことを示すキーワードを検索してページセットを得る → セレクターで関連名に「1日前」を持つ''リンク''を抽出 → リンク先のページIDを得る(これを実現するには??) → ページIDからページを取得(この実現方法は??) → 得られたページにセレクターを適用して食品リストを抽出 → 1つのキーを持つDictionaryに集計 → Dictionaryをレンダリングできる要素に与える → 一覧表やグラフになる。

セレクターで年内の週数を示す要素(「第32週」など)を使って…体重が増えたことを示すキーワードを検索。得られたページセット内のページにセレクターを適用。得られた週数要素から得たハッシュコードをキーにして集計。集計結果のキー1つごと(分類1つごと)に対応する週数のセットを得て、それが書かれているページセットを得る。セレクターを使ってページセット内のページごとに含まれる食品リストを得る。ページセットごとに(ページごとではないのをどう実現するか??)、''リスト項目を''集計(同じ項目があればカウント+1)。できあがった週数ごと(ページセットごと)の集計結果をレンダリング可能な要素に与える。一覧表やグラフになる。

「第(\d+)週」はWiki上で定義できる要素。「タグ」と称して良い。
→ [[タグ]]


...