Helen Schottenhamml
email: helen.schottenhamml@fau.de

Ani Anciaux-Sedrakian

Frédéric Blondel

Adria Borras-Nadal

Pierre-Antoine Joulin

Ulrich Rüde

Evaluation of a lattice Boltzmann-based wind-turbine actuator line model against a Navier-Stokes approach

Due to the cost and difficulty to precisely measure aerodynamic quantities in onshore and offshore wind farms, researchers often rely on high-fidelity large eddy simulation, based on Navier-Stokes flow solvers. However, the cost of such simulation is very high and does not allow, in practice, extensive parametric studies for large wind farms. Among others, the lattice Boltzmann method is a good candidate for much faster, ExaScale wind farm flow simulations. The present paper aims to assess the validity of a lattice Boltzmann-based actuator line model and highlights its strengths and potential weaknesses. With this intent, comparisons against a Navier-Stokes approach commonly used in the wind energy community are performed. We assess the potential of the lattice Boltzmann method to reduce the computational cost of such simulations by analyzing the performance of the different solvers and their scalability. The lattice Boltzmann-based waLBerla solver reduces the computational costs significantly compared to SOWFA while maintaining the same accuracy as the Navier-Stokes-based method. Furthermore, we show that a multi-GPU implementation leads to an even more drastic reduction of the computational time, achieving faster-than-real-time simulations. This performance will allow extensive parametric studies over large wind farms in future studies.

Introduction

Wind farm flows are complex and challenging to predict, although their understanding is crucial for proper wind farm design and layout optimization. During the design phase, so-called "engineering" flow models are used to estimate wind farm power production [1,2]. However, the accuracy of these models is still limited. Several phenomena are as yet poorly understood, such as overlapping wakes, turbulence generation in wakes, wake deflection, wake meandering, or even wind farm blockage effects and atmospheric stability, i.e., thermal effects. Accurate reference data is required to support the development of such models. However, it remains problematic to obtain reliable on-site data as measurements are complex and subject to the atmosphere's random nature. On the other hand, wind tunnel experiments are expensive and less flexible than numerical models. Thus, a common approach consists in using high-fidelity solvers for parametric studies after validating them against a limited number of wind tunnel measurements. Hence, researchers rely on high-fidelity large eddy simulation (LES)-based solvers, such as SOWFA [START_REF] Sowfa | Simulator for wind farm applications[END_REF]. The solvers often build upon actuator-line methods [START_REF] Sørensen | [END_REF]: based on the airfoil's aerodynamic properties, i.e., lift and drag curves, and the blade element theory, aerodynamic forces acting on the blades are estimated over simple lines and projected onto the flow, instead of fully resolving the turbines geometrically. At the wind farm scale, one is more interested in wake developments, interactions, and coupling with the atmospheric boundary layer than in the detailed flow around the blades. Moreover, previous studies have already shown that the detailed wind turbine geometry has a limited impact on the far wake properties [5]. Avoiding the fine and body-fitted meshes reduces their required sizes. Nevertheless, using these solvers for parametric studies and complete wind farm flows remains challenging. Different length scales must be resolved to capture the correct physical behaviour, e.g., atmospheric eddies with kilometric scale and wind turbine wake eddies with meters. These challenges inevitably require massive computational resources and leading-edge high-performance simulation software. Lattice Boltzmann-based approaches constitute a relevant alternative. There are no fundamental limitations for lattice Boltzmann method (LBM) to deal with atmospheric boundary layer (ABL) flows and wind turbine modelling capabilities with the same precision as Navier-Stokes (NS)-based approaches, as demonstrated in [6,7,8]. Furthermore, they exhibit much lower computational costs and are well-adapted to large-scale heterogeneous architectures. Recent developments, e.g., improved collision operators, enable the LBM for highfidelity high-Reynolds number flows needed for wind farm flow simulations. The present work aims to compare two LES-based flow solvers, including a recently developed LBM approach based on the waLBerla flow solver [9,10,11], in terms of physics and computational efficiency, including weak and strong scaling. The other solver is the OpenFOAM-based LES flow solver SOWFA, which is among the most commonly used in the wind energy community [12]. Although this comparison is purely numerical, a validation of the waLBerla solver against wind tunnel experiments can be found in [START_REF] Schottenhamml | Actuator-line simulation of wind turbines using the lattice boltzmann method[END_REF], and a validation study of SOWFA against a full-scale wind farm can be found in [START_REF] Churchfield | AIAA Aerospace Sciences Meeting including the New Horizons Forum and Aerospace Exposition[END_REF]. While this article does not deal with entire wind farms, the investigations on a single turbine are a crucial step towards large-scale simulations.

Lattice Boltzmann method

The following section provides a brief introduction to the lattice Boltzmann method. A more comprehensive treatment can be found in, e.g., [START_REF] Krüger | The Lattice Boltzmann Method[END_REF] or [START_REF] Succi | The Lattice Boltzmann Equation[END_REF]. In contrast to conventional solvers, the LBM does not build upon a discretisation of the Navier-Stokes equations. Instead, it discretises the Boltzmann equation, defined through the so-called particle distribution function (PDF) f . Firstly, the continuous velocity space is reduced to a set of discrete velocities c i . The discretisation in velocity space also introduces the notion of stencils which are a crucial ingredient of lattice Boltzmann implementations. By custom, a DdQq stencil represents a d-dimensional LBM with q discrete velocities. While the choice of stencil impacts numerical properties like the accuracy and stability of an LB method, it also influences the computational efficiency and memory requirements. Typically, a stencil that includes more neighbours lowers numerical errors and improves stability. However, this comes at the cost of reduced computational performance which is typically memory-bound in LBM. Secondly, the Boltzmann equation is discretised in space and time. Clasically, the LBM acts on uniform and regular grids with an explicit time stepping scheme. Eventually, this discretisation results in the second-order accurate lattice Boltzmann equation, here without forcing terms,

f i (x + c i ∆t, t + ∆t) = f i (x, t) + Ω i (x, t). ( 1
)
Typical implementations split this equation into a streaming part and a collision part. The collision step evaluates the right-hand side of Equation 1, including the collision operator Ω. Since this step is usually cell-local, it is very well-suited for parallelisation and enables the LBM for largescale applications. The second step, the streaming, then copies the post-collision distribution to the neighbouring cells. This step only acts on direct neighbours, dictated by the chosen velocity set. Hence, it does not compromise the computational efficiency too much. Until now, we have not yet discussed the importance of the collision operator Ω. In addition to the stencil, it defines a specific lattice Boltzmann method and dictates its stability and accuracy properties. The most straightforward approaches act directly on the PDFs and relax them towards their equilibrium with one or several relaxation times. While they are easier to implement, they restrict the simulation's stability. Hence, more sophisticated collision operators have been introduced that overcome this issue. The approach that we chose for our simulations is the cumulant lattice Boltzmann method (CLBM) by Geier et al. [START_REF] Geier | [END_REF]. Instead of employing a specific force model, we rely on the velocity shift proposed in [START_REF] Geier | [END_REF] to incorporate the forcing terms.

Framework description

This section briefly describes the frameworks used for the comparisons. Furthermore, it details their numerical setups, subgrid-scale (SGS) models and grid structuredness.

3.1 waLBerla waLBerla [9,10] is a massively parallel multi-physics framework developed at Friedrich-Alexander University Erlangen-Nuremberg (FAU) with focus on simulations using the lattice Boltzmann method. Its specific software design combined with the code generation framework lbmpy [18] allows for highly optimised, performance-portable solutions on block-structured grids for various application areas, like phase-field simulations, and particle-laden flows [19,20]. It supports shared and distributed memory parallelism with OpenMP and MPI, respectively, automated SIMD vectorisation, and the execution on NVIDIA graphics cards. For the wind turbine simulations in the present study, we use our recently added holistic actuator line model (ALM) approach [START_REF] Schottenhamml | Actuator-line simulation of wind turbines using the lattice boltzmann method[END_REF], which provides a mutual code base for CPU and GPU. Not only does this approach conserve the performance-portability of waLBerla, but it also reduces the maintenance efforts. For the LBM setup, we chose a D3Q27 stencil and a cumulant collision model with a Smagorinsky SGS model.

SOWFA

SOWFA (Simulator fOr Wind Farm Applications) [START_REF] Sowfa | Simulator for wind farm applications[END_REF] provides a set of solvers, boundary conditions, and physical extensions based on the OpenFOAM CFD solver [21]. Containing wind turbine models, e.g., an actuator-line model, it enables the simulation of wind turbines and wind farms operating in neutral or stratified ABLs. In the wind-energy research community, SOWFA is the most widely used solver for wind farm flows [12]. In the present study, we use second-order spatial schemes and a Pressure-Implicit with Splitting of Operators (PISO) pressure-velocity calculation procedure with three sub-iterations per timestep using a geometric agglomeration-based algebraic multigrid solver, together with an implicit scheme for time integration. Moreover, we employ a Smagorinsky SGS model. OpenFOAM is an unstructured grid solver which enhances the approximation of complex geometries but comes at the price of reduced performance compared to structured grids. For parallelisation, the domain is decomposed and distributed among different processes using MPI.

CASTOR

CASTOR is a so-called free-wake, lifting-line flow solver based on a vortex filament discretisation of the wake and the wind-turbine blades. The underlying N -body problem is solved on GPUsystems using the CUDA programming language to increase the computational performance. It has been validated against wind tunnel measurement [22]. In the present study, CASTOR acts as a reference for blade force distributions: this kind of solver is supposed to be accurate for blade force predictions and intrinsically accounts for tip-losses. Furthermore, CASTOR is based on a liftingline approach, which allows a fair comparison with actuator-line solvers, as the same limitations are expected, e.g., no three-dimensional effects such as stall delay are accounted for. The present implementation follows the work of Sebastian et al. [23] and uses Van Garrel's core model [START_REF] Van Garrel | Development of a wind turbine aerodynamics simulation module[END_REF]. A first-order advection scheme is employed. The time step is chosen to have a hub rotation of ten degrees per iteration, while more than 20 full rotor rotations are kept in the wake.

Force spreading methods

Part of the actuator line method is usually the smearing of aerodynamic forces over several cells around the blade elements. For doing so, often linear or Gaussian regularisation kernels are employed. More details and generic guidelines can be found in, e.g., [START_REF] Jha | [END_REF].

SOWFA implements several force projection kernels, including isotropic and anisotropic ones. Here, we employ the standard isotropic Gaussian kernel using a standard deviation of ϵ = 2∆x with ∆x being the width of the mesh cells. In the waLBerla setups, we use two different kernels for the force smearing function. On the one hand, there is the tight kernel by Roma et al. [26] which approximates the Dirac delta over three cells per spatial dimension. On the other hand, we have a wider Gaussian kernel that spreads the forces over nine cells per spatial direction with ϵ = 2∆x. With this discretisation of the smearing functions, waLBerla avoids the numerically expensive convolution product that is typically evaluated for Gaussian kernels. The setups with the thinner and the wider kernel are called "waLBerla-thin" and "waLBerla-wide" in the following.

Methodology

The proposed study uses the generic DTU 10MW reference wind turbine [START_REF] Bak | The dtu 10-mw reference wind turbine danish Wind Power Research[END_REF] which is representative of modern large offshore wind turbines. Contrary to previous validation studies presented in [START_REF] Schottenhamml | Actuator-line simulation of wind turbines using the lattice boltzmann method[END_REF], this case exhibits very high chord-based Reynolds numbers of the order of ten million. These Reynolds numbers could have been challenging to deal with using standard methods used in the early stages of LBM. We compare the time-averaged aerodynamic force distributions along the blade, the wake characteristics, i.e., velocity deficit and turbulent intensity profiles, predicted by the different solvers, and the code performance and computational times. All approaches employ an actuator-line type of model at a single operating point with a wind speed of 8m/s, leading to a rotational velocity of Ω ≈ 0.673rad/s, no blade pitch, and airfoil data retrieved from the public wind turbine model [28]. Hub tilt and blade precone are neglected. At such operating conditions, the simulated wind turbine thrust and power coefficients are C T ≈ 0.814 and C P ≈ 0.476, respectively, in accordance with the HAWCStab2 configuration in [28]. Thus, one expects a strong wake velocity deficit due to the large thrust coefficient considered here. The airfoil lift and drag coefficients used in the present study can be found in [28]. Linear interpolations of the provided data with respect to the local blade thickness are performed, enabling smooth transitions between the different airfoils. We discretise the computational domain of 25 rotor diameters D in length, 5D in height and 5D in width with similar meshes between the solvers. A single turbine with D = 178.32m and a tower height of 118m is located at 5D from the inlet. To enforce a mutual boundary setup between the solvers, we use free-slip conditions at the bottom and the top of the domain, periodic lateral boundaries, and a constant uniform inflow at the inlet. The reference vortex solver cannot fulfil this setup as it does not implement wall boundary conditions. A constant wind velocity is used all over the domain in order to advect the vortex filament in a Lagrangian way, together with the so-called induced velocities. The domain is unbounded, there are neither outflow nor top or bottom boundaries. For the grid-based approaches, the mesh resolution reaches 64 cells per rotor diameter, which is sufficiently fine to predict the wake properties correctly [START_REF] Benard | [END_REF]. However, we cannot accurately resolve the tip vortices in the near wake at such mesh resolutions, and thus so-called tip losses are probably not correctly captured. Still, we do not use a tip loss model to minimise the potential source of discrepancies and characterise the solvers and not the aerodynamic corrections. While the force spreading methods slightly differ between the solvers, i.e., waLBerla spreads the forces over either three cells in the narrow kernel or nine cells in the wide kernel, they all use a trilinear interpolation for the wind quantities. Enforcing a rotation of approximately one degree per time step, we have a time step size of 0.026s and an equivalent Mach number of M ≈ 0.13 for the LBM simulations. Asmuth et al. [8] provide more details on the relation between Mach number and time step size in LBM wind turbine simulations. With this time step size, the blade elements do not cross more than one cell per time step, even at the tip. However, convergence studies provided in Appendix A show that this time step might be too high to predict the far wake flow accurately. The grid-free vortex solver discretises the blades using 35 cosine-spaced vortex filaments. Other solvers use a linear discretisation that includes at least 50 elements per blade. The simulations start with an initial period of 10 min of physical time, i.e., approximately 64 rotations of the wind turbine, during which the wake develops. Then, we evaluate the quantities of interest averaged over 10 additional minutes of physical time.

Results

This section details the physical results of the solvers. In particular, we will address the aerodynamic force distribution and wake properties, as the velocity deficit and turbulence intensity.

Blade force distribution

We focus on the analysis of the blade force distribution first. Recall that we employ two force spreading kernels in waLBerla: a wide one in waLBerla-wide runs for comparing to SOWFA, and another thin kernel in waLBerla-thin runs to study the impact of the spreading method, see 3.4. In Figure 1 (left) that depicts the distribution of the normal forces, the agreement of the different solvers is overall good. waLBerla-wide and SOWFA predict eminently similar blade force distributions, even near the blade root and tip where the forces are over-estimated compared with the vortex solver. waLBerla-thin's normal force distribution is closer to the CASTOR reference results. The observed force reduction when changing the kernel is attributed to a better resolution of the tip vortex, leading to a better prediction of the tip-losses. shows that the results for the tangential forces are less aligned. waLBerla and SOWFA results differ from CASTOR, especially near the blade root and tip. SOWFA predicts in general lower tangential forces than waLBerla, CASTOR results being between the two. Despite some noticeable differences at the blade root and tip regions, the waLBerla-thin results are aligned better with CASTOR. Nevertheless, the agreement between the solvers is still overall satisfactory. The mentioned discrepancies between the two LES solvers can be attributed mainly to the differences in the force spreading and the numerical methods.

Wake velocity and turbulence intensity profiles

Next, we will look at the velocity profiles at several downstream positions in the wake. Figure 2 shows a globally satisfying agreement between the solvers. The transition to a turbulent wake occurs at a similar location for the wider kernels in SOWFA and waLBerla-wide. Even nearly Gaussian profiles are observed in the far wake (x/D ⩾ 9). waLBerla-wide predicts a slightly higher velocity deficit at x/D = 9. Using the thinner kernel, the waLBerla-thin velocity profiles tend to be smoother, indicating an earlier transition to a turbulent wake. Martinez-Tossas et al. [START_REF] Martínez-Tossas | Wind turbine modeling for computational fluid dynamics[END_REF] predict this kind of behaviour, reasoning that with a narrower kernel thinner and more unstable tip vortices emerge.

In the far wake (x/D = 11), the impact of the force spreading kernel is low. This postulation is consistent with the observed turbulence intensity profiles in Figure 3. We define the axial turbulence intensity as the ratio of the root-mean-square velocity fluctuations to the mean velocity, sampled in a space-fixed reference frame at every simulation time step. It does include coherent structures such as the tip vortices. In the near-wake at x/D = 3, waLBerla-thin results in a higher turbulence level near the rotor blade tips than waLBerla-wide. As shown in Appendix A, reducing the time step also delays the transition to a turbulent wake. More investigations are required to understand this phenomenon. In particular, using strictly identical force spreading methods is mandatory before drawing any definitive conclusions. In terms of code-to-code turbulence intensity profiles comparisons, there are noticeable differences. Especially in the far wake, waLBerla-wide surprisingly predicts higher turbulence intensities than SOWFA. Even though the presented comparisons are globally satisfactory, they drag behind those of Asmuth et al. [8]. A key difference is that Asmuth et al. used identical force spreading methods and a coarser mesh resolution. Rerunning our setup with 32 cells per rotor diameter improved the agreement between waLBerla-wide and SOWFA.

0 0.1 0.2 -1 -0.

Code performances

In this section, we compare the performance of NS-based and LBM-based ALM solvers for wind turbines in a parallel environment. In particular, we investigate their weak and strong scaling behaviour and their overall performance. All simulations run on the Topaze supercomputer at CCRT/CEA and follow the setup described in Section 4. Topaze has 864 compute nodes based on 2 AMD Milan@2.45GHz (AVX2) CPUs with 64 cores per CPU. Furthermore, it includes an partition with 48 compute nodes with 4 Nvidia A100 GPUs each. Firstly, we focus on the performance aspects of waLBerla and its holistic ALM approach. Figure 4 (left) depicts the weak scaling of waLBerla for CPU and GPU runs and clearly shows that the excellent behaviour of waLBerla, e.g., reported in [10], was not compromised by the ALM implementation. Figure 4 (right), on the other hand, compares the strong scaling behaviour of the CPU and the GPU implementations of waLBerla in terms of mega lattice site updates per second (MLUPS). Here, we observe no perfect but still a favourable performance increase with an increasing number of compute nodes. For the GPU runs, the performance increase saturates for more than four nodes with four GPUs each. The simulation domain in these runs was too small to add sufficient workload to all GPUs, hence not further decreasing the time-to-solution. However, the weak scaling proves that we still scale when we provide a sufficient workload. Next, we will directly compare the two solvers against each other. The exact performance results in "time to solution" are given in Table 1 for a total of 163 840 000 cells and 1 200s of simulated physical time. Note that we did not include the results for more than ten nodes for the waLBerla GPU simulations. Again, the workload per GPU was not sufficient to obtain representative results. Also, SOWFA lacks the 2-node simulations as the runs were too slow and, therefore, not feasible to perform. As illustrated in the left of Figure 5, the speed-up of all three solvers is perfect up to 20 CPU nodes. As a basis for the speed-up, we used the simulation times of the solvers' 5-node runs. While the speed-up is a crucial factor towards large-scale runs, as it allows exploiting large clusters, we must not neglect the actual time-to-solution, given logarithmically in the right of Figure 5. The difference between the LBM-based waLBerla and the NS-based SOWFA is immense, with waLBerla being on average 73 times faster than SOWFA. On five nodes, the GPU version of waLBerla performs even better with a factor of 471 to SOWFA. Moreover, considering the simulated physical time of 1 200s, the GPU runs on five nodes perform faster than real-time.

Conclusion

This study is a preliminary step towards validating a lattice Boltzmann flow solver for wind farm flow simulations using the actuator line model to represent the turbines' rotor. We focused on the blade force distribution and wake properties of a single wind turbine subject to a constant inflow.

Comparisons against a Navier-Stokes-based flow solver were performed and show that the lattice Boltzmann method leads to very similar results, considering identical numerical setups. In terms of computational cost, the LBM performed about 70 times faster than the SOWFA library. Using the same number of nodes but running on GPUs, this factor even increases to about 470. LBM seems an auspicious candidate for highly performant and physically realistic wind farm flow simulations. The next step will consist in the extension of the currently employed waLBerla framework to ABL simulations, allowing the study of realistic wind farm flows. impact on the blade force distribution. Some discrepancies appear near the tip of the blade at the largest Mach number, i.e., at the compressible limit. Otherwise, results converge rapidly towards the same solution: no differences are noticed between M = 0.1 and lower Mach numbers. The Mach number convergence results for the wake velocity and turbulence intensity profiles are presented in Figures A2 andA3. In the near-wake, i.e., x/D < 5, the velocity profiles are not strongly impacted by the time step, although lowering it reduces the turbulence intensity, especially near the rotor tip. Further downstream, the impact is higher. Lowering the time step sharpens the velocity deficit, and one also observes a lower turbulence intensity. In other words, decreasing the time step size tends to delay the transition to a turbulent wake further downstream. Also, note that we do not reach convergence in the far wake, at x/D > 7. This result is unexpected since we should be able to capture higher wavenumbers with smaller time steps, leading to an earlier transition to turbulence [START_REF] Churchfield | [END_REF]. As mentioned in [START_REF] Martínez-Tossas | Wind turbine modeling for computational fluid dynamics[END_REF], the force spreading method has a similar impact on the tip vortex.

The shear layer is thinner and more unstable using narrow kernels, allowing an earlier transition to turbulence. A convergence study based on a Navier-Stokes solver should be undertaken to confirm these observations. To investigate the impact of the kernel, we ran additional simulations using different kernel widths. Although it seems to help in the convergence, the same phenomenon is observed. Note that in practice, actuator-line simulations also consider a turbulent atmospheric boundary layer. The ABL allows a much faster wake recovery compared with the present constant inflow simulations and probably help in the convergence.

Figure 1 .Figure 1 (

 11 Figure 1. Normal (left) and tangential (right) force distribution along the blade, 64 cells per diameter

Figure 2 .

 2 Figure 2. Wake velocity profiles, 64 cells per diameter

Figure 3 .

 3 Figure 3. Wake TI profiles, 64 cells per diameter

Figure 4 .

 4 Figure 4. waLBerla scaling experiments for 1 200s simulated physical time with ∆t = 0.010054s: weak scaling with 40 960 000 cells per node (left), strong scaling with 163 840 000 cells (right)

Figure 5 .

 5 Figure 5. Strong scaling experiment with 163 840 000 cells, 1 200s simulated physical time with ∆t = 0.026s: Speed-up based on the simulation time on five nodes (left), performance in time-tosolution (right)

Figure A1 .Figure A2 .

 A1A2 Figure A1. Force distribution along the blade: Mach number impact

Figure A3 .

 A3 Figure A3. Wake turbulence intensity profiles: Mach number impact

Table 1 .

 1 Simulation times in s for the strong scaling runs for waLBerla and SOWFA Node GPU CPU Cores waLBerla GPU waLBerla CPU SOWFA

	2	8	4	256	1 351	9 652	-
	5	20	10	640	852	5 368	401 376
	10	40	20	1 280	864	2 734	191 215
	15	60	30	1 920	-	1 597	135 817
	20	80	40	2 560	-	1 390	91 652

Acknowledgments

This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 824158 (EoCoEII).

Appendix A Convergence study

For the sake of completeness, we perform a convergence study in this appendix. This study is based on the lattice Boltzmann solver since it is the main interest of this work. The Roma kernel is employed, allowing a single layer of ghost cells, thus slightly reducing the computational cost. Four different Mach numbers are used, i.e., M = 0.02, 0.05, 0.1 and 0.15 with corresponding time steps of ∆t = 0.004, 0.010, 0.020 and 0.030, respectively. Figure A1


Frédéric Vanderhaegen

Stéphane Zieba

Simon Enjalbert
email: simon.enjalbert@univ-valenciennes.fr

Philippe Polet

A Benefit/Cost/Deficit (BCD) model for learning from human errors

Keywords: BCD model, violation, human error, neural network, case-based reasoning, learning process, human error prediction, car driving

This paper proposes an original model for interpreting human errors, mainly violations, in terms of Benefits, Costs and potential Deficits. This BCD model is then used as an input framework to learn from human errors, and two systems based on this model are developed: a case-based reasoning system and an artificial neural network system. These systems are used to predict a specific human car driving violation: not respecting the priorityto-the-right rule, which is a decision to remove a barrier. Both prediction systems learn from previous violation occurrences, using the BCD model and four criteria: safety, for identifying the Deficit or the danger; and opportunity for action, driver comfort, and time spent, for identifying the Benefits or the Costs. The application of learning systems to predict car driving violations gives a rate over 80% of correct prediction after 10 iterations. These results are validated for the non-respect of priority-to-the-right rule.

Introduction

Adapted from Swain and Guttmann [START_REF] Swain | Handbook of human reliability analysis with emphasis on nuclear power plant applications-final report[END_REF], the definition of human error must be linked to the capacity of the human operators to:

• not correctly perform their assigned tasks under given conditions during a time-window or at a given instant, or

• perform additional tasks that may affect the human-machine system's operations in terms of safety, quality, production and/or workload, for example.

This definition implies that the concept of human errors is related to unintentional errors and intentional errors (called violations), as well as additional tasks.

Methods for assessing unintentional or intentional human errors do exist, but the results they provide are not homogeneous. Studies have shown that a given method used by several groups or different methods used by a same group do not produce reliable results [START_REF] Kirwan | The validation of three human reliability quantification tech-niquesTHERP, HEART and JHEDI: part iiiPractical aspects of the usage of the techniques[END_REF]. The feedback needed to assess or analyze human errors is sometimes insufficient. Even if quantitative or qualitative assessments of human errors are available, they cannot be compared because they usually do not have homogeneous assessment unit [START_REF] Reer | Review of advances in human reliability analysis of errors of commissionPart 2: EOC quantification[END_REF].

In addition, risk analysis based on human error, done by designers and/or users of a given human-machine system, can provide diverse results because the people analyzing the risks have different objectives or different organisational and/or individual interests [START_REF] Polet | Theory of safety-related violations of system barriers[END_REF]. Furthermore, the task analysis may not include all the dependencies between tasks (e.g., temporal dependencies, causal dependencies, functional dependencies) [5] [6]. Moreover, human error analysis methods focus mainly on the negative impact of human errors, and they usually do not take additional tasks into account and do not integrate the learning effect of human errors.

In this paper, we present a model that remedies the above problems. This model:

• is capable of analyzing unintentional human errors, violations and additional tasks,

• integrates both the negative and positive impacts of human errors, and

• functions as a framework that takes learning from human errors into account.

Our goal is to use this model to develop systems that are able to copy human behaviour and thus learn from human errors. Human errors can be explained as the possible consequences of erroneous behaviours with respect to the Benefits, Costs and potential Deficits (i.e., dangers). Such a decision support system design has to use human models in order to make human error prediction feasible. This paper first introduces our BCD model and then proposes several systems that are able to predict human violations, called barrier removals because the human operators voluntarily decide to remove (i.e., not to respect) the barriers. These systems are applied to predict barrier removal in the context of car driving. This paper does not focus on human error probability but rather on the consequences of human errors.

The BCD model principles

The BCD model

Each person that uses risk assessment methods (i.e., the designers and/or users of a given human-machine system) can define particular systems called barriers, which protect the human-machine system from undesirable events, or their consequences. These undesirable events may affect system criteria, such as safety, workload, production and/or quality. Barriers can also protect the system from undesirable events, such as human errors, or prevent them entirely. Transport signalling systems are prevention-based barriers, whereas protection grids, airbags and safety belts are protection-based barriers. Intentional deviations from the prescribed behaviour required by the system specifications are called violations [START_REF] Reason | Human error[END_REF] [START_REF] Carpignano | Cognitive theories and engineering approaches for safety assessment and design of automated systems: a case study of a power plant[END_REF]. Barrier removal was initially defined as the voluntary inhibition of a barrier with the intention of optimizing the possible compromises between such criteria as safety, workload, production or quality, for example [START_REF] Polet | Modelling border-line tolerated conditions of use (BTCU) and associated risks[END_REF]. Thus, barrier removal, or the intentional misuse or non-respect of a barrier under appropriate conditions, is an optimizing and/or exceptional violation made without any intention to damage the human-machine system. The possible motivation for a human operator to deviate intentionally from a given prescription can be related to improving the behaviour of the human-machine system or lessening the harmful consequences of an error. This improvement can be assessed quantitatively or qualitatively with respect to several criteria.

The Benefit/Cost/Deficit (BCD) model uses indicators that assess the positive and negative consequences of deviate human behaviours in terms of criteria measuring the machine's or operator's performance or state. Positive consequences are termed Benefits, whereas negative ones are either acceptable Costs, when the undesirable events are under control, or unacceptable Deficits, when these events are out of control. In other words, a Cost is an acceptable negative consequence when human behaviour is successful and a Deficit is an unacceptable consequence when this behaviour fails and damages the human-machine system in terms of safety or some other criteria. Whatever the deviate human behaviour state (e.g., normal or degraded behaviour, intentional or unintentional deviations), the corresponding human action is assumed to be evaluated through three distinct consequences [START_REF] Polet | Theory of safety-related violations of system barriers[END_REF]:

• the expected Benefits (i.e., the B values of the BCD model) due to the success of a performed action;

• the acceptable Costs (i.e., the C values of the BCD model) due to the success of a performed action; these costs can be cognitive (e.g., to control the potential Deficit or danger) or physical (e.g., to modify the operational constraints of using a given barrier);

• the unacceptable Deficits (i.e., the D values of the BCD model) related to a potential occurrence of a hazardous situation, due to the failure of a performed action.

Human behaviour can thus be explained in terms of Benefits and Costs when the behaviour is successful or in terms of Deficits when it fails. For an on-line intentional human behaviour that is under control, the Benefits and Costs are considered to be quasi-immediate, while the Deficits exist in the possible future.

The BCD model uses several functions to transform qualitative (i.e., subjective) data into quantitative (i.e., objective) data. This model has been validated to analyze barrier removals in different domains:

• Barrier removals in production systems, such as industrial rotary presses [START_REF] Polet | Modelling border-line tolerated conditions of use (BTCU) and associated risks[END_REF].

• Barrier removals in transport system control, such as car driving [START_REF] Čepin | DEPEND-HRA -A method for consideration of dependency in human reliability analysis[END_REF] or railway system control [START_REF] Polet | Human behaviour analysis of barrier deviations using a benefit-cost-deficit model[END_REF] [11] [START_REF] Zhang | Artificial neural network for violation analysis[END_REF].

• Barrier removals in biomechanical systems, such as human crash behaviour [START_REF] Robache | The BCD model for biomechanical application[END_REF].

The BCD model has also been used to assess human stability and the associated risks in terms of human state indicators [START_REF] Pacaux-Lemoine | BCD model for human state identification[END_REF]. The analysis of the consequences of a nonstandard behaviour requires a frame of reference in order to determine whether or not this deviation leads to an improvement. The usual frame of reference is the prescribed task, which is more or less detailed. Two cases should be distinguished in estimating Benefits, Costs and Deficits: using the BCD model to compare two distinct dependent or independent situations (i.e., system state at a given time), or using the BCD model to compare different action plans, which are successive situations. The next two sub-sections give more details about comparing situations or action plans.

The BCD model for comparing pairs of situations

Indicators are required to compare dependent or independent situations [START_REF] Vanderhaegen | The benefit-cost-deficit (BCD) model for human analysis and control[END_REF]. Two situations are dependent when the state of a situation occurring at a given time is modified and leads to another short-term or long-term situation. This modification may be due to the dynamic evolution of the process or to a strategic or tactical action. Two situations are independent when they can occur at the same time but concern two different paths to achieve the same goals. Independent situations can thus be related to the possible action plans of the different decisional levels of a given organization in order to resolve the current situation. The lower a given criterion's severity, the more acceptable the situation. The acceptability function, denoted T OL X,i (a) in Equation ( 1) is related to the state of the severity, denoted s i (a(t a )) for the evaluation criterion i of the situation a occurring at the time t a according to the acceptability threshold T H X,i for a decision maker X:

T OL X,i (a) ↔ (s i (a(t a )) < T H X,i ) (1)
This acceptability threshold is used to compare different users' assessments of a situation or the assessments of several decisional levels of an organization [START_REF] Vanderhaegen | The benefit-cost-deficit (BCD) model for human analysis and control[END_REF]. For instance, a given situation can be acceptable for a user (or decisional level) but unacceptable for another user (or decisional level). The comparison of two dependent situation concerns two situations happening one after the other (e.g., an action has been performed between the two situations) while the comparison of two independent situations concerns two situations happening at the same time (e.g., two situations from two different action plans).

A decrease in the severity of situation b with respect to the severity of situation a in terms of criterion i is denoted G i (a, b) in Equation ( 2):

G i (a, b) ↔ (s i (a(t a )) > s i (b(t b ))) (2)
The situations a and b can be acceptable or unacceptable. When both are acceptable, the corresponding decrease is called a Benefit, denoted B i (a, b) in Equation ( 3):

B i (a, b) ↔ G i (a, b) ∧ (T OL X,i (a) ∧ T OL X,i (b)) ↔ G i (a, b) ∧ T OL X,i (a) (3)
For instance, this decrease can be related to a decrease in the severity of situation b, in terms of criterion i, corresponding to a barrier removal, with respect to the severity of situation a.

An increase in the severity of situation b with respect to the severity of situation a is denoted L i (a, b) in Equation ( 4):

L i (a, b) ↔ (s i (a(t a )) < s i (b(t b ))) (4)
Situation b can thus be acceptable or unacceptable. An acceptable increase is called a Cost, denoted C i (a, b) in Equation ( 5), and requires an additional acceptability constraint:

C i (a, b) ↔ L i (a, b) ∧ (T OL X,i (a) ∧ T OL X,i (b)) ↔ L i (a, b) ∧ T OL X,i (b) (5)
The definition of an acceptable Cost implies that both situations are acceptable.

An unacceptable level of severity for both situations is called a Deficit, denoted D i (a, b) in Equation ( 6). This Deficit D i (a, b), is related to the occurrence of an unacceptable situation b with respect to an acceptable situation a:

D i (a, b) ↔ L i (a, b) ∧ (T OL X,i (a) ∧ ¬T OL X,i (b)) ↔ T OL X,i (a) ∧ ¬T OL X,i (b) (6)
A Deficit is called potential when it anticipates the possible unacceptable evolution of a situation. Unacceptable situations can also be related to other specific evolutions of severity (i.e., a degradation or an improvement of a Deficit of the situations or the recovery process shown in Figure 1. Figure 2 provides an illustration of the BCD model parameters for two situations. This article is limited in scope to the application of the related BCD parameters (i.e., Benefits, Cost, Deficits) and the improvement or the degradation of the Deficits. The logical value of the B, C and D functions for a given evaluation criterion i is qualitative (i.e., subjective). It can be transformed into a numerical (i.e., objective) value by using the function K J,i (a, b) given in Equation ( 7) and (8):

K J,i (a, b) = s i (b(t b )) -s i (a(t a )) (7) K J,i (a, b) =          K B,i (a, b) if B i (a, b) K C,i (a, b) if C i (a, b) K D,i (a, b) if D i (a, b) ∨ ID i (a, b) ∨ DD i (a, b) 0 otherwise (8)

The BCD model for comparing action plans or procedures

The Benefits, Costs and Deficits can also be evaluated by comparing the prescribed behaviour (i.e., the prescribed action plan or the prescribed procedure) and the actual deviate behaviour (i.e., the deviate action plan or the deviate procedure). A procedure is a combination of actions, usually in the form of a sequence. Accomplishing an action generates the occurrence of a new situation. The existing barriers are usually related to an explicit or an implicit decision by the human operators to perform an action plan or a procedure that respects these barriers. Decisions to deviate from the expected behaviour may result in barrier removals. In other words, the human operators decide to perform an action plan or a procedure that removes the barriers that they are supposed to respect. This paper applies the BCD model to compare two specific action plans or procedures: the one that respects the barrier and the one that removes the barrier. All the possible procedures can thus be compared for the same time interval. The evaluation of the BCD parameters for the two procedures P 1 and P 2 is shown in Figure 3. Figure 4 illustrates the BCD model parameters for two procedures. The severity of criterion i in each action plan or procedure is denoted s i (P 1) and s i (P 2), respectively. The BCD evaluation requires applying the success function instead of the tolerability function. The success function, denoted Success X,i (P ), is related to the results of P for a given criterion i for a decision-maker X with respect to the expected results, denoted Expectedresults X,i , with an acceptable error . The quantitative function K J,i becomes in Equation ( 9) and (10):

K J,i (P 1, P 2) = s i (P 2) -s i (P 1) (9)
K J,i (P 1, P 2) =          K B,i (P 1, P 2) if B i (P 1, P 2) K C,i (P 1, P 2) if C i (P 1, P 2) K D,i (P 1, P 2) if D i (P 1, P 2) ∨ ID i (P 1, P 2) ∨ DD i (P 1, P 2) 0 otherwise (10
) This paper presents a new application of the BCD model. This new application uses the BCD model to learn from violations and to predict them by exploiting the BCD model parameters for several performance criteria.

The learning systems based on the BCD model

The problem statement

The learning-based tools proposed in literature are mainly iterative. They try to copy the cognitive learning process that humans use when they learn from their own errors or behaviour. Such automated tools that learn from errors are usually related to iterative learning control (ILC) and its different mechanisms. Iterative learning control detects and minimizes tracking errors, starting with a low initial knowledge level for the possible consequences of the action [START_REF] Xu | Iterative learning control design without a priori knowledge of the control direction[END_REF] [17] [START_REF] Norrlöf | A note on causal and CITE iterative learning control algorithms[END_REF]. After a limited number of iterations, the ILC algorithm adjusts the learning parameters in order to reduce errors between an input signal and an output signal. The tasks governed by ILC are usually repetitive activities, such as robot movements. Two main classes of iterative learning control schemes can be identified:

• The feedforward-feedback scheme [START_REF] Lee | Iterative learning control of permanent magnet linear motor with relay automatic tuning[END_REF], or the previous cycle learning scheme [START_REF] Xu | Analysis and comparison of iterative learning control schemes[END_REF], is an extension of the first class of iterative learning control; it uses the previous iterations to calculate the current one.

• The current cycle learning scheme [START_REF] Xu | Analysis and comparison of iterative learning control schemes[END_REF], or the direct adaptive scheme [START_REF] Wang | Direct adaptive iterative learning control of nonlinear systems using an output-recurrent fuzzy neural network[END_REF], integrates the previous iterations and the error between the desired output signal and the current output signal in order to refine the input signal evaluation.

This paper deals with the current cycle learning scheme. We use the BCD model to take the positive and negative consequences of human behaviour into account in order to propose predictive systems that can learn from these consequences. Two iterative learning control implementations are developed below: a case-based reasoning system and a neural network based system. Both systems were tested to study the feasibility of predicting barrier removals.

For a given iteration, the correct prediction evaluation compares the real observed decision, denoted u i , with the decision predicted by a reinforced iterative learning tool, denoted u * i in Figure 5. An iteration is based on input data vectors, denoted e i , and the previous iterations that are modelled by the previous input vectors and their associated decisions (e i-1 , u i-1 ). The vector e i contains a series of triplets (b k , c k , d k ) for a given criterion k. FFor each iteration, the vector contains the same number of data related to m criteria:

(b 1 , c 1 , d 1 , b 2 , c 2 , d 2 , ..., b m , c m , d m )
. Each parameter is defined as an interval of values, denoted Ω = [X min , X max ], and the output signal u is defined as an interval of values, denoted Ψ = [0, 1].

ILC implementation on a case-based reasoning system

The case-based reasoning is very appropriate when no formalized knowledge is available. The principle is reasoning by analogy: when problems are similar, their solutions (e.g., the actions to be performed) are also similar. There are two kinds of case-based reasoning [START_REF] Bichindaritz | Apprentissage de concepts dans une mémoire dynamique : Raisonnement a partir de cas adaptable la tache cognitive[END_REF]): case-based reasoning for interpretation and case-based reasoning for problem solving. This paper focuses on a case-based reasoning system for interpretation. As shown in Figure 6, case-based reasoning can be broken down into four steps. The first step involves developing a case database. A case is represented by a vector pair < problem, solution >, and this vector pair is related to the pair < e, u >. The second step is to find the problem in the base that is the most similar to a new problem to be solved. This implies interpreting the current problem with respect to current knowledge stored in a database. In interpretative case-based reasoning, similarity functions have to be defined. The third and fourth steps involve adapting the solution and if necessary, improving it. As mentioned in the previous paragraph, the case- based reasoning system requires defining a similarity function, denoted S, that identifies the pair (e, u) for which e is similar to the input vector e i in the knowledge stored in the database, denoted E i in Figure 7. Knowing all the n th previous pairs (e i-n , u i-n ), this function S finds a possible input signal u with respect to the input vector e i . The Euclidean distance value is used to find the vector e, as shown in Equation ( 11):

(e i ) T -(e) T = min 0≤k<n (e i ) T -(e k ) T (11)
When the vector e is found, the corresponding decision u is considered as the prediction of u i , denoted u * i . The learning process involves managing the knowledge base E i by integrating the previous pairs (e i-1 , u i-1 ).

ILC implementation on a neural network system

Like case-based reasoning system, the neural network system requires a similarity function, denoted S, which identifies the vector (e ∪ u), denoted (e, u), for which e is similar to the input vector e i in the knowledge base, denoted E i . This database E i is modified with respect to a reinforcement function, denoted R, to handle the database content shown in Figure 8. To simplify the explanation of the process, the functions that have the same purpose but a different number or type of parameter have the same name (i.e. the S and R functions). Knowing all the previous vectors (e, u) of E i obtained from the previous iterations, the function S finds a possible input signal u with respect to the input vector e i . The Euclidean distance value is used to find the vector e, as written in Equation ( 12):

S : Ω 3m → Ψ e i → u * i = S(e i ), u * i = u /(e ∪ u) ∩ u = u, ∀e k ∈ E i , (e i ) T -(e) T = min (e i ) T -(e k ) T (12)
When a vector e is found, the corresponding decision u is considered as the prediction of u i , denoted u * i . Then, the function S is adapted and integrates other parameters. This function tries to find the vector (e + i-1 ∪ u + i-1 ), denoted (e + i-1 , u + i-1 ), which corresponds to the vector (e k , u k ) in E i with minimum differences between the parameters of the vector (e i-1 , u i-1 ), as written in Equation ( 13):

S : Ω 3m * Ψ → Ω 3m * Ψ (e i-1 , u i-1 ) → (e + i-1 , u + i-1 ) = S(e i-1 , u i-1 ), ∀(e k , u k ) ∈ E i , (e i-1 , u i-1 ) T -(e + i-1 , u + i-1 ) T = min (e i-1 , u i-1 ) T -(e k , u k ) T (13
) A written in Equation 14, the obtained error 1 is then processed with the function R in order to reinforce the impact of the vector (e i-1 , u i-1 ). As illustrated in Figure 9, this function R handles the weight parameters related to the vector (e + i-1 , u + i-1 ) with a predefined function ∆ that allocates a weight with respect to the value 1 , such as the function developed by Kohonen [START_REF] Kohonen | Data Management by Self-Organizing Maps[END_REF]: R :

Ω 3m * Ψ → Ω 3m * Ψ (e + i-1 , u + i-1 ) → (e x i-1 , u x i-1 ) = R(e + i-1 , u + i-1 ), (e x i-1 , u x i-1 ) T = (e + i-1 , u + i-1 ) T + ∆[(e i-1 , u i-1 ) T -(e + i-1 , u + i-1 ) T ] (14)
The error 1 is written as shown in Equation ( 15):

T 1 = (e i-1 , u i-1 ) T -(e + i-1 , u + i-1 ) T (15)
In a second step, the errors 2 between the vectors (e, u) = (e x i-1 , u x i-1 ) in E i and the reinforced vector (e x i-1 , u x i-1 ) are processed with the function R in order to obtain a new database based on the new vectors, (e x , u x ) = R(e, u) and (e x i-1 , u x i-1 ), as written in Equation ( 16).

R : Ω 3m * Ψ → Ω 3m * Ψ (e, u) → (e x , u x ) = R(e, u), ∀(e, u) = (e + i-1 , u + i-1 ), (e x , u x ) = (e, u) + ∆[(e x i-1 , u x i-1 ) T -(e, u) T ] (16)
The error 2 is written as shown in Equation ( 17):

T 2 = (e x i-1 , u x i-1 ) T -(e, u) T (17)
As written in Equation ( 18), the obtained vectors (e x , u x ) and the vector (e x i-1 , u x i-1 ) are gathered into a new database, denoted E x i , that replaces E i :

E x i = {(e x , u x )∀(e, u) = (e + i-1 , u + i-1 ), (e x , u x ) = R(e, u)} ∪ (e x i-1 , u x i-1 ) (18)
4. Application to the car driving domain The experimental protocol involves using the driving simulator shown in Figure 10. During the experiments, drivers faced different situations and barriers (i.e., the driving rules) [START_REF] Chaali-Djelassi | Predication of violations in road transportation system[END_REF]. In this paper, we examined the priorityto-the-right barrier presented in Figure 11. In fact, there were two priorityto-the-right barriers examined in this study:

The experimental protocol

• A first priority-to-the-right barrier in a rural context, in which the speed limit is 90 km/h.

• A second priority-to-the-right barrier in an urban context, in which the speed limit is 50 km/h. In both situations, the driver S is approaching an intersection where another car is arriving on the right side. Normally, he/she has to give way to this vehicle coming from the right. Forty-four subjects participated in this experiment. Out of 131 situations -66 for first priority-to-the-right barrier situation (4 for familiarization purposes) and 65 for the second priority-to-the-right barrier situation (4 for familiarization purposes) -33 barrier removals were observed. Barrier removal means that the drivers did not give way to the vehicle coming from their right.

In the experiment, the severity was expressed in terms of four performance criteria: safety, opportunity for action, driver comfort and time spent [START_REF] Chaali-Djelassi | Ponderation functions of the car driver decisions[END_REF]. It was possible to associate the situation evaluation with the BCD model parameters and the observed behaviour (priority respected or not). In order to compare the correct prediction rate using the systems based on the BCD model (i.e., the case-based reasoning system and the neural network system), the input vectors e contained the Benefits, Costs and Deficits for each barrier removed and/or each barrier respected. The BCD model parameters were evaluated for the four criteria stated above.

The performance criteria

Four performance criteria were chosen to analyze the barrier removal in terms of Benefits, Costs and potential Deficits: safety, opportunity for action, driver comfort and time spent. With respect to the actual position of the car on the road, several points can be identified: admissible points on which the driver is authorized to drive and potential collision points on which the driver is not authorized to drive (Figure 12). At a given instant t i , the position and the environment (e.g., road geometry, road limits) of the car are known.

Safety

The safety indicator is used to calculate the severity of the incident based on a predictive time-window. New positions are predicted using a sampling rate for time and steering angle (e.g., 2 seconds and 22,5 • ). These predicted positions produce a tree-like structure, in which the root is the current position of the vehicle at instant t i , and the leaves are the predicted positions at instant t i + 2 seconds. In this tree-like structure, each node n j is characterized by a possible position on the road and an instant t j . If the position is not a collision point, this position is judged safe (i.e., an admissible point); otherwise, the position is judged dangerous (i.e., a potential collision point). In the latter case, the dangerousness of a point is inversely proportional to the time (i.e., time of collision). As written in Equation ( 19), the higher the value of s saf ety , the more severe (i.e., less safe) the incident.

s saf ety = Card(n j |position(n j ) = "dangerous") × ( 1 t j ) (19)
Figure 13 illustrates two situations: in the situation A, s saf ety (i.e., the • for the Benefit, B saf ety (A,B) = false;

• for the Deficit, D saf ety (A,B) = true, in that a potential collision before 1 second has elapsed is unacceptable.

Opportunity for action

Inside the predictive time-window, the more dangerous points that can be reached, the less chance the driver has to choose a safe action. The incident severity in terms of opportunity for action is given in Equation ( 20):

s OpportunitiesF orActions = 1 - Card(n j |position(n j ) = "dangerous") Card(n j ) (20)

Driver comfort

The comfort criterion is divided in several sub-criteria: the number of braking actions, the number of accelerations, the number of steering actions and the available space around the car. For the first three sub-criteria, the lower the number of manoeuvres, the more comfortable the driving situation. For the last sub-criteria, the more the available the space around the car, the more comfortable the driving situation. An example of the evaluation of the available space around the car is illustrated in Figure 14.

Time spent

This indicator, t s , corresponds to the difference between the acceptable time limit t a and the time really spent and measured t m in Equation ( 21). The acceptable time limit t a is obtained by dividing the distance d by the speed limitation of the road S.

t s = t m -t a (21)
After the experiments, the values of the above criteria were evaluated for the priority-to-the-right barriers. The average values were then used as a threshold to determine the Benefits or the Costs: a value under the average threshold is associated to a Benefit, and a value over the average threshold is associated to a Cost. The safety criterion is related to the occurrence of a Deficit, an improvement of a Deficit or a decrease in a Deficit. The other criteria are related to Benefits or Costs. These criteria were evaluated for specific geographical zones, such as the zone where the car is located with respect to the priority-to-the-right barrier and the zone where the car is situated on the crossroads.

The results

The two systems based on the BCD model (case-based reasoning and neural network) were then used to study the rate of correct predictions, by comparing the predicted u i and the real observed u * i (i.e., the prediction values they produced and the real observed values). The predictions involve determining whether or not a driver will remove a given barrier. Results for the two systems for the first priority-to-the-right barrier situation are reported in Figure 15. The predictions were for 66 iterations, with 4 iterations used for familiarization purposes. Results for the second priority-to-the-right barrier situation are reported in Figure 16. The predictions were for 65 iterations, with 4 iterations used for familiarization purposes. The results shown in Figure 15 and 16 prove that our systems are able to learn from barrier removals interpreted in term of Benefits, Costs and Deficits. The rate of correct predictions increases progressively for both priority-to-theright barrier situations and converges between 70% and 100%. Both these systems give acceptable correct prediction rates, and they are complementary because their prediction rates sometimes concerns different cases.

Conclusion

This paper described the BCD model framework in order to analyze human behaviour in terms of Benefits, Costs and Deficits, comparing the consequences of situations and action plans or procedures. Using this BCD model framework, we defined and validated both a case-based reasoning system and a neural network system for predicting barrier removals. These systems were applied to car driving, identifying Benefits, Costs and Deficits with respect to four performance criteria: safety, opportunity for action, driver comfort, and time spent. The rate of correct predictions obtained by these systems increased with the evolving learning process based on the BCD model parameters. Therefore, this study has shown that it is possible to design systems capable of learning from human errors interpreted in terms of Benefits, Costs and Deficits in off-line experimental conditions. The maximum obtained rate is over 80% after only 10 iterations. Further studies aim at determining specific situations that are correctly predicted by each learning system. The rate of correct prediction could then be increased by merging the knowledge of each system. Two main perspectives are possible:

• The improvement of the BCD model. Several evolution of the model may be studied: the integration of probability of success or failure of barrier removal, the weighting of the BCD parameters, the selection of optimal action plan, and the integration of organizational factor such as cooperative or competitive factors [START_REF] Vanderhaegen | Principles of cooperation and competition: application to car driver behavior analysis[END_REF].

• The improvement of prediction systems. Some researches have to be done at different levels in order to study the feasibility of several alternatives: the identification of minimum relevant data in the input framework, the extension of the application domain, the merging of knowledge of different systems, the learning from organizational factor

Figure 1 :

 1 Figure 1: Evaluation of the BCD model parameters for two situations.

Figure 2 :

 2 Figure 2: Illustration of the BCD model parameters for two situations.

Figure 3 :

 3 Figure 3: Evaluation of the BCD model parameters for two procedures.

Figure 4 :

 4 Figure 4: Illustration of the BCD model parameters for two procedures.

Figure 5 :

 5 Figure 5: The prediction process statement.

Figure 6 :

 6 Figure 6: The steps for case-based reasoning [23] [24].

Figure 7 :

 7 Figure 7: Case-based reasoning system for interpretation.

Figure 8 :

 8 Figure 8: The iterative learning formalism based on the BCD parameters.

Figure 9 :

 9 Figure 9: Allocation of a weight ∆( ) regarding an error value .

Figure 10 :

 10 Figure 10: The car driving simulator.

Figure 11 :

 11 Figure 11: The priority-to-the-right barrier.

Figure 12 :

 12 Figure 12: Examples of admissible points and potential collision points allocated to a given car driver.

Figure 13 :

 13 Figure 13: Examples of admissible points and potential collision points for a given driver, with a time-window of 0.5s severity of the incident in terms of safety) is 0; in the situation B, s saf ety is 2 (1/0,5). It is possible to compare situations A and B in terms of Benefit and Deficit:

Figure 14 :

 14 Figure 14: Assessment of the available space to move freely.

Figure 15 :

 15 Figure 15: Prediction results for the first priority-to-the-right barrier removal.

Figure 16 :

 16 Figure 16: Prediction results of the second priority-to-the-right barrier removal.

to design for instance human error tolerant barrier [START_REF] Vanderhaegen | Human-error-based design of barriers and analysis of their uses[END_REF], the application of allocation criteria such as those defined on [START_REF] Vanderhaegen | Multilevel organization design: The case of the air traffic control[END_REF] related to the prediction systems, and the on-line prediction by implementing onboard learning systems.

Acknowledgments

The


Jean-Pierre Toumazet
email: j-pierre.toumazet@uca.fr

Laurence Hamon

Carine Robles

VirtuElec : A Tool Designed by and for Students for Training in Electrical Hazards

Keywords: Co-design, Electrical hazards Simulation, Immersive Virtual Reality, Interactive Devices, Multidisciplinary, Problem-Based Learning, Professional gestures I

The teaching of electrical hazards for future professionals is an important issue. This problem is complex, because to train students in risk, it is necessary to confront them with dangerous situations, but without making them take risks. The VirtuElec project was born in this context: coproducing, with a company specialized in virtual reality, an environment simulating electrical hazards and allowing to train according to different scenarios at different levels of competence. The originality of the project is to involve the students themselves in the construction of this environment. By integrating a project team, they worked in a design office to codevelop this tool and enrich it with video and virtual supports: a training support carried out by students and for students. Students who participated in this project gained knowledge in the areas of electrical hazards, virtual reality, and teamwork, but they felt they gained the most proficiency in the last two skills.

INTRODUCTION

It is essential for students in the field of competence of electrical engineering to have a good knowledge of electrical hazards, in order to be able to identify them and prevent accidents, which are usually very serious. This is indispensable first in the context of their training and for the actions they will have to carry out in the professional world. This is all the more true since, with the development of apprenticeship training and more generally the professionalization of training, learners are increasingly confronted in their training course with situations of potential danger in an industrial environment.

At present, training exists for the students concerned, but it takes place under conditions quite different from those they will face in their professional activity. Even if some interventions are indeed carried out in conditions close to the industrial context, on a real electrical cabinet, they require the presence of a trainer for a student, due to the presence of very real risks. Moreover, this situation is stressful for the student faced with the risk (even if all precautions are taken) and for the trainer, who assumes a heavy responsibility.

The objective of the project, co-developed with a company specialized in virtual reality, was the design of a virtual environment presenting different scenarios of electrical risks. Depending on the level of expertise of the learner, a mission is given to him or her and he or she must take the right decisions in terms of choice of intervention and protection equipment, of behavior in the face of a risk, and of control of professional gestures.

The objective is to have a unique, innovative, modern and efficient tool developed specifically for our training needs. The originality of the project is that it is a real partnership with a company, really involving students who have worked in a design office context, co-developing the tool in terms of ergonomics and functionality: An educational tool developed by students for students. After a presentation of the context of the use of virtual reality for the prevention of occupational risks and the modalities of development of the project in Section 2, the Section 3 describes the methodology followed by the project team, the functionalities of the tool developed, and the Section 4 presents first results of the evaluation of the perception of the project by the students who participated in its conception.

II. CONTEXT

The use of virtual reality for education has been the subject of many articles in recent years, addressing both the interest of this new tool, but also its limitations [START_REF] Radianti | A systematic review of immersive virtual reality applications for higher education: Design elements, lessons learned, and research agenda[END_REF]- [START_REF] Němec | Using virtual reality in education[END_REF]. If we refer more specifically to the field of occupational safety and health, realistic virtual environments have many advantages [START_REF] Kassem | Virtual environments for safety learning in construction and engineering: seeking evidence and identifying gaps for future research[END_REF] [START_REF] Wang | A critical review of the use of virtual reality in construction engineering education and training[END_REF]. The first and most obvious is the possibility of exploring an environment of potential danger, without taking risks, but also without putting colleagues at risk or causing damage to equipment. The learner also has the opportunity to perform actions and make mistakes without risk to him or her, and without feeling the pressure of other colleagues or the assessor, as would be the case in a real-life scenario [START_REF] Patel | The effects of fully immersive virtual reality on the learning of physical tasks[END_REF]. He or she also has the possibility of being wrong, without consequence, and as many times as necessary. All these conditions lead the learner to be a real actor of his or her formation: the solution cannot come from elsewhere; the learner is obliged to act, to interact with what surrounds him or her, to progress in the mission.

The specific case of electrical hazards, which currently remains one of the main causes of fatal accidents in industrial environments, has been the subject of numerous studies and developments in the field of virtual reality. In particular, mention may be made the application of virtual reality for the training of electricians working on substations [8][9], in the field of construction [START_REF] Zhao | Using Virtual Environments to Support Electrical Safety Awareness in Construction[END_REF] or power distribution networks [START_REF] Buriol | A Virtual Reality Training Platform for Live Line Maintenance of Power Distribution Networks[END_REF], and more generally in all fields where electrical risks are present [START_REF] Halpin | Simulation-Based Electrical Safety Training[END_REF]. These generally concern tools for experienced professionals, the aim of which is to enable them to train on devices on which it is usually difficult, if not impossible, to train, either because of their difficult access or because it is impossible to manoeuvre on these elements without causing a customer blackout. Other types of educational tools exist in the context of electrical risk training, the most common being based on videos illustrating risk situations and including quizzes that allow students to position themselves in terms of what to do when an electrical risk appears. Even if these tools illustrate realistic situations, the students are always in the position of an outside observer, and are never really confronted with the potential danger. These learning conditions are therefore far from reality.

The VirtuElec project's approach is complementary to these developments: it aims to enable the training of students with no professional experience related to interventions on electrical installations. In this context, the virtual environment is of course intended to reproduce as closely as possible the real environment, but not in order to remind the learners of their daily life, but on the contrary to make them discover what their real future environment will be. In these circumstances, it is important to simplify the environment by not including too many non-essential elements, so that the learner can quickly focus on his or her mission. In addition, the target audience is wide, and skill levels in electrical hazard situations are very different. It was therefore necessary to provide a virtual environment compatible with several intervention scenarios.

III. MATERIALS AND METHODS

The first step in this work was to constitute a 'project team'. The work carried out is highly multidisciplinary and has been the subject of a close partnership between (1) the "Electrical engeneering team" including two teachers in the field of electrical hazards, two technicians specialized in this field, and 9 undergraduate students; (2) the "partner company", a specialist in virtual reality and recipient of several awards in this field, (3) the "audio-visual team", composed of two technicians, for the production of audio and video media and (4) the "pedagogical engineering team", made up of two pedagogical engineers whose mission is to ensure the accompaniment of all the actors in this innovative approach (Figure 1).

From a practical point of view, the virtual environment was developed to be implemented on Oculus Quest 2 virtual reality headsets, which are autonomous headsets allowing greater freedom of movement and better portability of the device [START_REF] Hillmann | Comparing the Gear VR, Oculus Go, and Oculus Quest" Unreal for Mobile and Standalone VR[END_REF]. The possibility of connecting the helmet to a large screen for demonstrations was also provided. Finally, the tool made also allows recording the journey of each learner in the virtual environment in video format, to be able to debrief a posteriori. The actions carried out by the students in relation to the project teams can be divided into 3 main steps: The first consisted of the design of the 3D environment, including the virtual electrical cabinet on which the learners will have to intervene, but also the operative part, consisting of a robotic arm, as well as a intervention preparation room where the necessary equipment is available. For more realism, a real device present on the training center inspired this virtual set. In this context, the students had to imagine the virtual electrical installation, draw up the electrical diagram, define and then model all the components, and finally to design the implementation in the complete virtual environment (Figure 2) The second step was to design the intervention scenarios for electrician apprentices, simulating 3 levels of competence in a professional environment. The simplest is the beginner level, (including two options: step-by-step guidance or free learning) during which the operator must replace a defective element that was previously indicated to him. The most complex is the autonomous level (autonomy in actions, alerts are displayed in case of error and aids are available) during which the operator must look for the cause of a failure and perform troubleshooting. Finally, the expert (a) (b) level (anticipation of risks before the intervention) during which the operator must manage the safety of a team working on an installation. For each of these levels, the learner is expected to be able to choose the protective equipment and tools required for their mission, follow the correct procedure, and perform the correct technical actions.

In order to have a common language between the "electrical engineering team" and the "virtual reality team", the scenarios description was developed in Grafcet (graphic programming, easily interpretable by all). For the virtual experience to be realistic, it was essential to give the learner the opportunity to make mistakes up to virtual electrification, simulated by a vibration. Three configurations are the possible (Figure 3): (a) the operations are performed correctly, (b) some errors require to stop the current action and to start it again (the troubleshooter does not intervene on the right element for example) and (c) the errors don't have an immediate consequence, but will cause an accident in the long term (the operator has incorrectly assessed the risk, or poorly chooses its protective equipment). In case of false manipulation, a vibration of the joysticks and a flash light simulates the electric shock. Finally, to illustrate the complex technical gestures, difficult to represent in the virtual environment, because demanding in terms of calculation capabilities, videos are accessible in the form of help in the virtual environment. These videos were shot with immersive cameras to illustrate as accurately as possible the technical actions to be performed, as shown in Figure 4 in a troubleshooting procedure. The final step, which is still partially in process, is the encoding of the scenarios algorithm by the partner company and their testing in the virtual environment for validation.

During the entire development phase of the project, a double follow-up was carried out: first, a technical followup, with regular meetings (each week) including the different teams involved in the progress made, and a pedagogical follow-up in the form of questionnaires offered to students in order to collect their feelings on different aspects of the project. The areas questioned were the evaluation of the accompaniment in the project, the links between the project and the teaching, the material and technical environment and the contributions for them of the project, in particular its multidisciplinary aspect.

IV. PRELIMINARY RESULTS

The pedagogical interest of this project lies at two different levels; the creation of a custom VR tool for the training of students on the one hand, and the pedagogical approach of co-design of this tool, including future users in the design of the training tool on the other hand. Now, the tool is still under development, and it is therefore too early to assess its impact on the electrical risk training of students. This analysis will of course be carried out as soon as the tool is in place, scheduled for September 2021. Following this initial implementation and feedback from the student evaluations, we plan to continue to evolve the scenarios and to a lesser degree the virtual environment, in order to make it even more efficient. This evolution will be based on the results of surveys submitted to students in order to analyze their appropriation of the virtual reality tool. These tests will be carried out at two levels: firstly with beginners, for whom the virtual environment will be the only experience of electrical risks, but also with final year students, who will have had the opportunity to work on real electrical installations. The idea behind this double evaluation is to assess the tool's ability to address both the problem of discovering electrical risks for non-electricians and the realism of simulated situations for more experienced users.

The analysis that we have already been able to do relates to the approach of co-designing the teaching support by involving the students themselves. The results of the evaluations, relating to the items described in the description of the method, made it possible to highlight several interesting elements.

First, the students expressed an overall satisfaction level of 9.5/10 for this project. They particularly appreciated the autonomy they were given (100% satisfaction) as well as the support and follow-up (89% very satisfied, 11% satisfied) In terms of support, the students did not have any difficulty managing the high number of interlocutors around them. On the contrary, they appreciated the cohesion and the diversity of this team and the associated skills was really experienced as an asset. Collaborative work with specialists in other technical fields was evaluated as an asset by 78% of students, both an asset and a constraint by 11% and neither an asset nor a constraint by 11% of students

In terms of the links between the project and teaching, the students' perception is clearly that they have developed competence in fields not directly related to their core training, electricity: 56% strongly agree and 44% agree with this perception. They are also aware that they have made progress on aspects related to electrical safety, but less noticeably: 0% strongly agree 78% somewhat agree and 22% somewhat disagree with this perception. It is clear that in this respect, students are underestimating their rise in competence in their field of specialization. To be able to write the intervention scenarios in the virtual environment, students had to reach a high level of mastery of the intervention rules in a context of electrical risk, but this essential aspect appeared secondary to the students compared to the new skills in virtual reality and video production. The reason may be that these two areas are completely absent from their initial competency panel, so the discovery was total.

In terms of the contribution of the project, the multidisciplinary and collaborative dimensions of the project were the most appreciated by the students, more than the technical contribution on the heart of the subject, that is to say the management of electrical risks. Thus, to the question of the main skill developed in the framework of this project, 56% of the students answered the ability to communicate with interlocutors from various fields of competence, 33% the ability to formalize expectations and only 11% the ability to master the technical elements.

V. CONCLUSION

The developed system allows the learner to be truly immersed in the virtual context. It allows students to project into their future professional world, and to progress at their own pace, and with a level of autonomy that they can manage, by requesting or not to contextual aids present in the virtual environment.

The realization of this project by the students aroused a great deal of enthusiasm and the organisation of the project team as an engineering office allowed a lot of interaction within the micro-enterprise thus formed. While the initial idea of involving students in the design of teaching tools was primarily intended to enable students to develop technical and pedagogical skills, rather, it was found that they placed greater emphasis on the opening of their field of expertise to virtual reality, video production, and teambased collaborative work experience. This awareness of the perceived gap in the interest of the project between teachers and students was only possible thanks to the support of the project by the pedagogical team and the associated desire to better understand how this type of pedagogical initiative is perceived by the main stakeholders. This better understanding of the expectations and motivations of the various people involved will make it possible to sustain and strengthen these actions and better support future initiatives.

Figure 1 :

 1 Figure 1 : Synoptic of the VirtuElec project

Figure 2 :

 2 Figure 2 : Actual electrical cabinet (a) and associated VR modelling (b)

Figure 3 :

 3 Figure 3 : Programming of intervention scenarios

Figure 4 :

 4 Figure 4 : Image extracted from a video explaining the voltage measurement process

Copyright (c) IARIA, 2021. ISBN: 978-1-61208-873-0 eLmL 2021 : The Thirteenth International Conference on Mobile, Hybrid, and On-line Learning

ACKNOWLEDGMENT

This research was financed by the French government IDEX-ISITE initiative 16-IDEX-0001 (CAP 20-25). In this context, the "Learn'in Auvergne" program was launched, with the aim of supporting educational teams in the design, implementation and evaluation of educational and digital innovations. Thanks to J-F Vérité (2JProcess company), J-J Diaz and B Beghein (Electical Engineering team), A. Cauchy and D. Saint-Gérand (Audiovisual Team), and the students in charge of the project: T. Clair, S. Coletto, C. Duplessy, T. Sauvagnat, F. Harduin De Grosville, B. Collet, M. Rumeo, M. Poillot, A. Da Costa for their contribution.


Damir Mukhamedshin
email: damirmuh@gmail.com

Alexander Kirillovich
email: alik.kirillovich@gmail.com

Using FLOSS for Storing, Processing and Linking Corpus Data

Keywords: corpus linguistics, corpus manager, linked open data

Corpus data is widely used to solve different linguistic, educational and applied problems. The Tatar corpus management system (http://corpus.antat.ru) is specifically developed for Turkic languages. The functionality of our corpus management system includes a search of lexical units, morphological and lexical search, a search of syntactic units, a search of N-grams and others. The search is performed using open source tools (database management system MariaDB, Redis data store). This article describes the process of choosing FLOSS for the main components of our system and also processing a search query and building a linked open dataset based on corpus data.

Introduction

In this paper, we discuss the development of the corpus management system for the Tatar National Corpus "Tugan Tel" [START_REF] Suleymanov | National corpus of the Tatar language "Tugan Tel": grammatical annotation and implementation[END_REF] (Fig. 1). The main components of the corpus data management system are the following: Database, Search engine and User interface. Development of a corpus data management system cannot begin without a clear understanding of which tools will be used to store and process corpus data. Therefore, one of the important factors when choosing and using tools for data storing and processing is for us their open source code, which is fundamental to ensure transparency and flexibility of the tool.

When choosing tools for processing and storing corpus data, we were faced the task of finding a set of FLOSS to ensure high speed of performing search queries (no more than 0.1 seconds for direct search queries, no more than 1 second for reverse search queries), wide search capabilities (at least direct and reverse search, search in parts of word forms and lemmas, mixed search, phrase search), and the possibility of further growth of system performance and functionality. The general architecture of the corpus management system is represented at Fig. 2. This model includes three main components: a web interface, a search engine, and a database. Tatar texts with morphological markup of each token are loaded into the system database. Interaction between a corpus management system and users is performed through user queries. The search results contain the set of sentences which include the tokens from user queries. We also make the corpus dataset built according to the standards of the LLOD project.

Using FLOSS in Corpus Management System

To choose FLOSS for storing and processing of corpus data, we formed a list of the most important selection criteria:

1. Performance. The solution should produce an average of at least 10 search operations per second. We analyzed information in public sources [START_REF] Cimiano | Linguistic Linked Open Data Cloud[END_REF] and chose FLOSS according to criteria 2-5. The resulting FLOSS set is presented in Table 1.

Table 1. Chosen FLOSS for storing and processing corpus data.

Name

Type and main features memcached 1 Storage system of keys and values in memory memcacheDB 2 Distributed key-value storage system. It supports transactions and replication Redis 3 Non-relational distributed data storage system. It allows storing strings and arrays and making selections from them FoundationDB 4 NoSQL database with a shared nothing architecture. It provides an ordered key-value store with transactions Sphinx 5 Search system consisting of an indexer and a full-text search module

Elasticsearch 6 Distributed RESTful search engine. It allows making fulltext search for structured data and performing complex search queries MySQL To verify compliance with the first criterion, we conducted a series of experiments on writing and searching based on the generated data [START_REF] Mukhamedshin | Choosing the Right Storage Solution for the Corpus Management System (Analytical Overview and Experiments)[END_REF]. The best results were shown by the MySQL + Redis suite, which was chosen by us to store data in the corpus management system To build the system based on the selected components, additional elements must be included. So, to bind the PHP interpreter and the Redis data warehouse, we use the PhpRedis extension. In order for the PHP interpreter and MySQL DBMS to work in tandem, we use the php-mysql package, namely the mysqlnd driver, which allows working with the DBMS using its own low-level protocol.

Thus, the scripts executed by the PHP interpreter allow operations with data both from the Redis data storage and from the MySQL DBMS. Performing operations in the order necessary to solve the tasks assigned to the corpus data management system, PHP scripts are the link between indexes and cached data stored in Redis storage, index tables and text data stored in MySQL DBMS.

Let us consider how the processing of a simple direct search query alma tat /apple en is executed. The process execution of such query is shown in Fig. 3.

First of all, the script that performs this task searches the identifier of the word-form alma in the Redis database, by making a request using the PhpRedis extension. Already at this point, the script may report an error in the query, if the identifier of the desired wordform is not found in the corpus data.

In the second step, the script makes a request to the MySQL database using mysqlnd. In this case, the script needs to get a list of sentences containing the desired wordform. This data is stored in the index table of corpus data. In response, the script receives a list of context (sentence) identifiers, according to which in the third step the required number of sentence texts is requested. The received data is displayed to an user in the form of an HTML document or a JSON structure. The corpus has been published on the Linguistic Linked Open Data cloud [START_REF] Cimiano | Linguistic Linked Open Data Cloud[END_REF]. The dataset is represented in terms of NIF [START_REF] Hellmann | Integrating NLP using Linked Data[END_REF], OntoLex-Lemon [START_REF] Mccrae | The OntoLex-Lemon Model: Development and Applications[END_REF], LexInfo, OLiA [START_REF] Chiarcos | OLiA -Ontologies of Linguistic Annotation[END_REF] and MMoOn [START_REF] Klimek | Creating Linked Data Morphological Language Resources with MMoOn -The Hebrew Morpheme Inventory[END_REF] ontologies. LLOD publishing platform consists in the following open-source components (Fig. 4). The RDF is stored in the OpenLink Virtuoso triplestore. The dataset is available via deferrable URI's and SPARQL endpoint. Deferrable URI's are accessible throws the LodView RDF browser, based on the Apache Tomacat webserver. The query interface is powered by YASQE [START_REF] Klimek | Creating Linked Data Morphological Language Resources with MMoOn -The Hebrew Morpheme Inventory[END_REF].

Conclusion

The solutions presented in this article applied in the developed corpus management system. Using FLOSS significantly reduced the development time and ensured the transparency of processes, flexibility, and possibility of in-depth analysis, as well as opportunities for further development.

The corpus data management system is used to work with Tatar texts. The total volume of the collection of Tatar texts is about 200 million wordforms. The average execution time of the direct search query does not exceed 0.05 seconds in 98% of cases, and the reverse search is performed by the system within 0.1 second in 82% of cases, which exceeded the expected system performance. In many ways, such performance is provided by FLOSS, used for data storage and processing. Also, thanks to FLOSS, search capabilities were expanded in the system. The search using category lists, the complex search using logical expressions, the search for named entities and other functions were added to the advanced version of the system.

Fig. 1 .

 1 Fig. 1. The corpus manager GUI

Fig. 2 .

 2 Fig. 2. Abstract structure of the corpus data management system

Fig. 3 .

 3 Fig. 3. Process execution of search query алма

Fig. 4 .

 4 Fig. 4. LLOD publishing platform

  2. Functionality. The solution should provide a possibility of direct and reverse search by wordforms and lemmas, search by parts of wordforms and lemmas, and phrase search. 3. Compatibility with other software. FLOSS for data storage should work with FLOSS for data processing and vice versa. 4. Completeness of documentation and presence of a large community. Everyone should be able to continue its development, focusing on the documentation and the accumulated experience of the community. 5. Development prospects. The solution should develop and maintain modern technologies.

Acknowledgements. The work was funded by Russian Science Foundation according to the research project no. 19-71-10056.