Example of some ‘db’ resources calls in R language

The following resources are directly used in this example or could be used in a similar way :

Enter the R code/instructions in a R interpreter.

Memo

# R code :

# content of the models repository (vlerep) in 'tree' style of presentation
content_rep_tree <- function(vlerep){
    #print(vlerep)
    vlerep_id= vlerep$id
    vlerep_name= vlerep$name
    vlerep_verbose_name= vlerep$verbose_name
    vlerep_path = vlerep$path
    cat("\nModels repository (id, name, verbose_name) : ", vlerep_id, vlerep_name, vlerep_verbose_name, "\n")
    cat("List of its models (id, name, verbose_name) :", "\n")
    vlerep_vlepkg_list = vlerep$vlepkg_list
    for (vlepkg in vlerep_vlepkg_list){
        #print(vlepkg)
        vlepkg_id = vlepkg$id
        vlepkg_name = vlepkg$name
        vlepkg_verbose_name = vlepkg$verbose_name
        vlepkg_vlerep = vlepkg$vlerep
        cat("- ", vlepkg_id, vlepkg_name, vlepkg_verbose_name, "\n")
    }
}

# content of the model (vlepkg) in 'tree' style of presentation
content_pkg_tree <- function(vlepkg){
    #print(vlepkg)
    vlepkg_id = vlepkg$id
    vlepkg_name = vlepkg$name
    vlepkg_verbose_name = vlepkg$verbose_name
    vlepkg_vlerep = vlepkg$vlerep
    cat("\nModel (id, name, verbose_name, name of vlerep, id of vlerep) : ", vlepkg_id, vlepkg_name, vlepkg_verbose_name, vlepkg_vlerep$name, vlepkg_vlerep$id, "\n")
    cat("List of its simulators (id, name, verbose_name, name of vlepkg, id of vlepkg) :", "\n")
    vlepkg_vlevpz_list = vlepkg$vlevpz_list
    for (vlevpz in vlepkg_vlevpz_list){
        #print(vlevpz)
        vlevpz_id = vlevpz$id
        vlevpz_name = vlevpz$name
        vlevpz_verbose_name = vlevpz$verbose_name
        vlevpz_vlepkg = vlevpz$vlepkg
        cat("- ", vlevpz_id, vlevpz_name, vlevpz_verbose_name, vlevpz_vlepkg$name, vlevpz_vlepkg$id, "\n")
    }
}

# content of the simulator (vlevpz) in 'tree' style of presentation
content_vpz_tree <- function(vlevpz){
    #print(vlevpz)
    vlevpz_id = vlevpz$id
    vlevpz_name = vlevpz$name
    vlevpz_verbose_name = vlevpz$verbose_name
    vlevpz_vlepkg = vlevpz$vlepkg
    cat("\nSimulator (id, name, verbose_name, name of vlepkg, id of vlepkg) : ", vlevpz_id, vlevpz_name, vlevpz_verbose_name, vlevpz_vlepkg$name, vlevpz_vlepkg$id, "\n")
}

# R code :

library('RCurl')
library('rjson')

##############################################
# All the models repositories in 'tree' style
##############################################
url = "http://erecord.toulouse.inra.fr:8000/db/rep/"
res = getForm(url, mode='tree')
vlerep_list = fromJSON(res)
for (vlerep in vlerep_list){
    content_rep_tree(vlerep)
}

################################################################################
# Among all the models repositories, looking for the model with name model_name
################################################################################
url = "http://erecord.toulouse.inra.fr:8000/db/rep/"
res = getForm(url, mode='tree')
vlerep_list = fromJSON(res)
for (model_name in c("2CV", "wwdm")){
    for (vlerep in vlerep_list){
        vlerep_vlepkg_list = vlerep$vlepkg_list
        for (vlepkg in vlerep_vlepkg_list){
            vlepkg_id = vlepkg$id
            vlepkg_name = vlepkg$name
            if (vlepkg_name == model_name){
            #################################################################
            # New request for the model with name model_name in 'tree' style
            #################################################################
                cat("\n\nMore about the model with name ", model_name, "\n")
                url = paste0("http://erecord.toulouse.inra.fr:8000/db/pkg/", vlepkg_id,"/")
                res = getForm(url, mode='tree')
                vlepkg = fromJSON(res)
                content_pkg_tree(vlepkg)
            }
        }
    }
}

#####################################################################
# All the simulators of the model with id=19 ("2CV") in 'tree' style
#####################################################################
vlepkg_id = 19
url = "http://erecord.toulouse.inra.fr:8000/db/vpz/"
res = getForm(url, mode='tree', pkg=vlepkg_id)
vlevpz_list = fromJSON(res)
cat("\nSimulators of the model with id=", vlepkg_id, " :\n")
for (vlevpz in vlevpz_list){
    content_vpz_tree(vlevpz)
}

##################################
# domino requests in 'link' style
##################################
# (models repositories => theirs models => their simulators)
url = "http://erecord.toulouse.inra.fr:8000/db/rep/"
res = getForm(url, mode='link')
vlerep_list = fromJSON(res)
for (vlerep in vlerep_list){
    #print(vlerep)
    vlerep_id = vlerep$id
    vlerep_name = vlerep$name
    vlerep_verbose_name = vlerep$verbose_name
    vlerep_path = vlerep$path
    vlepkg_url_list = vlerep$vlepkg_list
    cat("=> models repository ", vlerep_id, vlerep_name, vlerep_verbose_name, vlerep_path, vlepkg_url_list, "\n")
    for (vlepkg_url in vlepkg_url_list){
        res = getForm(vlepkg_url, mode='link')
        vlepkg = fromJSON(res)
        #print(vlepkg)
        vlepkg_id = vlepkg$id
        vlepkg_name = vlepkg$name
        vlepkg_verbose_name = vlepkg$verbose_name
        vlerep_url = vlepkg$vlerep
        vlevpz_url_list = vlepkg$vlevpz_list
        cat("   => model ",  vlepkg_id, vlepkg_name, vlepkg_verbose_name, vlerep_url, vlevpz_url_list, "\n")
        for (vlevpz_url in vlevpz_url_list){
            res = getForm(vlevpz_url, mode='link')
            vlevpz = fromJSON(res)
            #print(vlevpz)
            vlevpz_id = vlevpz$id
            vlevpz_name = vlevpz$name
            vlevpz_verbose_name = vlevpz$verbose_name
            vlevpz_vlepkg_url = vlevpz$vlepkg
            cat("      => simulator ", vlevpz_id, vlevpz_name, vlevpz_verbose_name, vlevpz_vlepkg_url, "\n")
        }
    }
}