#'verb
#'
#' xAPI Verb object definitions
#'
#' @name verb
#' @section Description:
#' The Verb defines the action between an Actor and an Activity.
#' @section Details:
#' Verbs appear in Statements as Objects consisting of an IRI and a set of display names corresponding to multiple languages or dialects which provide human-readable meanings of the Verb. The table below lists all properties of the Verb Object.
#' @seealso \link{https://github.com/adlnet/xAPI-Spec/blob/master/xAPI-Data.md#verbs}
NULL
#' Creates an xAPI Verb object
#'
#' @param verb Verb params
#' @param warn Show warnings
#' @param asJSON Returns object as JSON string
#'
#' @seealso \code{verb}
#'
#' @return Verb
#'
#' @examples
#' createVerb(
#' verb = list(
#' display = "custom-verb",
#' id = "https://example.com/xapi/verbs/custom-verb"
#' )
#' )
#'
#' @export
createVerb <- function(
verb = NULL,
warn = FALSE,
asJSON = FALSE, ...) {
if (is.null(verb)) {
warning("Verb arguments not specified; using default xapi:verb.", call. = FALSE)
verb <- "experienced"
}
verb_id <- verb
verb <- getVerb(verb_id, warn) # returns -1 if not found
config <- get_locker_config()
lang <- ifelse(is.null(config), "en-US", config$language)
# Build verb
# todo: use getVerbDefinition to create this obj structure
# todo: warn - id should be a valid url
obj <- structure(
list(
id = "",
display = list()
),
class = "Verb"
)
obj$id <- ifelse(
is.double(verb),
paste0("http://adlnet.gov/expapi/verbs/", verb_id),
verb$id
)
obj$display[[lang]] <- ifelse(
is.double(verb),
"experienced",
verb_id
)
if(asJSON){
obj <- formatJSON(obj)
}
return(obj)
}
#' Get Verb from xAPI Vocabulary
#'
#' @param verb Name of verb
#' @param warn Show warnings
#' @param asJSON Returns object as JSON string
#'
#' @return Verb
#'
#' @export
getVerb <- function(verb = "", warn = FALSE, asJSON = FALSE) {
exists <- if(is.character(verb) & verb != ""){
exists(verb, verbs)
} else {
if(warn){
warning("No Verb was provided.")
}
FALSE
}
if (exists & asJSON) {
return(formatJSON(verbs[[verb]]))
} else if (exists) {
return(
structure(
verbs[[verb]],
class = "Verb"
)
)
} else {
if(warn){
warning(paste0("Verb '", verb, "' not found in xAPI Vocabulary list."))
}
return(-1)
}
}
#' getVerbList
#'
#' Returns a list of the default Verbs.
#'
#' @return vector
#'
#'@export
getVerbList <- function() {
return(names(verbs))
}
verbs <- list(
"abandoned" = list(
"id" = "https://w3id.org/xapi/adl/verbs/abandoned",
"display" = list(
"en-US" = "abandoned",
"fr-FR" = "a abandonn\u00e9"
)
),
"answered" = list(
"id" = "http://adlnet.gov/expapi/verbs/answered",
"display" = list(
"de-DE" = "beantwortete",
"en-US" = "answered",
"fr-FR" = "a r\u00e9pondu",
"es-ES" = "contest\u00f3"
)
),
"asked" = list(
"id" = "http://adlnet.gov/expapi/verbs/asked",
"display" = list(
"de-DE" = "fragte",
"en-US" = "asked",
"fr-FR" = "a demand\u00e9",
"es-ES" = "pregunt\u00f3"
)
),
"attempted" = list(
"id" = "http://adlnet.gov/expapi/verbs/attempted",
"display" = list(
"de-DE" = "versuchte",
"en-US" = "attempted",
"fr-FR" = "a essay\u00e9",
"es-ES" = "intent\u00f3"
)
),
"attended" = list(
"id" = "http://adlnet.gov/expapi/verbs/attended",
"display" = list(
"de-DE" = "nahm teil an",
"en-US" = "attended",
"fr-FR" = "a suivi",
"es-ES" = "asisti\u00f3"
)
),
"commented" = list(
"id" = "http://adlnet.gov/expapi/verbs/commented",
"display" = list(
"de-DE" = "kommentierte",
"en-US" = "commented",
"fr-FR" = "a comment\u00e9",
"es-ES" = "coment\u00f3"
)
),
"completed" = list(
"id" = "http://adlnet.gov/expapi/verbs/completed",
"display" = list(
"de-DE" = "beendete",
"en-US" = "completed",
"fr-FR" = "a termin\u00e9",
"es-ES" = "complet\u00f3"
)
),
"exited" = list(
"id" = "http://adlnet.gov/expapi/verbs/exited",
"display" = list(
"de-DE" = "verlie\u00df",
"en-US" = "exited",
"fr-FR" = "a quitt\u00e9",
"es-ES" = "sali\u00f3"
)
),
"experienced" = list(
"id" = "http://adlnet.gov/expapi/verbs/experienced",
"display" = list(
"de-DE" = "erlebte",
"en-US" = "experienced",
"fr-FR" = "a \u00e9prouv\u00e9",
"es-ES" = "experiment\u00f3"
)
),
"failed" = list(
"id" = "http://adlnet.gov/expapi/verbs/failed",
"display" = list(
"de-DE" = "verfehlte",
"en-US" = "failed",
"fr-FR" = "a \u00e9chou\u00e9",
"es-ES" = "fracas\u00f3"
)
),
"imported" = list(
"id" = "http://adlnet.gov/expapi/verbs/imported",
"display" = list(
"de-DE" = "importierte",
"en-US" = "imported",
"fr-FR" = "a import\u00e9",
"es-ES" = "import\u00f3"
)
),
"initialized" = list(
"id" = "http://adlnet.gov/expapi/verbs/initialized",
"display" = list(
"de-DE" = "initialisierte",
"en-US" = "initialized",
"fr-FR" = "a initialis\u00e9",
"es-ES" = "inicializ\u00f3"
)
),
"interacted" = list(
"id" = "http://adlnet.gov/expapi/verbs/interacted",
"display" = list(
"de-DE" = "interagierte",
"en-US" = "interacted",
"fr-FR" = "a interagi",
"es-ES" = "interactu\u00f3"
)
),
"launched" = list(
"id" = "http://adlnet.gov/expapi/verbs/launched",
"display" = list(
"de-DE" = "startete",
"en-US" = "launched",
"fr-FR" = "a lanc\u00e9",
"es-ES" = "lanz\u00f3"
)
),
"mastered" = list(
"id" = "http://adlnet.gov/expapi/verbs/mastered",
"display" = list(
"de-DE" = "meisterte",
"en-US" = "mastered",
"fr-FR" = "a ma\u00eetris\u00e9",
"es-ES" = "domin\u00f3"
)
),
"passed" = list(
"id" = "http://adlnet.gov/expapi/verbs/passed",
"display" = list(
"de-DE" = "bestand",
"en-US" = "passed",
"fr-FR" = "a r\u00e9ussi",
"es-ES" = "aprob\u00f3"
)
),
"preferred" = list(
"id" = "http://adlnet.gov/expapi/verbs/preferred",
"display" = list(
"de-DE" = "bevorzugte",
"en-US" = "preferred",
"fr-FR" = "a pr\u00e9f\u00e9r\u00e9",
"es-ES" = "prefiri\u00f3"
)
),
"progressed" = list(
"id" = "http://adlnet.gov/expapi/verbs/progressed",
"display" = list(
"de-DE" = "machte Fortschritt mit",
"en-US" = "progressed",
"fr-FR" = "a progress\u00e9",
"es-ES" = "progres\u00f3"
)
),
"registered" = list(
"id" = "http://adlnet.gov/expapi/verbs/registered",
"display" = list(
"de-DE" = "registrierte",
"en-US" = "registered",
"fr-FR" = "a enregistr\u00e9",
"es-ES" = "registr\u00f3"
)
),
"responded" = list(
"id" = "http://adlnet.gov/expapi/verbs/responded",
"display" = list(
"de-DE" = "reagierte",
"en-US" = "responded",
"fr-FR" = "a r\u00e9pondu",
"es-ES" = "respondi\u00f3"
)
),
"resumed" = list(
"id" = "http://adlnet.gov/expapi/verbs/resumed",
"display" = list(
"de-DE" = "setzte fort",
"en-US" = "resumed",
"fr-FR" = "a repris",
"es-ES" = "continu\u00f3"
)
),
"satisfied" = list(
"id" = "https://w3id.org/xapi/adl/verbs/satisfied",
"display" = list(
"en-US" = "satisfied"
)
),
"scored" = list(
"id" = "http://adlnet.gov/expapi/verbs/scored",
"display" = list(
"de-DE" = "erreichte",
"en-US" = "scored",
"fr-FR" = "a marqu\u00e9",
"es-ES" = "anot\u00f3"
)
),
"shared" = list(
"id" = "http://adlnet.gov/expapi/verbs/shared",
"display" = list(
"de-DE" = "teilte",
"en-US" = "shared",
"fr-FR" = "a partag\u00e9",
"es-ES" = "comparti\u00f3"
)
),
"suspended" = list(
"id" = "http://adlnet.gov/expapi/verbs/suspended",
"display" = list(
"de-DE" = "pausierte",
"en-US" = "suspended",
"fr-FR" = "a suspendu",
"es-ES" = "aplaz\u00f3"
)
),
"terminated" = list(
"id" = "http://adlnet.gov/expapi/verbs/terminated",
"display" = list(
"de-DE" = "beendete",
"en-US" = "terminated",
"fr-FR" = "a termin\u00e9",
"es-ES" = "termin\u00f3"
)
),
"voided" = list(
"id" = "http://adlnet.gov/expapi/verbs/voided",
"display" = list(
"de-DE" = "entwertete",
"en-US" = "voided",
"fr-FR" = "a annul\u00e9",
"es-ES" = "anul\u00f3"
)
),
"waived" = list(
"id" = "https://w3id.org/xapi/adl/verbs/waived",
"display" = list(
"en-US" = "waived"
)
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.