\subsection{Suodatinmoduulin toteutus (EM)} 
Suodatinmoduulin alkutoteutus oli helppo. Utiliteettifunktioformalismi
antoi mahdollisuuden toteuttaa ensin yksinkertainen pohja, jonka
p��lle utiliteettifunktioita voitiin rakentaa yksi kerrallaan. T�m�
mahdollisti suodattimen saattamisen toimintaan ja k�ytt�testaukseen jo
hyvin varhaisessa vaiheessa ohjelmointity�t�. Utiliteettifunktiojoukon
kasvaessa suodatin vain tarkentui.

Ohjelmiston uudelleensuunnittelun yhteydess� suodattimestakin alettiin
koodata yleisemp�� versiota, joka lis�si suodatinmalliin
utiliteettifunktioiden ja utiliteettifunktioketjujen kanssa hyvin
samanlaisen yleisen suodattimen ja suodatinketjun k�sitteen, mutta
t�m� j�tettiin ottamatta k�ytt��n liian suurina riskin�. 

\subsection*{Parannusehdotuksia}

\subsubsection*{Linkkien generointi}

T�ll� hetkell� linkkien kohteiksi valitaan ainoastaan kuvia, joilla on
yhteisi� instansseja valitun kuvan kanssa. Linkkej� kannattaisi
generoida muillakin perusteilla. Erityisesti pit�isi pysty�
tunnistamaan samat entiteetit eri rooleissa (tosin se ei ole niink��n
suodattimen ongelma). My�s pelk�st��n samoja ontologialuokkia
sis�lt�v�t kuvat tulisi ehdottomasti lis�t� linkattavien joukkoon.

Linkkien m��r�n kasvattamiseksi kannattaisi my�s harkita esimerkiksi
aikaisemmin l�pik�ytyjen kuvien linkkien ottamista mukaan (t�h�n
voitaisiin sitten tietysti liitt�� linkin generoivan kuvan
historiaet�isyytt� mittaava utiliteettifunktio)

\subsubsection*{Utiliteettifunktiot}

Ohjelmassa on jo kunnioitettava m��r� erilaisia utiliteettifunktioita,
mutta niit� voi aina keksi� lis��kin, esimerkiksi:

\begin{itemize}
\item Kuinka hyvin kuva sopii k�ytt�j�n aikaisempiin fasettivalintoihin
\item Demografiatietoihin perustuvat utiliteettifunktiot
\item Kuinka l�hell� kuva on kuvia, joita k�ytt�j� on aikaisemmin
katsonut
\end{itemize}


\subsubsection*{Utiliteettifunktioiden kertoimet}

Utiliteetin painotetun keskiarvon laskemisessa k�ytetyt kertoimia ei
ole viritetty. K�sin teht�v�n viritt�misen lis�ksi voisi olla hyvin
palkitsevaa kokeilla ainakin osittaista dynaamista kertointen
muodostusta j�rjestelm�ss�.  K�ytt�j�n profiiliin tallennettaisiin
valittujen kuvien lis�ksi seuratut linkit ja linkki� kohden jokaisen
eri utiliteettifunktion laskema utiliteetti.

Uusia linkkej� generoitaessa utiliteettifunktioiden painoja
muutettaisiin sitten dynaamisesti siten, ett� niit�
utiliteettifunktioita, joiden suositusta on aikaisemmin seurattu
(jotka ovat siis antaneet korkean utiliteetin k�ytt�j�n valitsemille
linkeille) painotetaan enemm�n kuin sellaisia, jotka ovat antaneet
seuratuille linkeille huonoja utiliteettiarvoja.

N�in j�rjestelm� mukautuisi huomattavasti paremmin k�ytt�j��n - jos
j�rjestelm� huomaa, ett� k�ytt�j�n mieltymykset eiv�t esimerkiksi
ollenkaan vastaa keskivertok�ytt�j��, huomioi j�rjestelm� v�hemm�n
yleisten suosituimmuusfunktioden arvoja.

Tietysti my�s koko j�rjestelm�n oletuspainoarvoja voitaisiin p�ivitt��
n�in dynaamisesti.

Toinen harkittava asia on, tarvitaanko kokonaisutiliteetin laskemiseen
yleens� muita operaattoreita kuin painotettua keskiarvoa. Joidenkin
utiliteettifunktioiden kohdalla esimerkiksi suora kertolasku tuntuisi
paremmalta vaihtoehdolta. Esimerkiksi jos linkki on jo n�hty, sen
utiliteetin pit�isi olla pieni riippumatta siit�, kuinka kiinnostava
se muuten on. Osaksi t�m� hoituu painottamisellakin, edellisess�
esimerkiss� jo-n�hty -utiliteettifunktion paino voidaan asettaa
suuremmaksi kuin kaikkien muiden yhteens�. T�llainen ratkaisu ei
kuitenkaan ole erityisen kaunis.
