@Override
    @SuppressWarnings("unchecked")
    public TemporalDataModelIF<Long, Long> run(final RUN_OPTIONS opts) throws RecommenderException {
        if (isAlreadyRecommended()) {
            return null;
        }

        File trainingFile = new File(getProperties().getProperty(RecommendationRunner.TRAINING_SET));
        File testFile = new File(getProperties().getProperty(RecommendationRunner.TEST_SET));

        try {
            Configuration confTraining = new Configuration();
            confTraining.set(Configured.CONF_DATA_INPUT_PATH, trainingFile.getAbsolutePath());
            confTraining.set(Configured.CONF_DATA_COLUMN_FORMAT, "UIR");
            confTraining.set("data.model.splitter", "ratio");
            confTraining.set("data.splitter.trainset.ratio", "0.999");
            confTraining.set("data.splitter.ratio", "rating");
            DataModel training = new TextDataModel(confTraining);
            training.buildDataModel();

            Configuration confTest = new Configuration();
            confTest.set(Configured.CONF_DATA_INPUT_PATH, testFile.getAbsolutePath());
            confTest.set(Configured.CONF_DATA_COLUMN_FORMAT, "UIR");
            confTest.set("data.model.splitter", "ratio");
            confTest.set("data.splitter.trainset.ratio", "0.999");
            confTest.set("data.splitter.ratio", "rating");
            DataModel test = new TextDataModel(confTest);
            test.buildDataModel();

            return runLibrecRecommender(opts, training, test);
        } catch (LibrecException e) {
            e.printStackTrace();
            throw new RecommenderException(e.getMessage());
        }
    }
@ Override @ SuppressWarnings ( "unchecked" ) public TemporalDataModelIF < Long , Long > run ( final RUN_OPTIONS opts ) throws RecommenderException { if ( isAlreadyRecommended ( ) ) { return null ; } File trainingFile = new File ( getProperties ( ) . getProperty ( RecommendationRunner . TRAINING_SET ) ) ; File testFile = new File ( getProperties ( ) . getProperty ( RecommendationRunner . TEST_SET ) ) ; try { Configuration confTraining = new Configuration ( ) ; confTraining . set ( Configured . CONF_DATA_INPUT_PATH , trainingFile . getAbsolutePath ( ) ) ; confTraining . set ( Configured . CONF_DATA_COLUMN_FORMAT , "UIR" ) ; confTraining . set ( "data.model.splitter" , "ratio" ) ; confTraining . set ( "data.splitter.trainset.ratio" , "0.999" ) ; confTraining . set ( "data.splitter.ratio" , "rating" ) ; DataModel training = new TextDataModel ( confTraining ) ; training . buildDataModel ( ) ; Configuration confTest = new Configuration ( ) ; confTest . set ( Configured . CONF_DATA_INPUT_PATH , testFile . getAbsolutePath ( ) ) ; confTest . set ( Configured . CONF_DATA_COLUMN_FORMAT , "UIR" ) ; confTest . set ( "data.model.splitter" , "ratio" ) ; confTest . set ( "data.splitter.trainset.ratio" , "0.999" ) ; confTest . set ( "data.splitter.ratio" , "rating" ) ; DataModel test = new TextDataModel ( confTest ) ; test . buildDataModel ( ) ; return runLibrecRecommender ( opts , training , test ) ; } catch ( LibrecException e ) { e . printStackTrace ( ) ; throw new RecommenderException ( e . getMessage ( ) ) ; } }
Runs the recommender.

@param opts see
{@link net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS}
@return see
{@link #run(net.recommenders.rival.recommend.frameworks.AbstractRunner.RUN_OPTIONS, net.recommenders.rival.core.TemporalDataModelIF, net.recommenders.rival.core.TemporalDataModelIF)}
@throws RecommenderException when the recommender is instantiated
incorrectly or breaks otherwise.