\name{OOC-class}
\docType{class}
\alias{OOC-class}
\alias{OOmap}
\alias{coverageMat}
\alias{makeOOC}
\alias{OOmap,OOC-method}
\alias{show,OOC-method}
\alias{ontology,OOC-method}
\alias{coverageMat,OOC-method}
\title{Class "OOC" object-ontology complex }
\description{  Object that binds ontology (structured vocabulary) with
an object-term map.}
\section{Objects from the Class}{
Objects can be created by calls of the form \code{new("OOC", ...)}.
}
\section{Slots}{
  \describe{
    \item{\code{ontology}:}{Object of class \code{"ontology"} instance of ontoTools::ontology }
    \item{\code{OOmap}:}{Object of class \code{"namedSparse"} SparseM::matrix.csr bound with dimnames facilities }
  }
}
\section{Methods}{
  \describe{
    \item{coverageMat}{\code{signature(x = "OOC")}: return a namedSparse
incidence matrix with r,c element indicating whether term c covers
object r  }
    \item{ontology}{\code{signature(x = "OOC")}: accessor }
    \item{OOmap}{\code{signature(x = "OOC")}: accessor }
    \item{show}{\code{signature(object = "OOC")}: concise printer }
  }
}
%\references{ ~put references to the literature/web site here ~ }
\author{ VJ Carey <stvjc@channing.harvard.edu> }
%\note{ notes~~ }

% ~Make other sections like Warning with \section{Warning }{....} ~

%\seealso{
%  ~~objects to See Also as \code{\link{~~fun~~}}, ~~~
%  or \code{\link{CLASSNAME-class}} for links to other classes
%}
\examples{
data(litOnto)
g1 <- new("rootedDAG", DAG=litOnto, root="A")
o1 <- new("ontology", name="demo", version="0.1",
        rDAG=g1)
kvlist <- list(W="E", X="K", Y="B", Z=c("D","G"))
litMap <- otkvList2namedSparse( names(kvlist), LETTERS[1:12], kvlist )
print(litMap)
ooc1 <- makeOOC( o1, litMap )
show(ooc1)
print(coverageMat(ooc1))
# note the following will be slow with large OOCs
print(conceptProbs(ooc1))
# for larger OOCs it is useful to precompute the accessibility
# matrix of the ontology and the map from objects to terms -- these
# can be supplied as additional arguments to conceptProbs
}
\keyword{classes}