\section{Suodatinmoduuli (TR, EM)}
\label{filtermo}

Suodatinmoduulin tarkoituksena on nimensä mukaisesti suodattaa tietoa,
sekä järjestellä että arvottaa sen mielenkiintoarvon mukaan.

\subsection{Yleiskuvaus}
\label{filterYleis}

Suodatinmoduuli tarjoaa muille moduuleille mahdollisuuden mitata
erilaisten ontologiaresurssien hyödyllisyyttä, utiliteettia, sekä näiden
utiliteettien käytön resurssikokoelmien järjestämiseen ja
suodattamiseen. 

Resurssien utiliteettien laskemiseen tarjotaan useita erilaisia
yhdistettäviä utiliteettifunktioita, joista jokainen tarkastelee
resurssin hyödyllisyyttä yhdeltä rajatulta pohjalta. Resurssin koko
utiliteettina käytetään osautiliteettifunktioiden painotettua
keskiarvoa.

\begin{figure} 
\begin{center} 
\includegraphics[angle=90,width=0.8\textwidth]{filterUML.eps} 
\caption{ 
Suodatin-moduulin luokkakaavio
} 
\label{filterKaavio} 
\end{center} 
\end{figure} 

\subsection{Moduulin ulkoinen rajapinta}
\label{filterUlko}

Suodatin-moduulin rajapinta toimii välittäjänä metatietomoduulin ja
käyttöliittymän välillä. Rajapinnan muodostavat luokka Filter, joka
toteuttaa kaikki rajapintametodit, sekä palautustyyppiluokat
InterestingLink, InterestingImage ja InterestingOntologyClass, joista
kaksi viimeistä enkapsuloivat suoraan metadata-moduulin vastaavat
oliot ja ensimmäinen sisältää kaiken mielenkiintoisten linkkien
näyttämiseen tarvittavan informaation.

\subsection{Moduulin sisäinen rajapinta}
\label{filterSisä}

Moduulin toiminnan kannalta tärkeimmät operaatiot toteutetaan suoraan
ulkoisessa rajapintaluokassa Filterissä. Moduulin sisälle jäävät tämän
rajapinnan käyttämät erilaiset utiliteettifunktiot, sekä niistä
muodostettavat painotetut ketjut.

\subsection{Luokka Filter}

\label{filterFilter}
Tämä luokka etsii Image- ja OntologyClass-olioihin liittyvät mielenkiintoiset linkit eli InterestingLink-oliot ja järjestää UtilityFunction-olion tarjoaman utiliteetin mukaan. Lisäksi luokassa on myös metodeja kuvakokoelmien (eng. Collection) järjestämiseen ilman suodatusta ja OntologyClass-olioiden ja profiilien (Profile) leikkausjoukkojen laskemiseen.  

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private MuseumModel model}
MuseumModel-objekti, jota käytetään esimerkiksi kuvien ja fasetin juurien hakemiseen.

\subsubsection*{private UtilityFunction interestingLinkUtility} 
Utiliteettifunktio, jota käytetään utiliteetin laskemiseen InterestingLink-olioille.

\subsubsection*{private UtilityFunction interestingImageUtilityFunction}
Utiliteettifunktio, jota käytetään utiliteetin laskemiseen InterestingImage-olioille.

\subsubsection*{private UtilityFunction interestingOntologyClassUtilityFunction}
Utiliteettifunktio, jota käytetään utiliteetin laskemiseen InterestingOntologyClass-olioille.

\subsubsection*{public static final int DIRECT=0}
Vakio, jota käytetään metodikutsuissa kun halutaan solmun välittömät vanhemmat/lapset.

\subsubsection*{public static final int ALL=-1}
Vakio, jota käytetään metodikutsuissa kun halutaan solmun kaikki vanhemmat/lapset aina juureen/lehteen asti. 

\subsection*{Konstruktorit}
Tällä luokallla on kaksi konstruktoria.

\subsubsection*{public Filter(MuseumModel model)} 
Luo Filter-olion asettaen sen model-muuttujaan saadun MuseumModel-olion.

\subsubsection*{public Filter(MuseumModel model, UtilityFunction ilu, UtilityFunctio iiu, UtilityFunction ioc)}
Luo Filter-olion asettaen sen model-muuttujaan saadun MuseumModel-olion, interestingLinkUtilityFunction-muuttujaan saadun ilu-objektin, interestingImageUtilityFunction-muuttujaan saadun iiu-objektiin ja interestingOntologyClass-muuttujaan saadun iocu-objektin.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public Collection filterInterestingLinks(Vector interestingLinks, UtilityInformation ui, int max)} 
Järjestää InterestingLinkeistä koostuvan Vector-olion kiinnostavuuden mukaan käyttäen kutsujan InterestingLinkUtilityFunction-objektia.Palauttaa korkeintaan max kappaletta InterestingLink-olioita. 

\subsubsection*{public CollectiongetInterestingLinks(Id imageID, Profile profile, int max)}
Etsii annetun kuva (määritelty imageID:llä) linkit ja järjestää ne utiliteetin mukaan ja palauttaa niitä korkeintaan max kappaletta.

\subsubsection*{public Collection getInterestingLinks(Id imageID, Profile profile)}
Etsii annetun kuva (määritelty imageID:llä) linkit ja järjestää ne utiliteetin mukaan.

\subsubsection*{public Collection filterInterestingOntologyClasses(Vector interestingOntologyClasses,UtilityInformation ui, int max)}
Järjestää InterestingOntologyClasseista koostuva Vector-olion niiden kiinnostavuuden mukaan käyttäen utiliteettifunktiona kutsujan interestingOntologyClassUtilityFunction-muuttujaa.

\subsubsection*{public Collection filterInterestingOntologyClasses(Collection OntologyClasses, UtilityInformation ui, int max)}
Toimii muuten samoin kuin edellä mainittu samanniminen metodi, paitsi OntologyClass-oliot annetaan Vector-oliossa.

\subsubsection*{public Collection getFacetRoots(Profile profile,int max)}
Palauttaa annetun profiilin fasetin juuret kiinnostavuuden mukaan järjestettynä. Palauttaa enintään max kappaletta juuria.

\subsubsection*{public Collection getFacetRoots(Profile profile)}
Palauttaa annetun profiilin fasetin kaikki juuret kiinnostavuuden mukaan järjestettynä.
\subsubsection*{public Collection getFacetChildren(OntologyClass node,Profile profile)}
Palauttaa fasettisolmun lapset.

\subsubsection*{public Collection filterInterestingImages(Vector interestingImages,UtilityInformation ui,int max)}
Järjestää interestingImage-olioista koostuvan Vectorin niiden kiinnostuvuuden mukaan, käyttäen utiliteettifunktionaan kutsujan interestingImageUtilityFunction-muuttujaa.

\subsubsection*{public Collection filterImages(Collection images,UtilityInformation ui,int max)}
Järjestää saadun Image-olioista koostuvan Collectionin näiden kiinnostavuuden mukaan. Palauttaa enintään max kappaletta kuvia.

\subsubsection*{public Collection getDefaultImages(Profile profile, int max)}
Palauttaa kutsujalle oletuskuvat kiinnostavuuden mukaan järjestettynä. Palauttaa enintään max kappaletta kuvia.

\subsubsection*{public Collection getIntersectImages(OntologyClass ontologyClass,Profile profile)}
Palauttaa kuvat jotka liittyvät jokaiseen HiBrowse-valintaan.

\subsubsection*{public Collection getIntersectImages(OntologyClass ontologyClass,Profile profile, int max)}
Palauttaa kuvat jotka liittyvät jokaiseen HiBrowse-valintaan. Palauttaa kuvia enintään syvyydestä, jonka määrittelee parametri max.

\subsubsection*{public boolean setModel(MuseumModel model)}
Asettaa saadun MuseumModel-olion Filter-olion model-muuttujaksi.

\subsubsection*{public MuseumModel getModel()}
Palauttaa Filter-olion model-muuttujan. 


%--------------
\subsection{Luokka UtilityFunction}

\label{filterUtilityFunction}


\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public static final int MAXUTILITY=65536}
Vakio, joka määrittelee kaikkien utiliteettifunktioiden maksimiarvon.

\subsubsection*{public static final int MAXUTILITYSHIFT=16} 
Vakio, jota käytetään utiliteettifunktioiden arvojen muuntamiseen.

\subsection*{Konstruktorit}
Tällä luokallla ei ole konstruktoreita.



\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public int getUtility(OntologyResource or, UtilityInformation ui)} 
Palauttaa utiliteettifunktion arvon parametrina saadusta OntologyResource-oliosta.

\subsubsection*{public getUtility(InterestingLink il, UtilityInformation ui)}
Palauttaa utiliteettifunktion arvon parametrina saadusta InterestingLink-oliosta.

\subsubsection*{public getUtility(InterestingImage ii, UtilityInformation ui)}
Palauttaa utiliteettifunktion arvon parametrina saadusta InterestingImage-oliosta.

\subsubsection*{public getUtility(InterestingOntologyClass ioc, UtilityInformation ui)}
Palauttaa utiliteettifunktion arvon parametrina saadusta InterestingOntologyClass-oliosta.
%-----------------

\subsection{Luokka InterestingLink}

\label{filterInterestingImage}

\subsection*{Muuttujat}
Luokalla on neljä muuttujaa.

\subsubsection*{private int utility}
InterestingLink-olion utiliteetti.

\subsubsection*{private Image image}
Mielenkiintoiseen linkkiin liittyvä kuva.

\subsubsection*{private Vector properties}
InterestingLink-olion ominaisuudet.

\subsubsection*{private String linkname}
InterestingLink-olion nimi.

\subsection*{Konstruktorit}
Tällä luokallla on 8 konstruktoria.

\subsubsection*{public InterestingImage(String name)}
Luo InterestingLink-olion nimenä saatu parametri.

\subsubsection*{public InterestingLink(Image im)}
Luo InterestingLink-olion kuvanaan saatu parametri.

\subsubsection*{public InterestingLink(int util)}
Luo InterestingLink-olion utiliteettinaan saatu parametri.

\subsubsection*{public InterestingLink(String name,Image im, int util)}
Luo InterestingLink-olion nimenään, kuvanaan ja utiliteettinaan saadut parametrit.

\subsubsection*{public InterestingLink(String name, Image im)}
Luo InterestingLink-olion kuvanaan ja nimenään saadut parametrit.

\subsubsection*{public InterestingLink(String name, int util)}
Luo InterestingLink-olion nimenään ja utiliteettinaan saadut parametri.

\subsubsection*{public InterestingLink(Image im, int util)}
Luo InterestingLink-olion kuvanaan ja utiliteettinaan saadut parametrit.

\subsubsection*{public InterestingLink(ResourceProperty ip,Image im)}
Luo InterestingLink-olion kuvanaan ja (yhtenä) ominaisuutenaan saadut parametrit.



\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public Image getImage()} 
Palauttaa linkkiin liittyvän kuvan. 

\subsubsection*{public boolean setImage(Image im)}
Asettaa InterestingLink-olion kuvaksi saadun parametrin.

\subsubsection*{public Vector getProperties()}
Palauttaa kuvaan liittyvät ominaisuudet.

\subsubsection*{public boolean addProprty(ResourceProperty ip)}
Lisää linkkiin ominaisuuden.

\subsubsection*{public boolean setProperties(Vector props)}
Asettaa saadun Vector-olion kuvan ominaisuuksiksi.

\subsubsection*{public boolean setLinkName(String name)}
Asettaa linkin nimeksi saadun parametrin.

\subsubsection*{public boolean setUtility(int utility)}
Asettaa linkin utiliteetiksi saadun parametrin.

\subsubsection*{public boolean getUtility()}
Palauttaa linkin utiliteetin.

\subsubsection*{public int calculateUtility(UtilityFunction uf, UtilityInformation ui)}
Laskee linkin utiliteetin UtilityInformation-olion pohjalta ja asettaa sen InterestingLink-olion utility-muuttujaksi. Tämän utiliteetin metodi myös palauttaa.

\subsubsection*{public int compareTo(Object o)}
Palauttaa kutsujan ja parametrina saadun olion utiliteettien erotuksen.

\subsubsection*{public boolean equals(Object o)}
Testaa kutsujan ja parametrina saadun olion samuutta. Jos kutsujan ja parametrin kuvat (image-muuttujat) ovat samat, niin palautetaan true, muuten false.
%-------------------------
\subsection{Luokka InterestingImage}

\label{filterInterestingImage}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private int utility}
InterestingImage-olion utiliteetti.

\subsection*{Konstruktorit}
Tällä luokallla on 1 konstruktori.

\subsubsection*{public InterestingImage(Image image)}
Luo InterestingImage-olion saadusta Image-olion.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public boolean setUtility(int util)} 
Asettaa kutsujan utiliteetiksi saadun kokonaisluvun. 

\subsubsection*{public getUtility()}
Palauttaa InterestingImage-olion utiliteetin.

\subsubsection*{public calculateUtility(UtilityFunction uf, UtilityInformation ui)}
Palauttaa utiliteettifunktion arvon parametrina saadusta InterestingImage-oliosta.

\subsubsection*{public int compareTo(Object o)}
Palauttaa kutsujan ja parametrina saadun olion utiliteettien erotuksen.

%-----------------
\subsection{Luokka InterestingImageAccessCountUtilityFunction}

\label{filterInterestingImageAcessCountUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private MuseumModel model}
Utiliteettifunktion tarvitsema MuseumModel-olio, katso getUtility().

\subsection*{Konstruktorit}
Tällä luokalla on yksi konstruktori.

\subsubsection*{public InterestingImageAccessCountFunction(Image image)}
Luo InterestingImageAccessCountUtilityFunction-olion saadusta Image-oliosta.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public boolean setUtility(int util)} 
Asettaa kutsujan utiliteetiksi saadun kokonaisluvun. 

\subsubsection*{public int getUtility()}
Palauttaa InterestingImage-olion utiliteetin suhteessa MuseumModel-olion suosituimpaan kuvaan.






%-----------------
\subsection{Luokka InterestingImageAccessCountUtilityFunction}

\label{filterInterestingImageAcessCountUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private MuseumModel model}
Utiliteettifunktion tarvitsema MuseumModel-olio, katso getUtility().

\subsection*{Konstruktorit}
Tällä luokalla on yksi konstruktori.

\subsubsection*{public InterestingImageAccessCountFunction(Image image)}
Luo InterestingImageAccessCountUtilityFunction-olion saadusta Image-oliosta.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public boolean setUtility(int util)} 
Asettaa kutsujan utiliteetiksi saadun kokonaisluvun. 

\subsubsection*{public int getUtility()}
Palauttaa InterestingImage-olion utiliteetin suhteessa MuseumModel-olion suosituimpaan kuvaan.
%------------------------

\subsection{Luokka InterestingLinkFacetUtilityFunction}

Huom! Tämä luokka sisältää sisäluokan MyFacetCombination, joka käsitellään seuraavaksi.

\label{filterInterestingLinkFacetUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private MuseumModel model}
Utiliteettifunktion tarvitsema MuseumModel-olio, katso getUtility().

\subsection*{Konstruktorit}
Tällä luokalla on yksi konstruktori.

\subsubsection*{public InterestingLinkFacetUtilityFunction(MuseumModel model)}
Luo InterestingLinkFacetUtilityFunction-olion model-muuttujanaan saatu MuseumModel-olio .

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{public boolean equals(Object o)}
Testaa kutsujan fasettijuurien ja parametrina saadun fasettijuurien samuutta. 
 

\subsubsection*{public int getUtility()} 

Palauttaa InterestingLink-olion utiliteetin suhteessa nykyisiin fasettivalintoihin. Tämä on toteutettu vertaamalla kuvan ontologiaripustuksia 
HiBrowse-valintoihin. Jokaista HiBrowse-valintaan sisältyvää fasettipuuta/solmua kohti tutkitaan, onko kuvassa samaan fasettipuuhun liittyvää solmua. Jos 
on, lasketaan solmujen välinen polku siirtymällä aina alemmalla tasolla olevasta solmusta ensimmäiseen vanhempaan, muuten lasketaan polun pituus 
HiBrowse-valinnan solmusta puun juureen. Utiliteetti muodostuu jakamalla maksimiutiliteetti näiden polkujen pituuksien summalla.
%--------------------
\subsection{Luokka MyFacetCombination}

\label{filterMyFacetCombination}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{OntologyClass facetRoot}

\subsubsection*{OntologyClass facetNode}


\subsection*{Konstruktorit}

\subsubsection*{public MyFacetCombination(OntologyClass facetNode)}
Luo MyFacetCombination-olion facetNode-muuttujanaan parametrina saatu OntologyClass-olio. Konstruktori hakee tämän OntologyClass-olion ensimmäisen esi-isän,  jonka se sijoittaa MyFacetCombination-olion facetRoot-muuttujaksi. 

\subsection*{Metodit}
Tällä luokalla ei ole muita metodeja. 

%---------------------
\subsection{Luokka InterestingLinkGlobalAccessCountUtilityFunction}

\label{filterInterestingLinkGlobalAccessCountUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private MuseumModel model}
Utiliteettifunktion tarvitsema MuseumModel-olio, katso getUtility().

\subsection*{Konstruktorit}

\subsubsection*{public InterestingLinkGlobalAccessUtilityFunction(MuseumModel model)}
Luo InterestingLinkGlobalAccessCountUtilityFunction-olion saadusta Image-oliosta.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public getUtility(InterestingLink il, Profile profile)} 

Palauttaa InterestingLink-olion utiliteetin suhteessa MuseumModel-olion suosituimpaan kuvaominaisuuteen . 

%--------------------------------

\subsection{Luokka InterestingLinkImageLinkAccessCountUtilityFunction}

\label{filterInterestingLinkImageLinkAccessCountUtilityFunction}

\subsection*{Muuttujat}
Tällä luokalla ei ole muuttujia.

\subsection*{Konstruktorit}

Tällä luokalla ei ole kostruktoreja.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public getUtility(InterestingLink il, UtilityInformation ui)} 

Palauttaa InterestingLink-olion utiliteetin suhteessa malln suosituimman kuvaominaisuuteen. Tämän se tekee laskemalla InterestingLink-olion suosituimman ominaisuuden painon jaettuna olion lähdekuvan (sourceimage) suosituimman ominaisuuden painolla.
%-----------------------
\subsection{Luokka InterestingLinkTargetImageGlobalAccessCountUtilityFunction}

\label{filterInterestingLinkTargetImageGlobalAccessCountUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private MuseumModel model}
Utiliteettifunktion tarvitsema MuseumModel-olio, katso getUtility().

\subsection*{Konstruktorit}

\subsubsection*{public InterestingLinkTargetImageGlobalAccessUtilityFunction(MuseumModel model)}
Luo InterestingLinkTargetImageGlobalAccessCountUtilityFunction-olion saadusta Image-oliosta.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public getUtility(InterestingLink il, Profile profile)} 

Palauttaa InterestingLink-olion kuvan utiliteetin suhteessa MuseumModel-olion suosituimpaankuvaan. 
%---------------------------------------
\subsection{Luokka InterestingLinkTargetImageLocalAccessCountUtilityFunction}

\label{filterInterestingLinkTargetImageLocalAccessCountUtilityFunction}

\subsection*{Muuttujat}
Tällä luokalla ei ole muuttujia.

\subsection*{Konstruktorit}
Tällä luokalla ei ole konstruktoreja.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public getUtility(InterestingLink il, UtilityInformation ui)} 

Palauttaa InterestingLink-olion kuvan utiliteetin suhteessa UtilityInformation-olion sisältämien PropertyValue-olioiden suosituimpaan kuvaan.

%-------------------------

\subsection{Luokka InterestingOntologyClass}

\label{filterInterestingOntologyClass}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private int utility}
Tämän olion utiliteetti.

\subsection*{Konstruktorit}

\subsubsection*{public InterestingOntologyClass(OntologyClass oc)}
Luo InterestingOntologyClass-olion saadusta OntologyClass-oliosta.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public int getUtility()} 

Palauttaa olion utiliteetin.

\subsubsection*{public boolean setUtility(int util)} 

Asettaa olion utiliteetiksi saadun util-muuttujan arvon.

\subsubsection*{public int calculteUtility()} 

Palauttaa olion utiliteetin.

\subsubsection*{public int calculateUtility}

Asettaa utiliteetiksi maksimiutiliteetin (katso MAXUTILITY luokasta UtilityFunction) palauttaen sen.

\subsubsection*{public int compareTo(Object o)} 

Palauttaa kahden InterestingOntologyClass-olion, kutsujan ja muunnetun (eng. cast), utiliteettien erotuksen.
%---------------------------------- 
\subsection{Luokka InterestingOntologyClassAccessCountUtilityFunction}

\label{filterInterestingOntologyClassAccessCountUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private MuseumModel model}
Utiliteettifunktion tarvitsema MuseumModel-olio, katso getUtility().

\subsection*{Konstruktorit}

\subsubsection*{public InterestingOntologyClassAccessUtilityFunction(MuseumModel model)}
Luo InterestingOntologyClassAccessCountUtilityFunction-olion saadusta Image-oliosta.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public getUtility(InterestingLink ioc, UtilityInformation ui)} 

Palauttaa InterestingOntologyClass-olion utiliteetin suhteessa mallin suosituimpaan fasettiin.

%----------------------------------
\subsection{Luokka PreviousImageUtilityFunction}

\label{filterPreviousImageUtilityFunction}

\subsection*{Muuttujat}


\subsubsection*{private MuseumModel model}
Utiliteettifunktion tarvitsema MuseumModel-olio, katso getUtility().

\subsection*{Konstruktorit}

Tällä luokalla ei ole konstruktoreja.

\subsubsection*{public PreviousImageUtilityFunction(MuseumModel model)}
Luo PreviousImageUtilityFunction-olion saadusta Image-oliosta.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public getUtility(InterestingLink il, Profile profile)} 

Palauttaa InterestingLink-olion kuvan utiliteetin suhteessa Profiilissa aikaisemmin olleisiin kuviin. Mitä kauempana InterestingLink-olion kuva on aikaisempiin kuviin, sitä suurempi utiliteetti tälle kuvalle tulee. Aikaisemmat kuvat haetaan MuseumModel-oliosta.

\subsubsection*{public getUtility(InterestingImage, UtilityInformation ui}

Saman kuin edellä, mutta utiliteetti lasketaan InterestingImage-oliolle.

%------------------
\subsection{Luokka RandomthresholdUtilityFunction}

\label{filterRandomThresUtilityFunction}

\subsection*{Muuttujat}
Tällä luokalla ei ole muuttujia.

\subsection*{Konstruktorit}
Tällä luokalla ei ole konstruktoreja.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public int getUtility(InterestingLink il, UtilityInformation ui)} 

Palauttaa InterestingLink-olion utiliteetin, joka on satunnaisluku. Jos satunnaisluku on suurempi 0.999, niin palautetaan nolla.

\subsubsection*{public int getUtility(InterestingImage ii, UtilityInformation ui )}
Sama kuin edellä, mutta utiliteetti lasketaan InterestingImage-oliolle.

\subsubsection*{public int getUtility(InterestingOntologyClass ioc, UtilityInformation ui)}
Sama kuin edellä, mutta utiliteetti lasketaan InterestingOntologyClass-oliolle.
%----------------------------------

\subsection{Luokka RandomUtililityFunction}

\label{filterRandomUtilityFunction}

\subsection*{Muuttujat}
Tällä luokalla ei ole muuttujia.

\subsection*{Konstruktorit}
Tällä luokalla ei konstruktoreja.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public int getUtility(InterestingLink il, UtilityInformation ui)} 

Palautta satunnaisluvun InterestingLink-olion utiliteettina.

\subsubsection*{public int getUtility(InterestingImage ii,UtilityInformation ui)} 

Palautta satunnaisluvun InterestingImage-olion utiliteettina.

\subsubsection*{public int getUtility(InterestingOntologyClass ioc,UtilityInformation ui)} 

Palautta satunnaisluvun InterestingOntologyClass-olion utiliteettina.

%--------------------------------------

\subsection{Luokka UtilityFunctionChain}

\label{filterRandomUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private Vector weighedUtilityFunctionChain}


\subsection*{Konstruktorit}
Tällä luokalla ei ole konstruktoreja.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 
\subsubsection*{public boolean addUtilityFunction(WeighedUtilityFunction wuf)}
Lisää utiliteettifunktion kutsujan weighedUtilityFunctionChain-olioon.

\subsubsection*{public boolean addUtilityFunction(UtilityFunction uf, int weight)}
Lisää utiliteettifunktion kutsujan weighedUtilityFunctionChain-olioon parametrina saadulla painolla.

\subsubsection*{public Vector getUtilityFunctionChain()}
Palauttaa kutsujan weighedUtilityFunctionChain-olion.

\subsubsection*{public boolean removeUtilityFunction(WeighedUtilityFunction uf)}Poistaa utiliteettifunktion weighedUtilityFunction-oliosta.

\subsubsection*{public boolean removeUtilityFunction(int index)}
Sama kuin edellä, mutta utilitettifunktio poistetaan weighedUtilityFunction-oliosta indeksin määrämästä kohdasta.

\subsubsection*{public getUtility(InterestingLink il, UtilityInformation ui)} 

Palautta InterestingLink-olion utiliteetin jakamalla kaikkien ketjussa olevan utiliteettifunktioiden utiliteettien summan näiden utilieettifunktioiden painojen summalla.

\subsubsection*{public getUtility(InterestingImage ii,UtilityInformation ui)} 

Sama kuin edellä, mutta utiliteetti lasketaan InterestingImage-oliolle.

\subsubsection*{public getUtility(InterestingOntologyClass ioc,UtilityInformation ui)} 

Sama kuin edellä, mutta utiliteetti lasketaan InterestingOntologyClass-oliolle.
%----------------------------

\subsection{Luokka UtilityInformation}

\label{filterUtilityInformation}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.

\subsubsection*{private Profile profile}

\subsubsection*{private Collection itemList}

\subsubsection*{private Image sourceImage}

\subsection*{Konstruktorit}
Tällä luokalla on kaksi konstruktoria.

\subsubsection*{UtilityInformation(Profile profile, Collection itemList, Image sourceImage)}
Luo UtilityInformation-olion saaduista Profile-,Collection- ja Image-olioista.

\subsubsection*{UtilityInformation(Profile profile, Collection itemList)}
Luo UtilityInformation-olion saaduista Profile- ja Collection-olioista.

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public Image getSourceImage()}
Palauttaa kutsuvan olion sourceImage-muuttujan. 

\subsubsection*{public Image setSourceImage(Image si)}
Asettaa saadun Image-olion kutsujan sourceImage-muuttujaksi. 


\subsubsection*{public Profile getProfile()}
Palauttaa kutsuvan olion profile-muuttujan. 

\subsubsection*{public boolean setProfile(Profile p)}
Asettaa saadun Profile-olion kutsujan profile-muuttujaksi.

\subsubsection*{public Collection getItemList()} 

Palauttaa kutsujan itemList-olion.

\subsubsection*{public boolean setItemList(Collection v)} 

Asettaa kutsujan itemList-muuttujaksi saadun Collection-olion.

%--------------------------------
\subsection{Luokka WeighedUtililityFunction}

\label{filterWeighedUtilityFunction}

\subsection*{Muuttujat}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
\subsubsection*{private UtilityFunction uf;}
\subsubsection*{private int weight}


\subsection*{Konstruktorit}
Tällä luokalla on yksi konstruktori

\subsubsection*{WeighedUtilityFunction(UtilityFunction uf, int weight)}

Luo WeighedUtilityFunction-olion saaduista UtilityFunction-oliosta ja sen painosta (weight).

\subsection*{Metodit}
Tähän mahdollisesti lause tai kaksi kuvaavaa höpinää.
 

\subsubsection*{public int getWeight()}

Palauttaa kutsujan weight-muuttujan arvon.

\subsubsection*{public boolean setWeight(int weight)}

Asettaja kutsujan weight-muuttujaksi parametrina saadun luvun.


\subsubsection*{public UtilityFunction getUtilityFunction()} 

Palauttaa kutsujan uf-muuttujan.

\subsubsection*{public boolean setUtilityFunction(UtilityFunction uf)} 

Asettaa kutsujan uf-muuttujaksi saadun UtilityFunction-olion.




