StudentRecordSet: Constructor for "StudentRecordSet" class

View source: R/StudentRec.R

StudentRecordSetR Documentation

Constructor for “StudentRecordSet” class

Description

A StudentRecordSet is a collection of collection of StudentRecord objects. It is always connected to a PnetWarehouse and could be connected to a database as well.

Usage

StudentRecordSet(app = "default", warehouse = NULL,
                 db=MongoDB("StudentRecords","EARecords"),...)

Arguments

app

A character scalar providing a guid for the application.

warehouse

An object of type PnetWarehouse that contains already built student models.

db

A JSONDB object which store the student records.

...

Other arguments for future extensions.

Details

A StudentRecordSet is a collection of student recrods. It contains a PnetWarehouse which contains the student models and possibly a database containing the student records.

The StudentRecordSet operates in two modes, depending on the value of db. If db references a MongoDB-class database, then the StudentRecordSet set will save student records (including serialized Bayes nets) to the database and restore them on demmand. This facilitates scoring across several sessions.

If the db argument has the noMongo flag, no database connection will be created. Instead, the calls to the getSR function should pass in a serialized version of the student record function. If no serialized record is available, a new record will be created.

Value

An object of class StudentRecordSet.

Author(s)

Russell Almond

See Also

StudentRecordSet, StudentRecord, getSR, saveSR, newSR, clearSRs

Examples



library(PNetica)

##Start with manifest
sess <- RNetica::NeticaSession()
RNetica::startSession(sess)

## BNWarehouse is the PNetica Net Warehouse.
## This provides an example network manifest.
config.dir <- file.path(library(help="Peanut")$path, "auxdata")
netman1 <- read.csv(file.path(config.dir,"Mini-PP-Nets.csv"),
                    row.names=1, stringsAsFactors=FALSE)
net.dir <- file.path(library(help="PNetica")$path, "testnets")
Nethouse <- PNetica::BNWarehouse(manifest=netman1,session=sess,key="Name",
                       address=net.dir)

## Setup to test without Mongo
SRS <- StudentRecordSet(app="Test",warehouse=Nethouse,
                        db=mongo::MongoDB(noMongo=TRUE))
stopifnot(!mdbAvailable((SRS$recorddb())))

## Setup default SR
dsr <- StudentRecord("*DEFAULT*",app="Test",
                     context="*Baseline*")
sm(dsr) <- WarehouseSupply(Nethouse,"miniPP_CM")
PnetCompile(sm(dsr))

## dsr <- updateStats(eng,dsr)
statmat <- read.csv(file.path(config.dir,"Mini-PP-Statistics.csv"),
                    stringsAsFactors=FALSE)
rownames(statmat) <- statmat$Name
statlist <- sapply(statmat$Name,function (st)
    Statistic(statmat[st,"Fun"],statmat[st,"Node"],st))
names(statlist) <- statmat$Name
dsr@stats <- lapply(statlist,
                    function (stat) calcStat(stat,sm(dsr)))
names(dsr@stats) <- names(statlist)

dsr@hist <- lapply(c("Physics"),
                     function (nd)
                     EABN:::uphist(sm(dsr),nd,NULL,"*Baseline*"))
names(dsr@hist) <- "Physics"

SRS$defaultSR <- dsr
saveSR(SRS, dsr)

## Make a new Student Record for a student.
sr1 <- newSR(SRS,"S1")
stopifnot(uid(sr1)=="S1",app(sr1)==app(dsr),
          all.equal(stats(dsr),stats(sr1),.0002))


sr1a <- getSR(SRS,"S1")

clearSRs(SRS)



ralmond/EABN documentation built on Aug. 30, 2023, 12:52 p.m.