# Recommending Learning Objects with Arguments and Explanations
## 3 Conversational Educational Recommender System (C-ERS)
### Recommendation Process
The program that represents the logic of the C-ERS can be queried to resolve if an argument that supports a specific recommendation can be derived. Thus, when a recommendation of LOs for a certain student is submitted to C-ERS, it attempts to derive every _recommend(user, LO)_ defeasible rule by backward chaining facts and defeasible rules and applying a mechanism similar to the SLD (_Selective Linear Definite_) derivation of standard logic programming. Next, it is presented how arguments are defined in this framework, since C-ERS has the ability to produce an argument that supports the literal that can be derived from each defeasible rule:  
**Definition 1** (Argument). : _An argument \(\mathcal{A}\) for \(h\) (\(\langle h,\mathcal{A}\rangle\)) is a minimal non-contradictory set of facts and defeasible rules that can be chained to derive the literal (or conclusion) \(h\)._  
For instance, it can be derived from the program represented in Table 1 two arguments that support the recommendation of \(LO_{1}\) to _alice_ (\(Arg_{1}=\langle\) recommend(_alice, \(LO_{1}\)_), [educationally_appropriate(_alice, \(LO_{k}\)_), generally_appropriate(\(LO_{k}\))] ) and \(Arg_{2}=\langle\) recommend(_alice, \(LO_{1}\)_), \(\{\)similarity(_alice, \(pau\)_l_) \(>\)\(\alpha\), vote(_pau_l_, \(LO_{1}\)) \(\geq\) 4 \(\rangle\)). Moreover, other arguments to support the suitability of \(LO_{1}\) for _alice_ can be derived. Some examples of such arguments would be: educationally_appropriate(_alice, \(LO_{1}\)_), [appropriate_resource (_alice, \(LO_{1}\)_), appropriate_interactivity(_alice, \(LO_{1}\)_)]. In addition, it can be also derived one argument that supports the recommendation of \(LO_{2}\) to the student _alice_ (\(Arg_{3}=\langle\) recommend(_alice, \(LO_{2}\)_), \(\{\)similarity(\(LO_{2}\), \(LO\)) \(>\)\(\beta\), vote(_alice, \(LO\)) \(\geq\) 4 \(\rangle\)). In our argumentation formalism, an argument can receive an _attack_ from other arguments that _rebut_ them (for instance by proposing the opposite conclusion) or _undercut_ them (i.e., by attacking clauses of their body). Following the example above \(Arg_{1}\) and \(Arg_{2}\) attack \(Arg_{3}\) while \(Arg_{3}\) attacks \(Arg_{1}\) and \(Arg_{2}\). **Definition 2** (Attack). : _An argument \(\langle q,\mathcal{B}\rangle\) attacks argument \(\langle h,\mathcal{A}\rangle\) if we can derive \(\sim h\) from \(\mathcal{B}\) or if \(q\) implies that one of the clauses of \(\mathcal{A}\) does no longer hold (there is another argument \(\langle h_{1},\mathcal{A}_{1}\rangle\) used to derive \(\langle h,\mathcal{A}\rangle\) such that \(\Pi\cup\{h_{1},q\}\) is contradictory)._  
Attacks between arguments are addressed through the use of a measure of probability that calculates the likelihood of an argument succeeding based on the aggregated probability of the facts and clauses in the body of the rules employed to build the argument. Therefore, C-ERS uses a simplified _probabilistic argumentation_ framework that maps values of probability to the arguments and then aggregates such values to calculate a _suitability_ score for classifying and recommending LOs [39]. **Definition 3** (Argumentation Framework). : _An argumentation framework is defined in C-ERS as the tuple \((Arg,P_{Arg},D)\) where \(Arg\) is a set of arguments, \(D\subseteq Arg\times Arg\) is a defeat relation, and \(P_{Arg}:\rightarrow[0:1]\) represents the probability that an argument holds._To calculate the probability of an argument \(Arg\) (where \(Arg=\langle h,\mathcal{A}\rangle\)):  
\[P_{Arg}= \begin{cases}1&\text{ if }\mathcal{A}\subseteq\Pi\\ \dfrac{\sum_{i=1}^{k}P_{Q_{i}}}{k}&\text{ if }\mathcal{A}\subseteq\Delta\mid h \leftarrow Q_{1},\ldots,Q_{k}\end{cases}  \tag{1}\]  
A fact has probability of 1. You can compute the probability of a defeasible rule as the mean of the probabilities for the literals \(Q_{1},\ldots,Q_{k}\) that form their body. For instance:  
* \(1\leftarrow\) if they are facts. * \(0\leftarrow\) if it is not possible to be solved.