Collapse-resistance optimization of fabricated single-layer grid shell based on sequential approximate optimization

In this work, the surrogate model of the collapse load in terms of the structural morphology is established based on the radial basis function (RBF) network, and the form-finding optimization of the fabricated single-layer grid shell aiming at the improvement of collapse-resistance capacity is realized. To improve the accuracy of the optimal solution, the density function is used to determine the sparse region in the design domain and add new sample points in the sparse region. Avoiding that the optimization is trapped in a poor local optimum, the starting point is updated to approach the global optimum. Three types of fabricated single-layer grid shells, including cylindrical surface, free-form surface with symmetric supports, and free-form surface with asymmetric supports, are selected for form-finding optimization. The results prove the efficiency of the optimization algorithm. The proposed optimization method considers the mechanical properties of assemble joints and reflects the mechanical characteristics of the actual structure. It can be used for form-finding optimization and shape selection in structural design and thus has engineering significance.


Introduction
The single-layer grid shell structures are commonly used in space structures (Schlaich et al. 2009;Lad et al. 2021) due to the advantages of reasonable stress, economical cost, construction convenience, and strong adaptability to complex and diverse surfaces. As a kind of shell, the single-layer grid shell structure is sensitive to an external load and is prone to unstable failure (Zeng et al. 2023). To prevent progressive collapse from occurring after local damage, it is necessary to investigate the collapse performance and mechanism of single-layer grid shell structures. Iskhakov and Ribakov (2014) found that buckling is unavoidable for shell structures through experimental and theoretical investigations and proposed a method to prevent brittle shell failure by using other dominant failure modes that appear before the buckling. Bruno et al. (2016) proposed the equivalent geometric nodal imperfections by introducing local metrics of the grid shell geometry for each node and analyzed the relationship between the apex of the initial imperfect geometry and the apex of the deformed shape at collapse. Venuti and Bruno (2018) investigated the grid shell sensitivity to the flexural stiffness of the boundary arch and the shear stiffness of the grid shell with parametric analysis. For a single-layer grid shell structure with assemble joints, the joint stiffness significantly affects the mechanical behavior of grid shell structures (Fathelbab 1987). Thus, it is necessary to consider the effect of joint stiffness when designing or studying fabricated single-layer grid shell structures. Murakami (1992) simulated the performance of assemble joints by setting spring elements at both ends of the beam elements and studied the effect of the mechanical properties of joints on the elastic buckling properties of grid shells under gravity loads. Kato et al. (1998) proposed an analysis model with a nonlinear elastoplastic hinge to simulate the mechanical properties of joints. The initial imperfection of the structure, the secondary effect of members, and the mechanical behavior of joints can be considered when studying the stability-bearing capacity of a single-layer grid shell. Zhang et al. (2022) simulated the mechanical behavior of assemble joints with discrete beam elements and researched the collapse-resistance behavior and collapse failure mode of the fabricated single-layer grid shell. By studying the mechanical properties of a fabricated single-layer grid shell, the mechanical characteristics and failure modes of the structure can be recognized, which can be used to guide structural design and avoid structural damage. When designing a single-layer grid shell structure, some form-finding optimization methods and topology optimization methods can be used to improve structural performance. A series of researches on the optimization methods of the single-layer grid shell structure with various targets, such as lightweight structure, structural stiffness improvement, and structural strength improvement have been proposed. Tomei et al. (2022) proposed shape grammar for the topology optimization of grid shells, which can minimize the structural weight. Richardson et al. (2013) demonstrated a novel two-phase approach to the preliminary structural design of grid shell structures by setting the material minimization and improved structural performance as optimization objectives. Rombouts et al. (2019) optimized the shape of strained grid shells by minimizing the so-called end-compliance, which is defined as the inner product of the external load vector and the resulting displacement vector. Jiang et al. (2018) conducted form-finding for grid shells based on the potential energy method and the ground structure method. To decrease the structural imperfection sensitivity of grid shell structures, Liu et al. (2020) reserved a specific ratio of the bending strain energy to the total strain energy when conducting shape optimization by minimizing the total strain energy. Huang et al. (2022) proposed a bending-active weaving structure that consists of continuous elastic rods and standard joints and conducted lattice optimization to reduce the rod curvature.
In general, the algorithms for solving optimization problems include derivative-based optimization methods and derivative-free optimization methods. For derivative-based optimization methods, the differential information should be provided, or the differential should be approximated through the finite difference method. Compared with derivative-based optimization methods, derivative-free optimization methods are more open and have more application scenarios (Andrew et al. 2009). When optimizing practical engineering structures, the more detailed information reflected by the structural model, the better solution will be obtained by the optimizer. For fabricated single-layer grid shells, the connection behavior of the assemble joints will significantly influence the collapse behavior (Zhang et al. 2022). Therefore, the connection behavior should be considered during the optimization process. Besides, the relationship between the objective function (the collapse-resistance capacity of the structure) and the design variables (the shape of the structure) is provided only in an implicit form. To solve this optimization problem, the sequential approximate optimization with the radial basis function (RBF) network (Nakayama et al. 2002;Kitayama et al. 2011Kitayama et al. , 2013) is used in this paper. The surrogate function of the collapse load in terms of the surface shape is established. The line model of the structure is established and the coordinates of joints are calculated by Grasshopper. In Zhang et al. (2022), both the mechanical behavior and physical dimension of the assemble joints were considered with the elementary unit, and the refined finite element analysis model of the fabricated single-layer grid structure was established. In this paper, a form-finding optimization approach for the fabricated singlelayer grid shell structure with the aim of improving collapseresistance capacity is proposed. The density function is used to determine the sparse region in the design domain and improve the accuracy of the RBF network. The starting point is updated to avoid the optimizer being trapped in a poor local optimum solution and approach the global optimum solution. Besides, optimization is conducted on three types of fabricated single-layer grid shells to prove the efficiency of the proposed optimization algorithm. The proposed optimization method can be used for form-finding optimization and shape selection in structural design and thus has engineering significance.

Establishment of optimization model
The surface morphology of a free-form single-layer grid shell can be determined by NURBS (non-uniform rational B-spline) curves. Based on the control points, the NURBS curve can be built ( Fig. 1a and b). The governing equation of the curve is as follows: where P(t) is the function expressing a curve, q i is the coordinate of the control point, and F i (t) is the weight function satisfying ∑ n i=0 F i (t) = 1. The NURBS curves are selected as the section curves and the orbital curve, respectively. The NURBS surface is produced by the sweeping method (Fig. 1c). The governing equation of the surface can be expressed as follows: (1) where P(u, v) is the function expressing a surface, q ij is the coordinate of the control point, and F i (u) and F j (v) are the weight functions satisfying ∑ n i=0 F i (u) = 1, ∑ n j=0 F j (v) = 1. After the shape of the structure is determined by control points, the grid can be divided with the mapping method (Winslow et al. 2008). For the specified x and y coordinates, the z-coordinates of the joints can be calculated by (2). Figure 1 shows the determination process of structural morphology and joint coordinates of a fabricated free-form single-layer grid shell. With the joint coordinates, the refined finite element analysis model can be established with elementary units, which include the connection regions, discrete beam elements, and tube ( Fig. 1e) (Zhang et al. 2022). The connection region is simulated by a rigid bar, which is used to eliminate the influence of joint size. Discrete beam elements are selected to simulate the mechanical properties of assemble joints between the connection region and tube. The properties of discrete beam elements can be adjusted based on the assemble joints. The tube is modeled by Hughes-Liu beam elements. Finally, the refined finite element analysis model can be established by connecting these joints with the elementary units. The collapse performance of the structure can be computed using the analysis model. And the load when the structural components initiate failure has been identified as the critical collapse load.

Basic equations of optimization model
To improve the collapse-resistance capacity by changing the structural morphology, the shape control points are taken as the design variable and defined as ∈ ℝ n , where is the coordinates of shape control points. In Sect. 3.1 we consider the case with n = 1 , while in Sects. 3.2 and 3.3 we set n to the number of independent control points.
Taking the coordinates of the control points as the independent design variables and structural collapse load as the objective function, the mapping from the structural morphology onto the collapse load is established with the RBF as where h l ∶ ℝ n → ℝ is the lth basis function, m is the number of sample points, and l ∈ ℝ is the weight parameter of the lth basis function.
When the Gaussian kernel is used, the basis function can be written as follows: where r l is the radius of the lth basis function, and l is the coordinate of shape control points of the lth sample point.
The variation range of the coordinates of a control point is defined as the constraint of the optimization, which is L ≤ ≤ U . The shape of the fabricated single-layer grid  shell with the optimal collapse-resistance capacity can be determined by solving the maximization problem of f under this constraint.

Radius of radial basis function
The radius of the Gauss kernel has a large influence on the solution of the optimization problem. When the radius value is small, the Gauss kernel value becomes close to zero immediately, even at a point near the corresponding sample point. In contrast, the Gauss kernel has fat tails when the radius has a large value. The radius of the basis function can be determined as follows (Nakayama et al. 2002;Kitayama et al. 2011): where d max represents the maximum distance between the sampling points. Supposing that all the design variables are equally scaled, the maximum distance can be calculated as follows: where Δd is the regular interval between sample points, and K is the number of sample points in one direction. For ease of understanding, the relationship among the sampling points with two design variables is set as an example, as shown in Fig. 2a.
The relationship between design variables n and the number of sample points m can be expressed as follows: With (6) and (7), (5) can be expressed as follows: For a good approximation, it is required that r∕Δd → 0 at K → ∞ . Besides, the sparseness and density of the sampling points are considered. The radius of the lth basis function can be calculated individually as follows (Kitayama et al. 2011): where d l,max in the numerator is the maximum distance among these sample points. The denominator of the equation is related to the number of design variables n and the number of sample points m. With different design variables n, the relationship between the value of n √ m − 1 and sample points number m is given in Fig. 2b. When the number of design variables is n = 1, the value of n √ m − 1 increases linearly with the increase of sample points. This will lead to the radius of the lth basis function being too small. To avoid the situation above occurring, the calculation formula for the radius of the lth basis function is modified as follows:

Solution of weights of surrogate model
To solve the optimization problem, the first step is to establish the surrogate model based on RBF. In other word, determination of weight values ω l (l = 1, …, m) is an important step to solve the problem. Minimization of the difference value E between the true value and the predicted value can be formulated as: where we have In t his expression, = 1 , 2 , … m T and y l (l = 1, … , m) are the true values of the objective function at the sample points, and λ is a small positive value (e.g., = 1 × 10 −3 ). From the optimality condition of problem (11), optimal ω can be obtained as follows: , is the identity matrix, and = y 1 , y 2 , … y m T .
In (14), H is related to the coordinate of control points, which reflects the structural morphology. is the vector of collapse loads of the structure. Therefore, by adding new sample points, the weight values can be constantly adjusted until the function can reflect the actual relationship between the collapse load and the structural shape. Then the structural morphology, which has the optimal collapse-resistance capacity, can be determined by finding the largest value of f ( ) . The initial sample points are selected by the Latin hypercube sampling (LHS) (Loh 1996). The number of initial sample points is related to the number of design variables, which can be calculated as follows:

Density function to determine sparse region (Kitayama et al. 2011)
In Sect. 2.4, the method to solve the optimization problem has been given. However, there are still two problems. One is that the optimal collapse load may possibly have a big difference with finite element analysis results, indicating that the output results of the RBF network are not accurate. The other is that the optimizer may possibly be trapped in a poor local optimal solution and prevented from finding a better solution. Therefore, the density function (Kitayama et al. 2013) is introduced to determine the sparse region and add new sample points located in the sparse region. With the addition of new sample points, the collapse load output by the RBF network becomes closer to the finite element analysis result. Besides, to avoid the optimizer output being trapped at a poor local optimum, each initial sample point is used as the starting point to find a structure with better collapse-resistance capacity. Moreover, the starting point is updated by the previous optimal result to improve the accuracy of the surrogate mode. The optimizer is looped until the collapse-resistance value of the output solution can not be further improved.
The density function of the sample points is defined as follows (Kitayama et al. 2013): The sparse region in the design variable space can be determined by minimizing D( ) , and the points in the sparse region can be added as new sample points. The weight vector D of the density function can be calculated as follows: the vector D is prepared at the sampling points, D = (1, 1, … , 1) T ∈ ℝ m . So far, the form-finding for grid shell structures aiming at the improvement of collapse-resistance capacity can be realized. The optimization process is shown in Fig. 3. The process can be divided into two steps. The first step is the establishment of the surrogate model. The surface construction, grid division, and joint coordinates calculation of a grid shell are implemented with Grasshopper. The mechanical properties of the assemble joints are simulated by discrete beam elements, and the physical dimensions of the assemble joints are also considered by rigid bars. With the refined finite element analysis model, the collapse load of the structure can be calculated. The surrogate function of the collapse load in terms of the structural morphology is built using the RBF network. The optimum shape of the structure can be obtained by solving the maximization problem of the surrogate function. In the ith loop are the z-coordinates of control points calculated by fmincon function in Matlab and f i is the collapse load of the optimal structure calculated by FEM. The optimization result is added as a new sample point. To ensure that the optimization result is accurate, the density function is introduced to determine the sparse region and add new sample points. The relationship between the number of new sample points m add and the number of design variables n can be expressed as m add = ⌈n∕2⌉ . Looping the optimization program until the optimal solutions tend to converge, and the collapse load output by the optimizer is close to the calculated value of the finite element analysis model. At that moment, an accurate surrogate model has been e s t a b l i s h e d , a n d a n o p t i m a l r e s u l t f step1 , X (1) step1 , X (2) step1 , … , X (n) step1 has also been obtained. To prevent the optimization result from being trapped in a poor local optimum, the second step is used to approach the global optimum. Each of the initial sample points that for the jth loop of step 2 (j ≥ 2) . If there is a point whose function value is larger than the previous objective value, it will be used as a new sample point and the starting point. Besides, the accuracy of the surrogate model is also judged with the same termination criteria as in step 1. Looping the optimizer until max Y j var ≤ f current , the structure with better collapseresistance capacity is obtained.

Numerical experiments
To further illustrate the optimization procedure, form-finding design is conducted on three types of fabricated singlelayer grid shell structures with the proposed shape optimization algorithm.

Example 1: optimization of rise-span ratio of fabricated cylindrical grid shell
For the classical cylindrical grid shell, the rise-span ratio has a significant influence on the collapse-resistance behavior of the structure. To investigate the optimal rise-span ratio, a cylindrical grid shell, 24 m × 36 m with a grid size of 2 m, is designed. For the boundary condition, fixed hinge supports are arranged longitudinally along both sides of the cylindrical grid shell. According to the positions, three types of square steel tubes are selected. The material of the tube is Q345. Double-ring joints are adopted as connection joints (Zhang et al. 2021). The dimensions of tubes and joints are given in Table 1. Uniform vertical loads are applied on the joints of the structure. Taking the rise-span ratio as the design variable, the collapse-resistance capacity of the fabricated cylindrical grid shell is optimized. Design variable: rise-span ratio X ∈ ℝ To find the value of the rise-span ratio X when the structure has the maximum collapse-resistance capacity, the function between the rise-span ratio X and the structural collapse load is established with the RBF network. Max The starting point of optimization: X = 0 During the optimization procedure, the relation curves between the structural collapse load and the rise-span ratio are shown in Fig. 4. The initial sample points are selected using the LHS. With the initial sample points, the surrogate function in Fig. 4a is constructed, and its maximum point (red point in Fig. 4a) is obtained by the interior-point method. New sample points can be added by minimizing the density function. With the increase in the number of sample points, the surrogate function can reflect the actual relationship between the collapse load and the rise-span ratio with increased accuracy, and the optimal solutions tend to converge. The optimal rise-span ratio is 0.257, and the collapse load of the structure is about 43 kN.
The fabricated cylindrical grid shell with optimal collapse-resistance capacity is shown in Fig. 5a. The solution obtained by the optimizer changes with the increase in the number of sample points (Fig. 5b). When the number of sample points is small, the optimal solution changes drastically with the increase of sample points. When the number of sample points m is larger than 13 (Fig. 5b, dotted line), the optimal solutions tend to converge to a certain value. Figure 5c gives the collapse loads obtained by the surrogate model (red curve) and calculated by the finite element analysis model (black curve). After the number of sample points is larger than 13 (Fig. 5c, dotted line), the predicted value of the surrogate model is close to the simulation value. Therefore, for this optimization problem, the number of sample points should not be less than 13 to output a reliable solution.

Example 2: shape optimization of fabricated free-form single-layer grid shell with symmetric supports
The design region considered in this section is a rectangular area of 16 m × 24 m. The boundary conditions are the fixed hinge supports arranged at the four corners of the design region. The structural morphology is determined by five NURBS curves and governed by twelve control points. The locations of supports and control points are shown in Fig. 6a. The grid size is about 2 m. Q345 is adopted for the tubes, and double-ring joints are used to connect the tubes. The dimensions of the tubes and joints are shown in Table 2. Uniform vertical loads are applied on the joints of the structure. The optimization problem can be expressed as follows: , … , X (12) ∈ ℝw h e r e X (1) , X (2) , … , X (12) are the z-coordinates of shape control points.
The variation range of the z-coordinate of the control points is no larger than 8 m, which is 0 ≤ X (j) ≤ 8 The starting point of the optimization is a planar shape: X (j) = 0 (j = 1, … , 12).
The structural morphology of the fabricated free-form single-layer grid shell obtained by the proposed algorithm is shown in Fig. 6b. The collapse load of the optimal structure is 37.36 kN. Table 3 gives the shape control points of the optimal structure. The z-coordinates of control points 1, 2, 11, and 12 are all between 4.72 m and 4.83 m, the z-coordinates of control points 3, 6, 7, and 10 are all between 4.52 m and 4.58 m, and the z-coordinates of control points 4, 5, 8, and 9 are all between 7.72 m and 7.82 m. The points with similar z-coordinates are located in the symmetric position of the structure (Fig. 6a). Thus, the final optimal structure is approximately symmetric. By averaging the z-coordinates of the control points located at the symmetric position, a symmetric structure can be obtained. The collapse load of the symmetric structure is 45.24 kN, which increases by about 20% compared with the asymmetric structure. The reason is that the slight difference among the control points at the symmetric positions leads to geometric imperfection, which weakens the collapse-resistance capacity of the structure.
As mentioned above, the final optimal structure is approximately symmetric. Thus, the structural symmetry is set as the constraint condition of the optimization. As shown in Fig. 7a, the control points located at symmetric positions (same color) have the same z-coordinates. With this constraint, the number of design variables changes from twelve to three.   Design variables: X (1) , X (2) , X (3) ∈ ℝwhere X (1) , X (2) , X (3) are the z-coordinates of shape control points that can change independently.
The surface morphology of the fabricated free-form single-layer grid shell obtained by the proposed algorithm is shown in Fig. 7b. The coordinates of shape control points numbered 1, 2, and 3 are 4.54 m, 4.70 m, and 7.79 m, respectively. The collapse load of the optimal structure is 46.18 kN. The optimization results with three design variables have a similar structural morphology compared with the results that set twelve control points as independent design variables. The collapse loads of the optimal structures obtained by these two methods are also similar after the optimal structure governed by twelve control points is adjusted slightly.
However, when the number of design variables is three, the number of sample points required to obtain the optimal structure is greatly reduced compared to the optimization with twelve design variables. When there are three design variables, the approximate global optimum solution can be obtained only by step 1 in Fig. 3. After fifty-six iterations of step 1, the final results can be obtained. When the number of design variables is twelve, the optimizer output is trapped in a local optimum after thirty-four iterations of step 1. Restarting the optimizer with different starting points to approach the global optimum is necessary, and the final results are obtained after step 2 is looped four times. Therefore, some constraints can greatly improve the optimization efficiency of the symmetric structure. As shown in Fig. 8, a fabricated free-form single-layer grid shell with asymmetric support is selected for shape optimization. The surface is generated by translating the generatrix along the directrix (Fig. 8a). The directrix is generated by the control points numbered 1 to 4, and the generatrix is generated by the control points numbered 4 to 7. The span of the structure is 16 m in the x direction and 24 m in the y direction. The boundary condition is fixed hinge supports surrounding the structure (Fig. 8b). Square section tubes and double-ring joints are selected. The dimensions of tubes and joints are given in Table 4. Uniform vertical loads are applied on the joints of the structure. The optimization problem can be expressed as follows: D e s i g n va r i a b l e s : X (1) , X (2) , … , X (7) ∈ ℝw h e r e X (1) , X (2) , … , X (7) are the z-coordinates of shape control points.
Constraint condition: To make the optimal structure have a shape like a strip, the constraints are set as follows: For the control points at the end points of the generatrix and directrix, the change of the z-coordinate is restricted as −4 m ≤ X (j) ≤ 4 m (j = 1, 4, 7). The variation range of the remaining control points is restricted as 0 m ≤ X (j) ≤ 8 m (j = 2, 3, 5, 6), and the z-coordinates of adjacent control points have opposite signs.
The starting point of the optimization is a planar shape: The coordinates of shape control points in the different stages during the optimization process are given in Table 5. With the initial sample points, the collapse load of the obtained structure shown in Fig. 9 is 69.60 kN, which has a large deviation from the finite element analysis results of 60.83 kN (Fig. 9a). After the 20 iterations, the objective value tends to converge to a certain value. The collapse load of the obtained structure at the twenty iterations is 62.07 kN and approximately equals the value calculated by the finite element analysis model, which is 61.93 kN (Fig. 9b).   Fig. 9 Morphology of the optimal structure in the different stages during the optimization process. a Morphology of the optimal structure with initial sample points b Morphology of the optimal structure after the optimizer run twenty loops c Final optimal structure The collapse-resistance capacity can not be further improved because the optimizer is trapped in a local optimum. The optimizer is restarted by using each initial sample point as the starting point. It is found that the maximum function value output by the optimizer is 66.76 kN, which is larger than the previously obtained value. Thus, the optimal output is added as a new sample point. With the z-coordinates of the control points as the starting point, the accuracy of the surrogate model is verified and improved. Loop step 2 of the optimizer until the collapse-resistance value of the output solution can not be further improved. The final solution is shown in Fig. 9c, and the collapse load of this structure is 68.24 kN.

Conclusions
This article proposes a novel form-finding method with sequential approximate optimization to improve the collapse-resistance capacity of fabricated single-layer grid shells. The establishment of line models, the generation of grids, and the calculation of coordinates of joints are realized by Grasshopper. The elementary unit is established, which consists of connection regions, discrete beam elements, and a tube. The physical dimension of the assemble joint is considered with rigid bars, the discrete beam elements are used to simulate the mechanical behavior of assemble joints, and the tube is established with beam elements. With the elementary unit, the refined finite element analysis model is established. The surrogate model of the collapse load in terms of the structural morphology is established with the RBF network. Form-finding aiming at improving collapseresistance capacity is realized by solving the maximization problem of the surrogate model. The method is practical for shape optimization and selection during structural design. The following conclusion is mainly obtained.
(1) The surrogate model of the collapse load in terms of the structural morphology is established with the RBF network, and form-finding aiming to improve collapseresistance capacity is realized. The refined finite element analysis model considering both the mechanical behavior and physical dimension of the assemble joints is used in the optimization. The refined model accurately reflects the actual structural response (Zhang et al. 2022) and ensures that the optimal solution has strong practicality.
(2) The density function is introduced to judge the sparse region and select new sample points located in the sparse region (Kitayama et al. 2011). By adding new sample points, the output result keeps approaching to the finite element result. Besides, to avoid the optimizer output being trapped at a poor local optimum, each ini-tial sample point is used as the starting point to find a structure with enhanced collapse-resistance capacity. Moreover, the starting point is updated by the previous optimal result to improve the accuracy of the surrogate mode. The optimizer is looped until the collapse-resistance value of the output solution can not be further improved.
(3) The optimization process has visually been presented by solving the rise-span ratio optimization problem. When the number of sample points is small, the optimal solution output by the optimizer changes drastically with the increase of the number of sample points. When the number of sample points is larger than 13, the obtained solution tends to converge. Besides, the collapse loads obtained by the surrogate model and calculated by the finite element analysis model are similar. The example proves the reliability of the termination criteria. (4) Shape optimization has been carried out on the fabricated free-form single-layer grid shells with symmetric and asymmetric supports. For the one with the symmetric supports, the optimization results with three design variables considering symmetry in the structural morphology have a similar structural morphology compared with the results that set twelve control points as independent design variables. However, the number of sample points required to obtain the optimal structure is greatly reduced if the symmetry is set as a constraint condition. Besides, with the increase in the number of design variables, it is difficult to find the global optimal solution only by generating sample points using the density function. It is necessary to update the starting point to approach the global optimal solution.
included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http:// creat iveco mmons. org/ licen ses/ by/4. 0/.