\section*{Metatietomoduulin rajapinnat (RH, KJ)}
\label{tira_liite}

Rajapintakuvaukset noudattavat Javan syntaxia lukuunottamatta tietorakenteita joissa on käytetty Pascal-tyylistä ''rakenne of sisältö''-notaatiota.

\subsection*{Luokka MuseumModel}
Vastaa yhtä oliomallia.
\begin{description}
\item{\textbf{Museum Model(URL baseURL, String basePath)}}\newline
Luokan konstruktori jolle annetaan parametrina levyhakemisto jossa löytyvät rdfs- ja rdf-dokumentit
rdf-alihakemistossa ja kuvat kuvat/tyyppikoodi-nimisissä hakemistoissa (esim. kuvat/0).
\item{\textbf{Boolean readModel()}}\newline
Luo oliomallin levyllä olevista tiedostoista.
\item{\textbf{Boolean writeModel()}}\newline
Päivittää levyllä olevat tiedostot muistissa olevan oliomallin mukaiseksi.
\item{\textbf{Vector of OntologyClass getFacetRoots()}}\newline
Antaa ne solmut jotka ovat fasettien juuria.
\item{\textbf{Vector of OntologyClass getPopularFacets(Integer numberOfFacets)}}\newline
Antaa halutun määrän suosituimpia fasettijuuria niitten käyttöasteen suhteen järjestettyinä.
\item{\textbf{Vector of Image getPopularImages(Integer numberOfImages)}}\newline
Antaa halutun määrän suosituimpia kuvia niitten käyttöasteen suhteen järjestettyinä.   
\item{\textbf{Integer getImageDistance(Image image, Vector facets, Vector classes)}}\newline
Antaa tietyn kuvan etäisyyden HiBrowsen määrittämään valintaan. Etäisyys 0 = sopii täysin valintaan. Korkeammat numerot sopivat huonommin.
\item{\textbf{Image getImage(String code)}}\newline
Antaa kuvakorttia vastaavaan Image-olion annetun kuvakoodin mukaan.
\item{\textbf{OntologyClass getOntologyClass(String code)}}\newline
Antaa ontologialuokkaa/fasetin solmua vastaavaan OntologyClass-olion annetun nimen mukaan.
\item{\textbf{BigInteger getImagePropertyAccessCountMaximum()}}\newline
Antaa suurimman kuvan ominaisuuden laskuriarvon.
\item{\textbf{BigInteger setImagePropertyAccessCountMaximum(Integer count)}}\newline
Asettaa suurimman kuvan laskuriarvon. Jos olemassaoleva arvo on suurempi, asetus ei onnistu ja metodi palauttaa epätoden arvon.
\item{\textbf{BigInteger getImageAccessCountMaximum()}}\newline
Antaa suurimman kuvan laskuriarvon.
\item{\textbf{BigInteger setImageAccessCountMaximum(Integer count)}}\newline
Asettaa suurimman kuvan laskuriarvon. Jos olemassaoleva arvo on suurempi, asetus ei onnistu ja metodi palauttaa epätoden arvon.
\end{description}

\subsection*{Luokka Image}
Vastaa yhtä kuvakorttia.
\begin{description}
\item{\textbf{Image(String imageCode)}}\newline
Luokan konstruktori jolle annetaan parametriksi kuvan koodi, jonka perusteella se haetaan Jenan oliomallista. Kuvakoodi on annettu kuvakorttia vastaavassa levyllä olevassa RDF-dokumentissa.
\item{\textbf{Boolean addProperty (ImageProperty newProperty)}}\newline
Lisää kuvaan annetun ominaisuuden, tarkistuksen jälkeen. Ilmentymä-arvoisille ominaisuuksille on löydyttävä ilmentymä ontologiasta.
\item{\textbf{Vector getProperties()}}\newline
Antaa kuvan ominaisuudet.
\item{\textbf{Vector getLinkedImages()}}\newline
Antaa kuvan ominaisuuksiin liittyvät muut kuvat.
\item{\textbf{String getImageCode()}}\newline
Antaa kuvan kuvakoodin.
\item{\textbf{java.net.URL getPictureURL(Integer pictureType)}}\newline
Antaa kuvatiedoston URLin tyypin mukaan.
\item{\textbf{BigInteger addCount()}}\newline
Lisää käyttölaskuria yhdellä.
\item{\textbf{BigInteger getAccessCount()}}\newline
Antaa käyttölaskurin arvon.
\end{description}

\subsection*{Luokka ImageProperty}
Vastaa kuvakortin ominaisuutta. Voi olla arvoltaan String tai Instance.
\begin{description}
\item{\textbf{ImageProperty (String propertyName, String propertyLiteralValue)}}\newline
Luokan konstruktori jolle annetaan parametriksi ominaisuuden nimi ja literaali arvo.
\item{\textbf{ImageProperty (String propertyName, Instance propertyInstanceValue)}}\newline
Luokan konstruktori jolle annetaan parametriksi ominaisuuden nimi ja instanssiarvo.
\item{\textbf{String getName()}}\newline
Antaa ominaisuuden nimen.
\item{\textbf{String getLiteralValue()}}\newline
Antaa ominaisuuden literaaliarvon jos sellainen on.
\item{\textbf{Instance getInstanceValue()}}\newline
Antaa ominaisuuden instanssiarvon jos sellainen on.
\item{\textbf{Boolean hasInstanceValue()}}\newline
Palautusarvo tosi jos ominaisuuden arvo on instanssi, muuten epätosi.
\item{\textbf{Vector getLinkedImages()}}\newline
Antaa tähän omainaisuuden kohdeinstanssiin kuuluvat kuvat.
\item{\textbf{BigInteger addCount()}}\newline
Lisää käyttölaskuria yhdellä.
\item{\textbf{BigInteger getAccessCount()}}\newline
Antaa käyttölaskurin arvon.
\end{description}

\subsection*{Luokka Instance}
Ontologialuokan instanssi. RDF tehty Protegella.
\begin{description}
\item{\textbf{Instance (String instanceName, OntologyClass parent, MuseumModel parentModel)}}\newline
Luokan konstruktori jolle annetaan parametriksi se ontologialuokka jonka instanssi olio on.
\item{\textbf{Boolean addProperty(InstanceProperty newProperty)}}\newline
Lisää instanssiin annetun ominaisuuden, tarkistuksen jälkeen. Sallitut ominaisuudet ovat isäontologialuokan ominaisuuksia.
\item{\textbf{BigInteger addCount()}}\newline
Lisää käyttölaskuria yhdellä. Tallennusongelma?
\item{\textbf{BigInteger getAccessCount()}}\newline
Antaa käyttölaskurin arvon. Tallennusongelma?
\item{\textbf{Vector of Image getImages()}}\newline
Antaa tähän instanssiin liittyvien kuvien Image-oliot.
\item{\textbf{String getName()}}\newline
Antaa instanssin nimen.
\item{\textbf{Vector of InstanceProperty getProperties()}}\newline
Palauttaa instanssin ominaisuudet.
\end{description}

\subsection*{Luokka InstanceProperty}
Vastaa instanssin ominaisuutta. Vastaava pitää olla määritelty isäsolmun ominaisuutena.
\begin{description}
\item{\textbf{InstanceProperty (String propertyName, String propertyLiteralValue, MuseumModel 
parentModel)}}\newline
Luokan konstruktori jolle annetaan parametriksi ominaisuuden nimi ja ominaisuuden literaali arvo.
\item{\textbf{InstanceProperty (String propertyName, Instance propertyInstanceValue, MuseumModel 
parenModel)}}\newline
Luokan konstruktori jolle annetaan parametriksi ominaisuuden nimi ja ominaisuuden instanssiarvo.
\item{\textbf{Instance getInstanceValue (String propertyName, MuseumModel parentModel)}}\newline
Antaa ominaisuuden instanssiarvon jos sellainen on.
\item{\textbf{String getLiteralValue (String propertyName)}}\newline
Antaa ominaisuuden literaaliarvon jos sellainen on.
\item{\textbf{Boolean hasInstanceValue()}}\newline
Palautusarvo tosi jos ominaisuuden arvo on instanssi, muuten epätosi.
\item{\textbf{String getPropertyName()}}\newline
Antaa ominaisuuden nimen.
\end{description}

\subsection*{Luokka OntologyClass}
Solmu ontologiaverkossa.  Syvyyttä varten on luokassa määritelty vakiot
DIRECT=0 ja ALL=-1, josta ALL antaa koko alipuun instanssit.
\begin{description}
\item{\textbf{OntologyClass (String name, MuseumModel parentModel)}}\newline
Luokan kostruktori.
\item{\textbf{Vector of OntologyClass getChildren(Integer depth)}}\newline
Antaa ontologialuokan ja sen depth-syvyisen alipuun lapset.
\item{\textbf{Vector of OntologyClass getParents(Integer depth)}}\newline
Antaa ontologialuokan ja sen depth-syvyisen alipuun vanhemmat.
\item{\textbf{Vector of Instance getInstances(Integer depth)}}\newline
Antaa ontologialuokan ja sen depth-syvyisen alipuun instanssit.
\item{\textbf{Vector of Instance getProperties()}}\newline
Antaa ontologialuokan ominaisuudet.
\item{\textbf{Boolean addParent(OntologyClass parent)}}\newline
Antaa ontologialuokan ominaisuudet. Tarpeellinen?
\item{\textbf{Boolean addChild(OntologyClass child(OntologyClass child)}}\newline
Antaa ontologialuokan ominaisuudet. Tarpeellinen?
\item{\textbf{BigInteger addCount()}}\newline
Lisää käyttölaskuria yhdellä. Tallennusongelma?
\item{\textbf{BigInteger getAccessCount()}}\newline
Antaa käyttölaskurin arvon. Tallennusongelma?
\item{\textbf{Vector of Image getImages()}}\newline
Antaa tähän ontologialuokkaan liittyvien kuvien Image-oliot.
\item{\textbf{Vector of Instance getIntersectInstances(Vector of OntologyClass classes)}}\newline
Antaa tähän ontologialuokkaan ja parametreina annettuihin ontologialuokkiin liittyvien instanssien Instance-oliot.
\item{\textbf{Vector of Instance getIntersectImages(Vector of OntologyClass classes)}}\newline
Antaa tähän ontologialuokkaan ja parametreina annettuihin ontologialuokkiin liittyvien kuvien Image-oliot.
\item{\textbf{String getName()}}\newline
Palauttaa luokan nimen.
\end{description}

\subsection*{Luokka ClassProperty}
Solmun ominaisuus. Malliksi instansseille.
\begin{description}
\item{\textbf{ClassProperty (String propertyName, String propertyType, MuseumModel parentmodel)}}\newline
Luokan konstruktori jolle annetaan parametriksi ominaisuuden nimi ja tyyppi.
\item{\textbf{String getPropertyType (String propertyName)}}\newline
Antaa annetun nimisen ominaisuuden tyypin.
\item{\textbf{String getPropertyName ()}}\newline
Palauttaa ominaisuuden nimen.
\end{description}
