## Dispatcher

Similar to other packages in R (i.e.: proxy, etc.), rrecsys uses a formal method in combination to a registry to execute a specific function. The non-primitive function rrecsys will process only S4 object of type dataSet. The dispatcher has two main arguments, the dataset (data), and the algorithm name (alg, which isn't case sensitive and might be matched even partially) the rest are the ellipses which depend on the required algorithm:

    # Usage
    rrecsys(data, alg, ...)

The argument data, class dataSet, represents the training set.

The argument alg, class character, represents the method to execute on the training set.

The elipses changed based on the required algorithm.

## The registry

The registry is a structure that may be used even autonomously. The main function of registry would be to display available recommender algorithms in rrecsys and theirs default configuration. To call it:

    rrecsysRegistry

    ## Registry defined for rrecsys with 10 entries as follows:
    ##
    ## Algorithm: BPR
    ## Reference: S. Rendle, C. Freudenthaler, Z. Gantner, and L. Schmidt-Thieme. BPR: Bayesian Personalized Ranking from Implicit Feedback.
    ## Parameter and default values:
    ##    k learningRate   regU   regI   regJ updateJ
    ## 1 10         0.05 0.0025 0.0025 0.0025    TRUE
    ##
    ## Algorithm: IBKNN
    ## Reference: B. Sarwar, G. Karypis, J. Konstan, and J. Riedl. Item-based collaborative filtering recommendation algorithms.
    ## Parameter and default values:
    ##   simFunct neigh coRatedThreshold
    ## 1      cos    10                2
    ##
    ## Algorithm: UBKNN
    ## Reference: B. Sarwar, G. Karypis, J. Konstan, and J. Riedl. Item-based collaborative filtering recommendation algorithms.
    ## Parameter and default values:
    ##   neigh simFunct
    ## 1     2       NA
    ##
    ## Algorithm: itemAverage
    ## Reference: NA
    ## No parameter.
    ##
    ## Algorithm: userAverage
    ## Reference: NA
    ## No parameter.
    ##
    ## Algorithm: globalAverage
    ## Reference: NA
    ## No parameter.
    ##
    ## Algorithm: FunkSVD
    ## Reference: Y. Koren, R. Bell, and C. Volinsky. Matrix Factorization Techniques for Recommender Systems.
    ## S. Funk. Netflix Update: Try this at Home.
    ## Parameter and default values:
    ##    k learningRate regCoef biases
    ## 1 10        0.001   0.015  FALSE
    ##
    ## Algorithm: Popular
    ## Reference: NA
    ## No parameter.
    ##
    ## Algorithm: slopeOne
    ## Reference: Daniel Lemire, Anna MaclachlanSlope One Predictors for Online Rating-Based Collaborative Filtering.
    ## No parameter.
    ##
    ## Algorithm: wALS
    ## Reference: R. Pan, Y. Zhou, B. Cao, N.  Liu, R. Lukose, M. Scholz, and Q. Yang.  One-Class Collaborative Filtering.
    ## Parameter and default values:
    ##    k regCoef scheme delta
    ## 1 10    0.01  None!  0.04