\subsubsection{Luokka MuseumModel}
\label{musMod}
T�m� luokka mahdollistaa Jenan k�ytt�misen RDF-tiedostojen ja ontologoiden
lukemiseen ja kirjoittamiseen. Luokkaan sis�ltyy my�s taustas�ie, joka ajaa writeModel()-metodin tietyin v�liajoin. Taustas�ie mahdollistaa klikkausm��rien
muutosten kirjaamisen pysyv�sti levylle.

\subsection*{Kent�t}
T�m�n luokan kent�t ovat p��asiassa String- ja Model-olioita, joihin on talletettu
polkujen nimi� ja eri ontologioiden k�sittelyyn tarkoitettuja Jenan
Model-olioita.

\subsubsection*{public final static String TYPE\_PROPERTY\_URI =\\"http://www.w3.org/1999/02/22-rdf-syntax-ns\#type"}
''Type''-tyyppisen RDF-ominaisuuden predikaatin tunniste. RDF-syntaksin mukainen.

\subsubsection*{public final static String LABEL\_PROPERTY\_URI =\\ "http://www.w3.org/TR/1999/PR-rdf-schema-19990303\#label"}
''Label''-tyyppisen RDF-ominaisuuden predikaatin tunniste. RDF-syntaksin mukainen.

\subsubsection*{public final static String SUBCLASSOF\_PROPERTY\_URI =\\ "http://www.w3.org/TR/1999/PR-rdf-schema-19990303\#subClassOf"}
''SubClassOf''-tyyppisen RDF-ominaisuuden predikaatin tunniste. Ilmaisee alaluokkasuhdetta. RDF-syntaksin mukainen.

\subsubsection*{public final static String WEIGHT\_ID\_PROPERTY\_URI =\\ "http://protege.stanford.edu/klik\#Id"}
Tunniste Prot�g�-ohjelmalla tehtyyn paino-ontologian, jolla tunnistetaan tietyyn ontologiaresurssiin kuuluvan painon.

\subsubsection*{public final static String WEIGHT\_COUNT\_PROPERTY\_URI =\\ "http://protege.stanford.edu/klik\#count"}
Tunniste paino-ontologian count-kentt��n, eli painon arvon.

\subsubsection*{public final static String RESOURCE\_CLASS\_URI =\\ "http://www.w3.org/TR/1999/PR-rdf-schema-19990303\#Resource"}
''Resource''-tyyppisen RDF-ominaisuuden predikaatin tunniste. RDF-syntaksin mukainen.

\subsubsection*{public final static String RESOURCE\_WEIGHT\_URI =\\"http://protege.stanford.edu/klik\#resource\_weight"}
Paino-ontologian reource\_weight kent�n tunniste.

\subsubsection*{public final static String BASE\_NS =\\ "http://protege.stanford.edu/Promootio\#"}
Promootio-ontologian tunniste ja nimiavaruuden uri.

\subsubsection*{public final static String WEIGHT\_NS =\\ "http://protege.stanford.edu/klik\#"}
Paino-ontologian tunniste ja nimiavaruuden uri.

\subsubsection*{public final static String IMFILE\_NS=\\"http://protege.stanford.edu/imagefile\#"}
Kuvatiedosto-ontologian tunniste ja nimiavaruuden uri.

\subsubsection*{public final static String FACETNAME\_PREDICATE =\\ "http://protege.stanford.edu/fasetit\#Nimi"}
Fasetti-ontologian Nimi-kent�n tunniste.

\subsubsection*{public final static String INSTANCELABEL\_PREDICATE =\\ "http://protege.stanford.edu/Promootio\#Nimi"}
Promootio-ontologian instanssin Nimi-kent�n tunniste.

\subsubsection*{public static final String NAME\_PREFIX = "\#"}
Kenttien ja alkutunnisteen erotinmerkki.

\subsubsection*{public final static String INSTANCE\_PREFIX = "promootio\_"}
Instanssin tunniste.

\subsubsection*{public final static String IMAGE\_PREFIX = "img\_"}
kuvan tunniste RDF-tiedostoissa.

\subsubsection*{public final static String WEIGHT\_SUFFIX = "\_weight"}
Painon tunniste.

\subsubsection*{public final static String IMAGE\_PROTOCOL = "file://"}
Tiedosto-protokollan tunniste.

\subsubsection*{public final static String DC\_DESCRIPTION =\\ "http://purl.org/metadata/dublin\_core\#Description"}
Dublin Core-kirjastomallin mukainen kuvaus.

\subsubsection*{public final static String DC\_SUBJECT =\\ "http://purl.org/metadata/dublin\_core\#Subject"}
Dublin Core-kirjastomallin mukainen aihetunniste.

\subsubsection*{public final static String IMAGE\_PATH =\\ "pictures/"}
Kuvien hakemiston tunniste.

\subsubsection*{private Model baseModel}
Perusontologian oliomallia vastaava Jenan Model-olio. T�ss� tapauksessa t�m� Model-olio kuvaa
promootio-ontologiaa.

\subsubsection*{private Model facetModel}
Fasettiontologian oliomallia vastaava Jenan Model-olio.

\subsubsection*{private Model weightModel}
Paino-ontologian oliomallia vastaava Jenan Model-olio.

\subsubsection*{private Model imagefileModel}
Kuvatiedosto-ontologian oliomallia vastaava Jenan Model-olio.

\subsubsection*{private String basePath}
Hakemisto, josta t�h�n MuseumModel-luokkaan kuuluvat tiedostot l�ytyv�t.

\subsubsection*{private java.net.URL baseURL}
Ohjelmiston koti URL, josta l�ytyy kaikki selaimen tarvitsema tieto.

\subsubsection*{private boolean modelReadAlready}
Kertoo, onko t�h�n MuseumModel-malliin luettu jo sen tarvitsemat tiedot.
Est�� tietojen lukemisen kahteen kertaan, sek� mallin kirjoittamisyrityksen jos mallia ei ole viel� luettu.

\subsubsection*{private Item imageWeightMaximumItem}
Item-olio, joka sis�lt�� suosituimman kuvan painon.

\subsubsection*{private Item classWeightMaximumItem}
Item-olio, joka sis�lt�� suosituimman ontologialuokan painon.

\subsubsection*{private Item imagePropertyWeightMaximumItem}
Item-olio, joka sis�lt�� suosituimman kuvaominaisuuden painon.

\subsection*{Konstruktorit}
T�ll� luokalla on vain yksi konstruktori:

\subsubsection*{public MuseumModel(java.net.URL baseURL, String basePath)}
Luodaan uusi MuseumModel-olio. Saa parametreina perus URLIN 
\texttt{baseURL} ja perushakemiston \texttt{basePath}, jotka talletetaan
niille varattuihin kenttiin. Konstruktorin sis�ll� asetetaan my�s suosituimpien
, eli klikatuimpien, kuvien yms. kenttien arvot. Esim. classWeightMaximumItem.

\subsection*{Metodit}
Suurin osa t�m�n luokan metodeista k�sittelee eri ontologioita:

\subsubsection*{public boolean readModel()}
Luo varsinaisen MuseumModelin levylt� luettavista RDF-dokumenteista. K�ytt�� hyv�kseen Jenan metodeja. Antaa arvot
kaikille Model-p��tteisille kentille. Palauttaa \texttt{true} mik�li kaikki
sujui ongelmitta.

\subsubsection*{public boolean writeModel()}
Kirjoittaa \texttt{weightModel}-olion ja \texttt{imagefileModel}-olion levylle. Metodi on synkronisoitu.
Palauttaa \texttt{true}, jos kirjoittaminen onnistui.

\subsubsection*{public ResourceCollection getFacetRoots() throws RDFException}
Hakee perusontologian fasettijuuret, jotka on m��ritelty fasettiontologiassa.
Fasettien juuret m��r��v�t fasetit. Palauttaa \texttt{ResourceCollection}-olion, jolle
on implementoitu Javan \texttt{Collection}-rajapinta. Heitt�� poikkeuksen, jos haussa
tapahtuu virhe.

\subsubsection*{public ResourceCollection getAllImages()}
Palauttaa \texttt{ResourceCollection}-olion kaikksta kannasta l�ytyvist� kuvista.

\subsubsection*{public ResourceCollection getPopularFacets(int numberOfFacets)}
Palauttaa \texttt{ResourceCollection}-olion, jossa on enint��n numberOfFacets
suosituinta, eli klikatuinta fasettia. Negatiivisella parametrilla haetaan
kaikki fasetit. Metodi j�rjest�� fasetit laskevaan j�rjestykseen suosituimmasta
v�hiten k�ytettyyn.

\subsubsection*{public ResourceCollection getPopularImages(int numberOfImages)}
Palauttaa \texttt{ResourceCollection}-olion, jossa on enint��n \texttt{numberOfImages}
suosituinta kuvaa.

\subsubsection*{public OntologyClass getOntologyClass(Id classId)}
Palauttaa \texttt{classId}:n mukaisen ontologialuokan, eli \texttt{OntologyClass}-olion.

\subsubsection*{public Image getImage(Id imageId)}
Palauttaa \texttt{imageId}:n yksil�im�n kuvan, eli \texttt{Image}-olion.

\subsubsection*{public long getImagePropertyWeightMaximum()}
Palauttaa mallin suosituimman kuvaominaisuuden painon.

\subsubsection*{public long setImagePropertyWeightMaximum(long count)}
Asettaa painon suosituimmalle kuvaominaisuudelle. Uudeksi arvoksi tulee \texttt{count}, mik�li
vanha arvo on pienempi kuin uusi. Palauttaa maksimiarvon.

\subsubsection*{public long getImageWeightMaximum()}
Palauttaa mallin suosituimman kuvan painon.

\subsubsection*{public long setImageWeightMaximum(long count)}
Asettaa painon suosituimmalle kuvalle. Uudeksi arvoksi tulee \texttt{count}.
Palauttaa maksimiarvon.

\subsubsection*{public long getClassWeightMaximum()}
Palauttaa mallin suosituimman ontologialuokan painon.

\subsubsection*{public long setClassWeightMaximum(long count)}
Asettaa painon suosituimmalle ontologialuokalle. Palauttaa maksimiarvon.

\subsubsection*{public String getBasePath()}
Palauttaa mallin perushakemiston. Hakemiston alta l�ytyv�t kuva- ja rdf-tiedostot.

\subsubsection*{public URL getBaseURL()}
Palauttaa mallin perus-URLin, josta l�ytyy kaikki selaimen tarvitsema tiedot.

\subsubsection*{public Model getBaseModel()}
Palauttaa kent�n baseModel sis�ll�n.

\subsubsection*{public Model getWeightModel()}
Palauttaa kent�n weightModel sis�ll�n.

\subsubsection*{public Model getImagefileModel()}
Palauttaa kent�n imagefileModel sis�ll�n.

\subsubsection*{public Model getFacetModel()}
Palauttaa kent�n facetModel sis�ll�n.

\subsubsection*{public static String encodeURI(String stringToEncode)}
Toteuttaa Jenan URIref.encode -metodin. Koodaa annetun Unicode Stringin
URI yhteensopivaksi ja palauttaa koodatun Stringin.

\subsubsection*{public static String decodeURI(String stringToDecode)}
Muuntaa annetun URI-Stringin Unicode Stringiksi ja palauttaa Unicode Stringin.


