	\subsubsection{Luokka OntologyResource}
\label{metaOnRe}
\texttt{OntologyResource} on abstrakti luokka joka implementoi javan \texttt{Comparable}-rajapinnan. Se toteuttaa kaikkien ontologiaresurssien yhteiset metodit ja kentät. Eri resursseilla on huomattavan paljon yhteisiä metodeja ja kenttiä, joita ei ole järkevää toistaa jokaisessa muussa luokassa uudestaan. Näin luokkarakenne kevenee huomattavasti.
\subsection*{Kentät}

\subsubsection*{protected final Id id}
Id-muuttuja, jolla voidaan yksikäsitteisesti tunnistaa tämä ontologiaresurssi.
\subsubsection*{protected java.lang.String label}
String-muuttuja, johon voidaan tallentaa tämän ontologiaresurssin nimike. Nimike on näytölle tulostettavissa oleva loppukäyttäjälle informatiivinen nimi ontologiaresurssille.
\subsubsection*{protected final MuseumModel model}
MuseumModel-muuttuja, johon on tallennettu osoitin museomalliin, jonka osa tämä ontologiaresurssi on.
\subsubsection*{protected static java.util.Hashtable predefinedPropertyHash}
Hajautustaulukko-muuttuja, johon on tallennettu niitten ominaisuuksien URIt jotka eivät ole annotointitietoa ja siten pitää jättää pois tämän luokan getProperties()-metodin palauttamista ominaisuuksista.. 

\subsection*{Konstruktorit}

\subsubsection*{public OntologyResource(OntologyResource another)}
Konstruktori, joka saa parametrikseen toisen OntologyResource-olion \texttt{another}-muuttujassa ja tekee siitä kopion.
\subsubsection*{public OntologyResource(MuseumModel model, Id id)}
Konstruktori, joka saa parametrikseen MuseumModel-olion \texttt{model}-muuttujassa ja Id-olion \texttt{id}-muttujassa, ja asettaa niitten arvot luokan vastaavien \texttt{model}- ja \texttt{id}-kenttien arvoiksi.
\subsubsection*{public OntologyResource(MuseumModel model, java.lang.String label, Id id)}
Konstruktori, joka saa parametrikseen MuseumModel-olion \texttt{model}-muuttujassa, nimikkeen \texttt{label}-muuttujassa ja Id-olion \texttt{id}-muttujassa, ja asettaa niitten arvot luokan vastaavien \texttt{model}-, \texttt{label}- ja \texttt{id}-kenttien arvoiksi.

\subsection*{Metodit}

\subsubsection*{public int compareTo(Object anotherOntologyResource) throws ClassCastException}
Osa javan \texttt{Comparable}-rajapintaa. Vertailee ontologiaresursseja id-kentän mukaan. Tarkempaa tietoa löytyy javan API-kuvauksen \texttt{Comparable}-rajapinnan kuvauksesta.

\subsubsection*{public boolean equals(java.lang.Object another)}
Korvaa javan \texttt{Object}-luokan equals-metodin. Tarkempaa tietoa löytyy javan API-kuvauksen \texttt{Object}-luokan kuvauksesta.

\subsubsection*{protected static java.lang.String getNameForURI(java.lang.String uri)}
Palauttaa \texttt{MuseumModel}-luokan decodeURI-metodilla suodatetun ontologialuokan URIn paikallisnimen.

\subsubsection*{public static java.util.Hashtable getIntersectHash(java.util.Collection collections) throws java.lang.IllegalArgumentException}
Palauttaa \texttt{Hashtable}-olion hajautustaulukosta jossa on annettujen kokoelmien alkoiden leikkaus. Alkioihin on tallennettu ontologiaresursseja ja leikkaus suoritetaan käyttäen tämän luokan equals-metodia. Lopputuloksena on siis taulukko jossa on kaikki ne ontologiaresurssit jotka esiintyvät kaikissa annetuissa kokoelmissa ilman duplikaatteja. Hajautustaulukkoa käytetään tehokkaiden lisäleikkausten tekemisessä, jolloin jollekkin kokoelmalle ontologiaresursseja tarkistetaan resurssi kerralla kuuluvatko ne tiettyyn leikkaukseen.

\subsubsection*{public static ResourceCollection intersect(java.util.Hashtable intersect)}
Palauttaa \texttt{ResourceCollection}-olion kokoelmasta johon sisältyy getIntersectHash-metodin palauttamat ontologiaresurssit. 

\subsubsection*{public static ResourceCollection intersect(java.util.Collection collections)}
Palauttaa \texttt{ResourceCollection}-olion kokoelmasta johon sisältyy ne ontologiaresurssit jotka esiintyvät kaikissa annetuissa kokoelmissa. Palautettu kokoelma ei sisällä duplikaatteja. Metodi on toteutettu kutsumalla edellistä intersect-metodia parametrinaan getIntersectHash-metodin palauttama hajautustaulukko. getIntersectHash-metodille annetaan parametriksi tälle metodille annetut kokoelmat.

\subsubsection*{protected java.lang.Comparable getLocalKey()}
Palauttaa \texttt{Comparable}-rajapinnan toteuttavan avaimen tästä ontologiaresurssista. Avain on yksikäsitteinen siinä nimiavaruudessa johon ontologiaresurssi kuuluu.

\subsubsection*{protected java.lang.Comparable getKey()}
Palauttaa \texttt{Comparable}-rajapinnan toteuttavan avaimen tästä ontologiaresurssista. Avain on yksikäsitteinen riippumatta nimiavaruudesta johon ontologiaresurssi kuuluu.

\subsubsection*{public java.net.URL getURL() throws java.net.MalformedURLException}
Palauttaa \texttt{URL}-olion tämän ontologiaresurssin URIista. Varoitus: ei toimi odotetulla tavalla kaikille ontologiaresurssille (Itseasiassa vain ImageFile-olioille). 

\subsubsection*{protected com.hp.hpl.mesa.rdf.jena.model.Resource getResource()}
Palauttaa \texttt{Resource}-olion joka sisältää Jenan vastineen tälle ontologiaresurssille.

\subsubsection*{public Id getId()}
Palauttaa tämän ontologiaresurssin tunniksen, joka on tallennettu olion id-kentän.

\subsubsection*{public java.util.Hashtable getPredefinedProperties()}
Palautta tämän ontologiaresurssin ennaltamääritellyt ominaisuuden, jotka ovat tallennettu olion predefinedPropertiesHash-kentän.

\subsubsection*{public String getLabel()}
Palautta tämän ontologiaresurssin nimikkeen, joka on tallennettu olion label-kentän.

\subsubsection*{public String getShortCode()}
Palautta tämän ontologiaresurssin nimikkeen, joka on tallennettu olion label-kentän.

\subsubsection*{public ResourceCollection getProperties()}
Palauttaa \texttt{ResourceCollection}-olion kokoelmasta joka sisältää \texttt{ResourceProperty}-olioita kaikista tähän ontologiaresurssiin kuuluvista ominaisuuksista, lukuunottamatta niitä jota olion getPredefinedProperties-metodi palauttaa. Ominaisuuksien haku on toteutettu \texttt{ResourceProvider}- ja \texttt{StatementResourceCollection}-luokilla.

\subsubsection*{public long setWeight(long value)}
Asettaa tämän ontologiaresurssin painon annettuun long-muotoiseen arvoon. Uusi arvo palautetaan. Jos arvoa ei entisestään ole, metodi kutsuu addWeightStatements-metodia joka luo vastaavat lauseet \texttt{MuseumModel}-luokan weightModel-kenttään.

\subsubsection*{public long addWeight()}
Lisää tämän ontologiaresurssin painoa yhdellä. Uusi arvo palautetaan. Jos arvoa ei entisestään ole, metodi kutsuu addWeightStatements-metodia joka luo vastaavat lauseet \texttt{MuseumModel}-luokan weightModel-kenttään.

\subsubsection*{public long getWeight()}
Palauttaa tämän ontologiaresurssin painon.  Jos arvoa ei ole, palautetaan 0.

\subsubsection*{private boolean addWeightStatements()}
Lisää \texttt{MuseumModel}-luokan weightModel-kentän osoittamaan Jenan ontologiaan tämän ontologiaresurssin painoa kuvaavat lauseet.

\subsubsection*{private Statement getWeightValueStatement()}
Palauttaa \texttt{MuseumModel}-luokan weightModel-kentän osoittamasta Jenan ontologiasta tämän ontologiaresurssin painoa kuvaavat lauseet.

\subsubsection*{public MuseumModel getModel()}
Palautta \texttt{MuseumModel}-olion johon tämä ontologiaresurssi kuuluu. Malli on tallennettu olion model-kentän.

\subsubsection*{public ResourceProperty getNamedProperty(java.lang.String value,\\ com.hp.hpl.mesa.rdf.jena.model.Model jenaModel)}
Palauttaa \texttt{ResourceProperty}-olion annetulla URIlla annetusta \texttt{Model}-olion kuvaamasta Jenan oliomallista. Ominaisuuksien haku on toteutettu \texttt{ResourceProvider}- ja \texttt{StatementResourceCollection}-luokilla.

\subsubsection*{public boolean isComparable()}
Osa javan \texttt{Comparable}-rajapintaa. Palauttaa toden arvon.

\subsubsection*{public int hashCode()}
Palauttaa hajautustalukon indeksointiin käytettävän numeroarvon. Korvaa javan \texttt{Object}-luokan hashCode-metodin.

\subsubsection*{public java.lang.String toString()}
Palauttaa \texttt{String}-olion tämän olion label-kentästä. Korvaa javan \texttt{Object}-luokan toString-metodin.
