# Reasoning about Confidence in Goal Satisfaction
## 5 Implementation  
The proposed approach has been prototyped in jUCMNav [3], in support of a larger activity-based process integration approach that exploits goal and process models while taking uncertainty into account [32]. Data quality and the computation of the confidence levels of element satisfactions values are new to GRL. A confidence value is handled in a way similar to a satisfaction value, this time however with the propagation rules illustrated in Section 4. As confidence values do not exist in the standard URN metamodel [4], they are currently prototyped using URN _metadata_, which are essentially name-value pairs that can contain domain-specific labeled information.  
The leaf intentional elements (including indicators) of a GRL model are annotated with initial confidence values computed from data quality information (DQ[x]). The algorithm for propagating confidence values (_CalculateEvaluationAndConfidence_) extends the _CalculateEvaluation_ algorithm of standard GRL [4]. The algorithm, and the non-primitive data types are classes from the URN metamodel. The _CalculateEvaluationAndConfidence_ algorithm generates a new confidence value (between 0 and 100) that can then be also stored as a metadata for the intentional element being evaluated. The algorithm invokes three sub-algorithms  
Figure 11: Propagation of “A” labels with confidence values, which are used to highlight the _absent_ impact of non-selected alternatives (e.g., Option Two here).  
Figure 10: Confidence of goal satisfaction in the case of dependency.  
(_CalculateDecompositions_, _CalculateContributions_, and _CalculateDependencies_), which are also modified. Once _CalculateEvaluationAndConfidence_ has completed, the _ActorSatisfaction_ algorithm (also modified) can be invoked to compute the satisfaction and confidence of an actor, and then the confidence can be stored again as metadata attached to that actor. The details of the algorithm can be found in Section 4.4 of [PERSON]'s thesis ([[https://ruor.uottawa.ca/bitstream/10393/38104/3/[PERSON]_[PERSON]_2018_thesis.pdf](https://ruor.uottawa.ca/bitstream/10393/38104/3/[PERSON]_[PERSON]_2018_thesis.pdf)]([https://ruor.uottawa.ca/bitstream/10393/38104/3/[PERSON]_[PERSON]_2018_thesis.pdf](https://ruor.uottawa.ca/bitstream/10393/38104/3/[PERSON]_[PERSON]_2018_thesis.pdf)), accessed on 2 June 2022) and the corresponding Java module for jUCMav is also available online ([[https://www.site.uottawa.ca/~damyot/pub/[PERSON]/QuantitativeGRLstrategyAlgorithm.java](https://www.site.uottawa.ca/~damyot/pub/[PERSON]/QuantitativeGRLstrategyAlgorithm.java)]([https://www.site.uottawa.ca/~damyot/pub/[PERSON]/QuantitativeGRLstrategyAlgorithm.java](https://www.site.uottawa.ca/~damyot/pub/Baslyman/QuantitativeGRLstrategyAlgorithm.java)), accessed on 2 June 2022).  
Note that our extensions to GRL are simple and aim to capture data quality and confidence levels, mainly to support a type of analysis about confidence that is complementary to the existing propagation of satisfaction values coming from strategies. There exist processes to rigorously extend modeling languages, for instance the PRISE process [33] for \(i^{*}\), which is a goal modeling language that shares many similarities with GRL (and from which GRL was itself derived). Such a process enables adapting \(i^{*}\) to a specific domain, e.g., human-centric users [34]. Given that the extension here is not for a specific domain but mainly to support a new type of analysis, it was not deemed necessary to use PRISE in our context.