xolp
package is considered to be a "backend" service
that provides a storage infrastructure for indicators with
an accompanying API for retrieval and analysis.xolp
storage even if the
source objects (e.g. an assessment object) are deleted. (For pragmatic
reasons it is possible to delete an activity with the associated
indicators, though.)
xolp
API provides means for simple retrieval and
filtering of indicators, and their evaluation with respect to
evaluation schemas/scales.
xolp
package is considered a backend service without a UI.
xolp
API provides means to create a new version of an
activity. However, the point in time when this should happen must be
decided by the client application.
xolp
service.
xolp_indicator_facts
) that stores
all actual measures (indicators) surrounded by a range of dimension tables
to provide context for these measured values.
xolp
for which we expect only a few instances.
For example, we will only need a handful of ActivityVerbs and EvaluationSchemas, and in practice
probably even not too many EvalutionScales (if the client application cares about deduplication).
By referring to these resources via human-readable identifiers, we are able to write nice readable
code such as
::xolp::EvaluationSchema require -iri "https://dotlrn.org/xolp/evaluation-schemas/at-five-to-one"
or
::xolp::ActivityVerb require -iri "http://adlnet.gov/expapi/verbs/experienced"
.
openacs:<table>:<id>
for ACS Objects (a) and other
internal tuples (b), but basically allow for arbitrary IRIs.
The client system that stores the indicators and activities is
required and trusted to use unambiguous IRIs.
xolp
models activities in the form of an hierarchical tree,
and treats a course, a test, a group work, etc. as activities.
Within a context (super-activity), each (sub-)activity has a certain weight, the sum of which
is typically 100%. (Exceptions are special cases such as the virtual activity
"Group work" below, where we assume that only one of the two forks is possible for a
particular user.)
Although it is not prevented that one activity has multiple parents
(which makes the hierarchy a polyhierarchy),
one would typically model activities as a hierarchical tree of contextualized activities.
Figure 2: Example of a simple contextualized activity hierarchy.
xolp
models competencies in the form of
directed acyclical graph.
One or more activities can prove one or more competencies.
Currently, the activities that book onto the same competency "overlap", i.e. the lowest/average/highest
percentage takes precedence, depending on the result policy (i.e. whether to count to best result,
the worst result, or the average result).
(Example: If one exam shows you are a mediocre software developer, and another one shows
you are a good one, we assume, you are a good one.)
Figure 2: Example of a simple competency graph (result policy: best).