Moodle PHP Documentation 4.5
Moodle 4.5dev (Build: 20240606) (d3ae1391abe)
core_analytics\local\analyser\base Class Reference

Analysers base class. More...

Inheritance diagram for core_analytics\local\analyser\base:
core\analytics\analyser\users core_analytics\local\analyser\by_course core_analytics\local\analyser\sitewide core\analytics\analyser\courses core\analytics\analyser\student_enrolments core\analytics\analyser\site_courses

Public Member Functions

 __construct ($modelid, core_analytics\local\target\base $target, $indicators, $timesplittings, $options)
 Constructor method.
 
 add_log ($string)
 Adds a register to the analysis log.
 
 check_indicator_requirements (\core_analytics\local\indicator\base $indicator)
 Checks that this analyser satisfies the provided indicator requirements.
 
 get_all_samples (\core_analytics\analysable $analysable)
 This function returns this analysable list of samples.
 
 get_analysables ()
 
 get_analysables_iterator (?string $action=null, array $contexts=[])
 Returns the list of analysable elements available on the site.
 
 get_indicators ()
 Getter for indicators.
 
 get_labelled_data (array $contexts=[])
 Returns labelled data (training and evaluation).
 
 get_logs ()
 Returns the analysis logs.
 
 get_modelid ()
 Model id getter.
 
 get_options ()
 Options getter.
 
 get_sample_analysable ($sampleid)
 Returns the analysable of a sample.
 
 get_samples ($sampleids)
 This function returns the samples data from a list of sample ids.
 
 get_samples_origin ()
 Returns the sample's origin in moodle database.
 
 get_static_data (array $contexts=[])
 Returns indicator calculations as an array.
 
 get_target ()
 Returns the analysed target.
 
 get_timesplittings ()
 Getter for time splittings.
 
 get_unlabelled_data (array $contexts=[])
 Returns unlabelled data (prediction).
 
 instantiate_indicators ()
 Instantiate the indicators.
 
 join_sample_user ($sampletablealias)
 SQL JOIN from a sample to users table.
 
 processes_user_data ()
 Whether the plugin needs user data clearing or not.
 
 sample_access_context ($sampleid)
 Returns the context of a sample.
 
 sample_description ($sampleid, $contextid, $sampledata)
 Describes a sample with a description summary and a renderable (an image for example)
 

Static Public Member Functions

static context_restriction_support ()
 Returns an array of context levels that can be used to restrict the contexts used during analysis.
 
static one_sample_per_analysable ()
 Do this analyser's analysables have 1 single sample each?
 
static potential_context_restrictions (string $query=null)
 Returns the possible contexts used by the analyser.
 

Protected Member Functions

 check_indicators_requirements ()
 Checks if the analyser satisfies all the model indicators requirements.
 
 get_iterator_sql (string $tablename, int $contextlevel, ?string $action=null, ?string $tablealias=null, array $contexts=[])
 Get the sql of a default implementation of the iterator.
 
 order_sql (?string $fieldname=null, string $order='ASC', ?string $tablealias=null)
 Returns the order by clause.
 
 provided_sample_data ()
 Samples data this analyser provides.
 

Protected Attributes

core_analytics local indicator base[] $indicators
 The model indicators.
 
string[] $log
 Simple log array.
 
int $modelid
 
array $options
 Execution options.
 
core_analytics local target base $target
 The model target.
 
core_analytics local time_splitting base[] $timesplittings
 Time splitting methods to use.
 

Detailed Description

Analysers base class.

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Constructor & Destructor Documentation

◆ __construct()

core_analytics\local\analyser\base::__construct ( $modelid,
core_analytics\local\target\base $target,
$indicators,
$timesplittings,
$options )

Constructor method.

Parameters
int$modelid
core_analytics\local\target\base$target
core_analytics\local\indicator\base[]$indicators
core_analytics\local\time_splitting\base[]$timesplittings
array$options
Return values
void

Member Function Documentation

◆ add_log()

core_analytics\local\analyser\base::add_log ( $string)

Adds a register to the analysis log.

Parameters
string$string
Return values
void

◆ check_indicator_requirements()

core_analytics\local\analyser\base::check_indicator_requirements ( \core_analytics\local\indicator\base $indicator)

Checks that this analyser satisfies the provided indicator requirements.

Parameters
core_analytics\local\indicator\base$indicator
Return values
true|string[]True if all good, missing requirements list otherwise

◆ check_indicators_requirements()

core_analytics\local\analyser\base::check_indicators_requirements ( )
protected

Checks if the analyser satisfies all the model indicators requirements.

Exceptions
core_analytics\requirements_exception
Return values
void

◆ context_restriction_support()

static core_analytics\local\analyser\base::context_restriction_support ( )
static

Returns an array of context levels that can be used to restrict the contexts used during analysis.

The contexts provided to self\get_analysables_iterator will match these contextlevels.

Return values
arrayArray of context levels or an empty array if context restriction is not supported.

Reimplemented in core_analytics\local\analyser\by_course.

◆ get_all_samples()

core_analytics\local\analyser\base::get_all_samples ( \core_analytics\analysable $analysable)
abstract

This function returns this analysable list of samples.

Parameters
core_analytics\analysable$analysable
Return values
arrayarray[0] = int[] (sampleids) and array[1] = array (samplesdata)

◆ get_analysables()

core_analytics\local\analyser\base::get_analysables ( )
Deprecated
since Moodle 3.7

◆ get_analysables_iterator()

core_analytics\local\analyser\base::get_analysables_iterator ( ?string $action = null,
array $contexts = [] )
abstract

Returns the list of analysable elements available on the site.

A relatively complex SQL query should be set so that we take into account which analysable elements have already been processed and the order in which they have been processed. Helper methods are available to ease to implementation of get_analysables_iterator: get_iterator_sql and order_sql.

Parameters
string | null$action'prediction', 'training' or null if no specific action needed.
context[]$contextsOnly analysables that depend on the provided contexts. All analysables in the system if empty.
Return values
Iterator

Reimplemented in core\analytics\analyser\users, core_analytics\local\analyser\by_course, and core_analytics\local\analyser\sitewide.

◆ get_indicators()

core_analytics\local\analyser\base::get_indicators ( )

Getter for indicators.

Return values
core_analytics\local\indicator\base

◆ get_iterator_sql()

core_analytics\local\analyser\base::get_iterator_sql ( string $tablename,
int $contextlevel,
?string $action = null,
?string $tablealias = null,
array $contexts = [] )
protected

Get the sql of a default implementation of the iterator.

This method only works for analysers that return analysable elements which ids map to a context instance ids.

Parameters
string$tablenameThe name of the table
int$contextlevelThe context level of the analysable
string | null$action
string | null$tablealiasThe table alias
context[]$contextsOnly analysables that depend on the provided contexts. All analysables if empty.
Return values
array[0] => sql and [1] => params array

◆ get_labelled_data()

core_analytics\local\analyser\base::get_labelled_data ( array $contexts = [])

Returns labelled data (training and evaluation).

Parameters
context[]$contextsRestrict the analysis to these contexts. No context restrictions if null.
Return values
stored_file[]

◆ get_logs()

core_analytics\local\analyser\base::get_logs ( )

Returns the analysis logs.

Return values
string[]

◆ get_modelid()

core_analytics\local\analyser\base::get_modelid ( )

Model id getter.

Return values
int

◆ get_options()

core_analytics\local\analyser\base::get_options ( )

Options getter.

Return values
array

◆ get_sample_analysable()

core_analytics\local\analyser\base::get_sample_analysable ( $sampleid)
abstract

◆ get_samples()

core_analytics\local\analyser\base::get_samples ( $sampleids)
abstract

This function returns the samples data from a list of sample ids.

Parameters
int[]$sampleids
Return values
arrayarray[0] = int[] (sampleids) and array[1] = array (samplesdata)

Reimplemented in core\analytics\analyser\courses, core\analytics\analyser\site_courses, core\analytics\analyser\student_enrolments, and core\analytics\analyser\users.

◆ get_samples_origin()

core_analytics\local\analyser\base::get_samples_origin ( )
abstract

Returns the sample's origin in moodle database.

Return values
string

Reimplemented in core\analytics\analyser\courses, core\analytics\analyser\site_courses, core\analytics\analyser\student_enrolments, and core\analytics\analyser\users.

◆ get_static_data()

core_analytics\local\analyser\base::get_static_data ( array $contexts = [])

Returns indicator calculations as an array.

Parameters
context[]$contextsRestrict the analysis to these contexts. No context restrictions if null.
Return values
array

◆ get_target()

core_analytics\local\analyser\base::get_target ( )

Returns the analysed target.

Return values
core_analytics\local\target\base

◆ get_timesplittings()

core_analytics\local\analyser\base::get_timesplittings ( )

Getter for time splittings.

Return values
core_analytics\local\time_splitting\base

◆ get_unlabelled_data()

core_analytics\local\analyser\base::get_unlabelled_data ( array $contexts = [])

Returns unlabelled data (prediction).

Parameters
context[]$contextsRestrict the analysis to these contexts. No context restrictions if null.
Return values
stored_file[]

◆ instantiate_indicators()

core_analytics\local\analyser\base::instantiate_indicators ( )

Instantiate the indicators.

Return values
core_analytics\local\indicator\base[]

◆ join_sample_user()

core_analytics\local\analyser\base::join_sample_user ( $sampletablealias)

SQL JOIN from a sample to users table.

This function should be defined if static\processes_user_data returns true and it is related to analytics API privacy API implementation. It allows the analytics API to identify data associated to users that needs to be deleted or exported.

This function receives the alias of a table with a 'sampleid' field and it should return a SQL join with static\get_samples_origin and with 'user' table. Note that:

  • The function caller expects the returned 'user' table to be aliased as 'u' (defacto standard in moodle).
  • You can join with other tables if your samples origin table does not contain a 'userid' field (if that would be a requirement this solution would be automated for you) you can't though use the following aliases: 'ap', 'apa', 'aic' and 'am'.

Some examples:

static\get_samples_origin() === 'user': JOIN {user} u ON {$sampletablealias}.sampleid = u.id

static\get_samples_origin() === 'role_assignments': JOIN {role_assignments} ra ON {$sampletablealias}.sampleid = ra.userid JOIN {user} u ON u.id = ra.userid

static\get_samples_origin() === 'user_enrolments': JOIN {user_enrolments} ue ON {$sampletablealias}.sampleid = ue.userid JOIN {user} u ON u.id = ue.userid

Exceptions
coding_exception
Parameters
string$sampletablealiasThe alias of the table with a sampleid field that will join with this SQL string
Return values
string

Reimplemented in core\analytics\analyser\student_enrolments, and core\analytics\analyser\users.

◆ one_sample_per_analysable()

static core_analytics\local\analyser\base::one_sample_per_analysable ( )
static

Do this analyser's analysables have 1 single sample each?

Overwrite and return true if your analysables only have one sample. The insights generated by models using this analyser will then include the suggested actions in the notification.

Return values
bool

Reimplemented in core\analytics\analyser\courses, and core\analytics\analyser\users.

◆ order_sql()

core_analytics\local\analyser\base::order_sql ( ?string $fieldname = null,
string $order = 'ASC',
?string $tablealias = null )
protected

Returns the order by clause.

Parameters
string | null$fieldnameThe field name
string$order'ASC' or 'DESC'
string | null$tablealiasThe table alias of the field
Return values
string

◆ potential_context_restrictions()

static core_analytics\local\analyser\base::potential_context_restrictions ( string $query = null)
static

Returns the possible contexts used by the analyser.

This method uses separate logic for each context level because to iterate through the list of contexts calling get_context_name for each of them would be expensive in performance terms.

This generic implementation returns all the contexts in the site for the provided context level. Overwrite it for specific restrictions in your analyser.

Parameters
string | null$queryContext name filter.
Return values
int[]

◆ processes_user_data()

core_analytics\local\analyser\base::processes_user_data ( )

Whether the plugin needs user data clearing or not.

This is related to privacy. Override this method if your analyser samples have any relation to the 'user' database entity. We need to clean the site from all user-related data if a user request their data to be deleted from the system. A static\provided_sample_data returning 'user' is an indicator that you should be returning true.

Return values
bool

Reimplemented in core\analytics\analyser\student_enrolments, and core\analytics\analyser\users.

◆ provided_sample_data()

core_analytics\local\analyser\base::provided_sample_data ( )
protected

◆ sample_access_context()

core_analytics\local\analyser\base::sample_access_context ( $sampleid)
abstract

Returns the context of a sample.

moodle/analytics:listinsights will be required at this level to access the sample predictions.

Parameters
int$sampleid
Return values
context

Reimplemented in core\analytics\analyser\courses, core\analytics\analyser\site_courses, core\analytics\analyser\student_enrolments, and core\analytics\analyser\users.

◆ sample_description()

core_analytics\local\analyser\base::sample_description ( $sampleid,
$contextid,
$sampledata )
abstract

Describes a sample with a description summary and a renderable (an image for example)

Parameters
int$sampleid
int$contextid
array$sampledata
Return values
arrayarray(string, renderable)

Reimplemented in core\analytics\analyser\courses, core\analytics\analyser\site_courses, core\analytics\analyser\student_enrolments, and core\analytics\analyser\users.

Member Data Documentation

◆ $timesplittings

core_analytics local time_splitting base [] core_analytics\local\analyser\base::$timesplittings
protected

Time splitting methods to use.

Multiple time splitting methods during evaluation and 1 single time splitting method once the model is enabled.


The documentation for this class was generated from the following file: