## 3 Approach
### Classification of Technologies  
The classification, as aforementioned, adopts nine categories, as also shown graphically in Figure 4. The rest of the technologies follow the taxonomy in Appendix A. Then, after setting the parameters equal to some value, relationships could be established in terms of the extra properties. For instance, the milling machine could also have a whole sequence as a property for a monitoring system and one more for the controller. This could also be depicted in terms of classical UML, for reasons of simplicity. However, this does not end there; various levels of variables have to be defined in order to define the full manufacturing problem (Table 1). Indicatively, level \(1\) can concern data types such as INTEGRER. Level 2 can be about structures for the manufacturing operation such as criteria, process parameters, performance indicators and entities, which are analyzed below, Level 3 can regard complex structures consisting of many level 2 entities. One would then also need classes and their instances, as well as functions that also need to be defined, in order for this meta-language to be compiled into some sort of concrete programming language. This would then lead to a full systemic description that can be used for optimization. To continue, more complicated methods can be defined, but this exceeds the purposes of the current work. Finally, for reasons of completeness, the workflow should be able to be defined, preferably in the form of a state machine. This would help define the requirements to a full extent using UML4.0. However, the automation of the workflow is not easily automated. There can be many different ways of interacting with the elements mentioned, and possibly this is a human-in-the-loop operation. The first step is to define what the operation is about: designing a system or operating it. This means that when it comes to a scheme of the form function (module, criteria)_, it has to be specified whether the design of the function has to be considered or its operation. For instance, the cases _monitoring (milling machine, energy consumption)_, _design_ and _monitoring (milling machine, energy consumption)_ and _operation_, as also indicated in Table 1, are completely different. The first one refers to selecting the equipment (sensors, communications, etc.) and the second one is about implementing the monitoring. The second step of the automation of the workflow is to transcribe this to a flowchart. For instance, _function (module, criteria \(\char 60\) constrains)_ is straightforward, as it refers to one loop (Figure 5a). The module selection is an iterative procedure, where various candidate \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Category** & **Symbol** & **Technology/Operation** & **Comment** \\ \hline \multirow{8}{*}{Level 1} & A1 & Milling machine & A combination of process and machine tool \\ \cline{2-4}  & A2 & RGB Camera \({}^{1}\) & A vision systems subclass \({}^{2}\) \\ \cline{2-4}  & A3 & Controller & It refers to the implementation—from the machine point of view \\ \cline{2-4}  & A4 & IoT Communications & - \\ \cline{2-4}  & A5 & PID \({}^{3}\) Motion Control & - \\ \cline{2-4}  & A6 & FPGA \({}^{4}\) & To implement control \\ \cline{2-4}  & A7 & Ziegler-Nichols algorithm & To calibrate the PID controller \\ \cline{2-4}  & A8 & Matlab & It is part of ICT \\ \cline{2-4}  & A9 & Closed-Loop System & - \\ \hline \multirow{2}{*}{Level 2} & B1 & Enhanced Milling Machine & Integrating Level 1 modules \\ \cline{2-4}  & B1 & Enhanced Milling Machine & B1 = (A1, A3, A5, A6) \\ \cline{2-4}  & B2 & Closed-Loop System operation & B2 = (A2, A4, A6) \\ \hline Method 1 & M1 & Design a PID Controller for the Milling Machine & M1 = (B1, A7, A8) \\ \hline Method 2 & M2 & Run the PID Controller for Milling Machine & M2 = (A1, A9, B3) \\ \hline \hline \end{tabular}  
\({}^{1}\) Red–Green–Blue, \({}^{2}\) to minimize cost, \({}^{3}\) proportional–integral–derivative, \({}^{4}\) field-programmable gate array.  
\end{table}