<<

mathematics

Article Further Properties of Quantum Spline Spaces

Gülter Budakçı *,† and Halil Oruç †

Department of Mathematics, Dokuz Eylül University, Fen Fakültesi, Tınaztepe Kampüsü, 35390 Buca, Izmir,˙ Turkey; [email protected] * Correspondence: [email protected] † These authors contributed equally to this work.

 Received: 7 September 2020; Accepted: 8 October 2020; Published: 14 October 2020 

Abstract: We construct q-B-splines using a new form of truncated power functions. We give basic properties to show that q-B-splines form a for quantum spline spaces. On the other hand, we derive algorithmic formulas for 1/q-integration and 1/q-differentiation for q-spline functions. Moreover, we show a way to find the pieces on each interval of a q-spline .

Keywords: quantum splines; q-B-splines; divided differences; q-derivatives; q-integrals

1. Introduction B-splines were constructed by Lobachevsky as convolutions of certain probability distributions in the early 19th century. Spline functions are used in various numerical analysis areas like , approximation, computer aided , numerical solutions of differential equations, etc. The modern theory of spline approximation was started by Schoenberg in 1946, when he used B-splines for statistical data smoothing, see [1]. De Boor gave the recurrence relation for B-splines in [2]. Gordon and Reisenfield formally introduced B-splines into computer aided design in [3]. Mangasarian and Schumaker introduced discrete splines, h-splines, to solve discrete analogoues of minimization problems in a Banach space (see [4]). These discrete splines of degree n are defined on a subset of real line of the form [a, b]h = {a, a + h, ... , a + Nh}, b = a + Nh, whose knot sequence is in [a, b] and their polynomial pieces agree at the knots up to the order n − 1 of forward differences with step size h instead of derivatives. In [5], q-splines which allow us to model tolerances, jumps and quantum leaps in the derivatives at the joins, were defined recursively based on a q-analogue of the de Boor algorithm. After giving certain properties, they defined blossoms for q-B-splines. In [6], fundamental formulas of classical B-splines were extended to q-B-splines. The q-splines are piecewise whose q-derivatives up to some order agree at the joins. A recent study relates q-B-splines with the q-Peano kernels of divided differences and solves a best approximation problem in the space of quantum integrable functions, see [7]. Let t0 < t1 < ··· < tm be the knots, and let n be a nonnegative integer and q 6= 0 be a fixed real. A q-spline function of degree n having knots t0 < t1 < ··· < tm is a function S such that

(i) S is a polynomial of degree up to n on each interval [ti−1, ti) , i = 1, 2, . . . , m. (ii) S is quantum continuous of order n − 1 at the knots.

Then, S is a continuous piecewise polynomial of degree at most n and quantum continuous of order n − 1 at the knots. Here, “quantum continuous of order n − 1 at the knots” means the quantum k derivatives D1/q, k = 0, . . . , n − 1 of adjacent polynomial segments agree at the knots. The rest of this paper is organized as follows. In Section2, we begin with definitions and theorems in q-calculus concerning this work. In Section3, we give some properties of q-B-splines and give proofs which are not stated explicitly in [5]. In Section4, we find a new basis for the

Mathematics 2020, 8, 1770; doi:10.3390/math8101770 www.mdpi.com/journal/mathematics Mathematics 2020, 8, 1770 2 of 10 q-spline spaces with a given knot sequence and degree. We define q-B-splines in a different manner from [5,6] but similar to that of Curry and Schoenberg [8] in which the truncated power function played a significant role. Our approach is based on a certain q-truncated power function rather than the recursive definition of q-B-splines. We show how we can obtain quantum derivatives and quantum integrals of a given q-spline function. Furthermore, we find the polynomial pieces of a q-spline by using quantum derivatives.

2. Preliminaries For a fixed parameter q 6= 1, the q-derivatives are defined by

f (qt) − f (t) D f (t) = q (q − 1)t n n−1 Dq f (t) = Dq(Dq f (t)), n > 2.

Indeed q-derivatives are approximations to classical derivatives and, if f is a differentiable function, then lim Dq f (x) = D f (x). q→1 For polynomials, it follows from the definition of the q-derivative that

n n−1 Dqx = [n]qx , where the q-integers [n]q are defined by ( (1 − qn)/(1 − q), q 6= 1, [n]q = n, q = 1.

Furthermore, the q-factorial is defined by

[n]q! = [1]q ··· [n]q.

The next definition states the q-analogues of a classical definite integral; for details, one may see [9].

Definition 1. Let 0 < a < b. Then, the definite q-integral of a function f (x) is defined by a convergent series

Z b ∞ i i f (x)dqx = (1 − q)b ∑ q f (q b) 0 i=0 and Z b Z b Z a f (x)dqx = f (x)dqx − f (x)dqx. a 0 0

Theorem 1. If F(x) is continuous at x = 0, then

Z b DqF(x)dqx = F(b) − F(a) a where 0 6 a < b 6 ∞. Mathematics 2020, 8, 1770 3 of 10

3. Properties of q-B-Splines The q-B-splines are introduced first by Simeonov and Goldman in [5]. We give from [5,6] the important properties of q-B-splines that will be used in this work. Throughout the paper Nk,n(t; q) refers to q-B-spline basis functions.

Property 1. (Recurrence Relation) Let n > 1 be an integer and {ti; i = k, k + 1, ... , k + n + 1} be a set of distinct real numbers. Then, q-B-splines satisfies the recurrence relation

n−1 n−1 q t − tk tk+n+1 − q t Nk,n(t; q) = Nk,n−1(t; q) + Nk+1,n−1(t; q) (1) tk+n − tk tk+n+1 − tk+1 with ( 1, t t < t N (t; q) = k 6 k+1 k,0 0, otherwise.

Property 2. n,q Nk,n(t; q) = (tk+n+1 − tk)[tk,..., tk+n+1](x − t)+ , (2) where n,q n−1 n−2 (x − t)+ = (x − q t)(x − q t) ··· (x − qt)(x − t)+ and ( x − t, if x > t (x − t)+ = 0, if x < t.

Property 3. The interval of support of the q-B-spline: support(Nk,n(t; q)) ⊆ [tk, tk+n+1].

Property 4. For any integer n > 2, we have   Nk,n−1(t; q) Nk+1,n−1(t; q) D1/q Nk,n(t; q) = [n]q − . (3) tk+n − tk tk+n+1 − tk+1

Property 5. Partition of unity: ∑ Nk,n(t; q) = 1. k

Remark 1. The classical B-spline Nk,n(t) is nonnegative for each k, n and all t ∈ [tk, tk+n+1]. However, Figure1 shows that q-B-splines Nk,n(t; q) may be nonnegative depending on the value of parameter q.

q=1.1 q=2 q=1.5

1.5 1.0

0.8 1.0 0.6

0.6

0.5 0.4 0.4

0.2 1.5 2.0 2.5 3.0 3.5 4.0 0.2

-0.5 1.5 2.0 2.5 3.0 3.5 4.0

-0.2

-1.0 1.5 2.0 2.5 3.0 3.5 4.0

Figure 1. The graphs of N0,2(t; q) with the knot sequence (1, 2, 3, 4) and q = 2, q = 1.5, q = 1.1 respectively, whose first order quantum derivatives agree at knots.

Remark 2. If q = 1, it is obvious that q-B-splines become classical B-splines and they mimic the classical counterpart when q is near 1. Mathematics 2020, 8, 1770 4 of 10

Figure2 compares q-B-spline with various values of q and for a fixed knot sequence and fixed control points.

Classical Spline q=1.1 Classical Spline q=1.05

0.4 0.4

0.2 0.2

0.0 0.0 0.4 0.5 0.6 0.7 0.4 0.5 0.6 0.7

-0.2 -0.2

-0.4 -0.4

Classical Spline q=1.005

0.4

0.2

0.0 0.4 0.5 0.6 0.7

-0.2

-0.4

n 1 1 3 2 1 3 7 4 9 o Figure 2. q-B-spline curves with several q values, the knot sequence 0, 10 , 5 , 10 , 5 , 2 , 5 , 10 , 5 , 10 , 1 n 1 1 1 2 5 o and the control points 0, − 6 , 3 , − 2 , 3 , − 6 , 1 .

The following Lemmas1,2, and Proposition1 are noted in [ 5]. Here, we prove them by using q ( ) induction. We use the notation Nk,n in the place of Nk,n t; q to emphasize its dependence on the initial parameter value q.

q − n−1( ) Lemma 1. For n > 1, the q-B-splines Nk,n belong to continuity class q C R that is quantum derivatives q − of Nk,n agree up to the order n 1 at the joins.

q q ∈ − 0( ) q ∈ − n−1( ) Proof. Since Nk,1 is continuous, we can say that Nk,1 q C R . Suppose that Nk,n q C R . q ∈ − n−1( ) q ∈ − n( ) By Property 4, it follows that D1/q Nk,n+1 q C R . Thus, Nk,n+1 q C R . The following result shows that the sequence of q-B-splines of the same degree is linearly independent in a single interval of its support.

q q q Lemma 2. The set of q-B-splines {Ni,n, Ni+1,n,..., Ni+n,n} is linearly independent on (ti+n, ti+n+1).

Proof. When n = 0, it is obvious that the set is linearly independent. Let n > 1 and assume that n − = q the Lemma2 holds for n 1. Let S ∑ ci+k Ni+k,n and suppose that the q-spline S restricted to the k=0 interval (ti+n, ti+n+1), S|(ti+n, ti+n+1) = 0. By Equation (3), we have

n   c − c q 0 = D S|(t , t ) = [n] i+k i+k−1 N |(t , t ). (4) 1/q i+n i+n+1 q ∑ − i+k,n−1 i+n i+n+1 k=1 ti+k+n ti+k Mathematics 2020, 8, 1770 5 of 10

Since Ni+n+1,n−1(t; q) = 0 and Ni,n−1(t; q) = 0 on (ti+n, ti+n+1), by induction hypothesis q q {Ni+1,n−1, ... , Ni+n,n−1} is linearly independent on the interval (ti+n, ti+n+1). Therefore, we must have that all the coefficients in Equation (4) are zero, that is, ci = ci+1 = ··· = ci+n, say all of them equal to the value c. Thus, by the partition unity property of q-B-splines, we have S(t; q) = c on (ti+n, ti+n+1). Hence, by the assumption S|(ti+n, ti+n+1) = 0, we have c = 0 which shows that the set of q-B-splines q q q {Ni,n, Ni+1,n,..., Ni+n,n} is linearly independent on an interval (ti+n, ti+n+1).

q q q Proposition 1. The set of q-B-splines {N−n,n, N−n+1,n,..., Nm−1,n} is linearly independent on (t0, tm).

m−1 = q |( ) = − ( ) Proof. Let S ∑ ck Nk,n and suppose S t0, tm 0. For 0 6 i 6 m 1, on the interval ti, ti+1 , k=−n q q q only {Ni−n,n, Ni−n+1,n,..., Ni,n} are non-zero and we have

i = |( ) = q |( ) 0 S ti, ti+1 ∑ ck Nk,n ti, ti+1 . (5) k=i−n

q q q From the previous lemma, the set {Ni−n,n, Ni−n+1,n, ... , Ni,n} is linearly independent on (ti, ti+1). Hence, the coefficients ck = 0 for i − n 6 k 6 i in Equation (5). If all the ck’s are zero, then there is nothing to prove. Suppose, on the contrary, that not all the ck’s are zero. Let j be the index such that cj 6= 0. Assume 0 6 j 6 m − 1 and (tj, tj+1) ⊂ (t0, tm). For any t ∈ (tj, tj+1), we obtain

m−1 0 = S(t; q) = ∑ ck Nk,n(t; q) = cj Nj,n(t; q) 6= 0 k=j which contradicts S|(tj, tj+1) = 0. Therefore, all the ck’s are zero and this implies that the set q q q {N−n,n, N−n+1,n,..., Nm−1,n} is linearly independent on (t0, tm).

n,q 4. The Quantum Spline Space Sm n,q Let Sm denote the space of the q-spline functions which are quantum continuous up to the order n − 1, and n denotes the degree of polynomial pieces, m + 1 is the number of knots in the knot sequence, and q is a nonzero initial parameter. n,q The next theorem shows that q-B-splines form a basis for the quantum spline space Sm of degree n with the knot sequence t0 < t1 < ··· < tm. We note that, although the work [5] investigates broadly q-B-splines via blossoming, the following theorem and its proof were not mentioned.

n,q Theorem 2. A basis for the space Sm is

2 n n n n 1, t, t ,..., t , (t − t1; q)+, (t − t2; q)+,..., (t − tm−1; q)+ where n n−1 (t − tj; q)+ = (q t − tj) ··· (qt − tj)(t − tj)+. n,q q Consequently, the dimension of Sm is n + m and q-B-splines Ni,n|[t0, tm] with −n 6 i 6 m − 1 form a n,q basis for the q-spline space Sm .

q n,q Proof. It is obvious that each Ni,n|[t0, tm] for −n 6 i 6 m − 1 is in the space Sm . Thus, it is enough n,q n n,q to show that the dimension of the space Sm is m + n. Firstly, we show that each element Sm in Sm can be written in the form n m−1 n i n Sm(t; q) = ∑ ait + ∑ bi(t − ti; q)+. (6) i=0 i=1 Mathematics 2020, 8, 1770 6 of 10

n Since in the interval [t0, t1] all the truncated powers vanish, Sm(t; q) is a polynomial of degree n, n i say β0. Thus, we have p0(t; q) = ∑ ait which determines all the coefficients ai. In the interval [t1, t2], i=0 n Sm(t; q) is another polynomial, say β1. According to the quantum continuity at the knots, we have at t1, r D1/q(β1 − β0)(t1) = 0, 0 6 r 6 n − 1. n Since β1 − β0 is a polynomial of degree at most n, we have (β1 − β0)(t; q) = b1(t − t1; q) for some b1. Hence, we can write

n n i n Sm(t; q) = ∑ ait + b1(t − t1; q)+, t0 6 t 6 t2 i=0

When we repeat the same argument at the other internal knots t2, t3, ... , tm−1, we obtain the q-spline in Equation (6). Thus, any spline of degree n on the interval [t0, tm] with intermediate knots t1, t2,..., tm−1 may be written as a sum of multiples of n + m functions

2 n n n n 1, t, t ,..., t , (t − t1; q)+, (t − t2; q)+,..., (t − tm−1; q)+.

Since these functions are linearly independent, they form a basis for the this spline space and n,q hence the dimension of the space Sm is n + m. Furthermore, it follows from Proposition1 that q n,q q-B-splines Ni,n|[t0, tm] with −n 6 i 6 m − 1 form a basis for the space Sm . In [5], q-B-splines are constructed by using the de Boor algorithm. In the following theorem, we construct q-B-splines using properties of truncated power functions depending on q. Namely, we give explicit expression of q-B-spline basis functions in terms of linear combinations of q-truncated power functions.

Theorem 3.   k+n+1 k+n+1 1 N (t; q) = (−1)n+1(t − t )   (t − t ; q)n k,n k+n+1 k ∑  ∏ ( − )  j + j=k i=k tj ti i6=j with respect to the normalization ∑k Nk,n(t; q) = 1.

Proof. Let {Ψj : j = 1, 2, . . . , n + m} be a basis in the expression

n+m S(t; q) = ∑ λjΨj(t; q) a 6 t 6 b j=1 such that each function {Ψj(t; q) : j = 1, 2, ... , n + m} is identically zero over a large part of the range a 6 t 6 b. Consider an element of the space S(n, t0, ... , tm) that is zero on the intervals [t0, tk] and [tr, tm], but that is nonzero on (tk, tr), where 0 < k < r < m. If Φ is such a function, it can be expressed in the form r n−1 Φ(t; q) = ∑ µj(q t − tj) ··· (qt − tj)(t − tj)+, a 6 t 6 b j=k where the parameters µj have to satisfy the condition

r n−1 ∑ µj(q t − tj) ··· (qt − tj)(t − tj) = 0, tr 6 t 6 b j=k since (t − tj)+ = 0 for j = k, k + 1, . . . , r and a 6 t 6 tk. Mathematics 2020, 8, 1770 7 of 10

By rearranging the terms and using the properties of Lagrange , we have

r i ∑ µjtj = 0, i = 0, 1, . . . , n. (7) j=k

If r > k + n + 1, then equations in (7) have a nonzero solution. If r = k + n + 1, then the coefficients are k+n+1 1 µj = c ∏ , j = k, k + 1, . . . , k + n + 1 i=k (ti − tj) i6=j where c is a nonzero constant. Thus, we can conclude that   k+n+1 k+n+1 1 Φ(t; q) = c  (t − t ; q)n . ∑  ∏ ( − )  j + j=k i=k ti tj i6=j

By applying the normalization constraint ∑k Nk,n(t; q) = 1, we obtain the q-B-splines   k+n+1 k+n+1 1 N (t; q) = (−1)n+1(t − t )   (t − t ; q)n . (8) k,n k+n+1 k ∑  ∏ ( − )  j + j=k i=k tj ti i6=j

A consequence of the last expression is the following:

Corollary 1. n+1 n Nk,n(t; q) = (−1) (tk+n+1 − tk)[tk, tk+1,..., tk+n+1](t − x; q)+ (9)

Proof. This follows from the following property of divided differences   k+n+1 k+n+1 1 [t , t ,..., t ] f = f (t )   k k+1 k+n+1 ∑ j  ∏ ( − )  j=k i=k tj ti i6=j by replacing f by the truncated power function .

Remark 3. One can easily show that q-B-spline basis functions defined in Equation (2) (Theorem 6 in [6]) are right continuous and that the q-B-spline basis functions defined in Equation (9) are left continuous.

We have shown that q-B-splines form a basis for q-splines. Now, let us investigate how we can j find the quantum derivatives D1/q of the q-spline functions. The following algorithms allow us to store, evaluate, and manipulate q-splines on a computer easily, see [10]. In addition, we show that 1/q-derivatives of q-splines are again q-spline functions.

k Theorem 4. Let S be a given q-spline function such that S(t; q) = ∑ ai Ni,n(t; q). Then, for all j ∈ i=−n {1, 2, . . . , n − 1} and all t ∈ [a, b]

k j ( ) = (j) ( ) D1/qS t; q ∑ ai Ni,n−j t; q , (10) i=−n+j Mathematics 2020, 8, 1770 8 of 10 where  a , if j = 0  i (j) = (j−1) (j−1) ai ai − ai−1 (11)  [n + 1 − j]q , if j > 0. ti+n+1−j − ti

Proof. For j = 1, we have

k D1/qS(t; q) = ∑ aiD1/q Ni,n(t; q) i=−n k   N − (t; q) N + − (t; q) = a [n] i,n 1 − i 1,n 1 ∑ i q − − i=−n ti+n ti ti+n+1 ti+1 k  a a  = [n] i N (t; q) − i N (t; q) ∑ q − i,n−1 − i+1,n−1 i=−n ti+n ti ti+n+1 ti+1 k   a − a − = [n] i i 1 N (t; q). ∑ q − i,n−1 i=−n+1 ti+n ti

This shows that Equation (11) is true for j = 1. Repeating the same argument shows that the formula (11) is true for each j = 1, 2, . . . , n − 1.

Now, we derive a formula for computing the 1/q-integral of a given q-spline function.

k Theorem 5. Let S be a given q-spline function such that S(t; q) = ∑ ai Ni,n(t; q). Then, for all t ∈ [a, b], i=−n

k i ! Z t tj+m+1 − tj S(x; q)d x = a N (t; q). (12) 1/q ∑ ∑ j [ + ] i,n+1 t−n i=−n j=−n n 1 q

Proof. Define a function S˜ by Z t S˜(t; q) = S(x; q)d1/qx. t−n This is a quantum spline of degree n + 1 and so S˜ can be written as

k ˜ S(t; q) = ∑ a˜i Ni,n+1(t; q). i=−n

Using (10) and (11) for all t ∈ [a, b] gives

k a˜ − a˜ − S(t; q) = D S˜(t; q) = [n + 1] i i 1 N (t; q), 1/q ∑ q − i,n i=−n ti+n+1 ti where a˜−m−1 = 0. It follows by comparing the appropriate coefficients of the basis that

[n + 1]q ai = a˜i for i = −n ti+n+1 − ti and [n + 1]q ai = (a˜i − a˜i−1) for i = −n + 1, . . . , k. ti+n+1 − ti Mathematics 2020, 8, 1770 9 of 10

Therefore, i tj+m+1 − tj a˜ = a for i = −n, −n + 1, . . . , k i ∑ j [ + ] j=−n n 1 q and this completes the proof.

In the next proposition, we demonstrate a way to find the polynomials on each interval of a q-spline function. In certain circumstances, we may have to evaluate the q-spline function S at a large number of points, then it is advantageous to determine the polynomial pieces at each interval P (t; q) = S| for each j. j [tj,tj+1)

Proposition 2. Let S(t; q) be a q-spline function such that

k S(t; q) = ∑ ai Ni,n(t; q), t ∈ [a, b] i=−n and P be the polynomial restricted to S| for j = 0, . . . , k. Then, j [tj,tj+1)

n 1   P (t; q) = Dr S(t ; q) (qr−1t − t ) ··· (qt − t )(t − t ), t ∈ [t , t ) j ∑ [ ] 1/q j j j j j j+1 r=0 r q!

Proof. Since S(t; q) is a polynomial of degree n on the interval [tj, tj+1) for each j = 0, 1, ... , k, we can write n r Pj(t; q) = ∑ λrj(t − tj; q) , r=0 where λrj for r = 0, 1, . . . , n and j = 0, 1, . . . , k are the unknowns and

r r−1 (t − tj; q) = (q t − tj) ··· (qt − tj)(t − tj).

Then, it is easily seen that, by taking 1/q-derivative of S(t; q) r times, substituting t = tj in Equation (10) gives 1 r λrj = D1/qS(tj; q). [r]q! Hence, we obtain

n 1 P (t; q) = Dr S(t ; q)(t − t ; q)r, t ∈ [t , t ). j ∑ [ ] 1/q j j j j+1 r=0 r q!

5. Conclusions

In this work, we derived a new way to compute q-B-spline Nk,n(t; q) and algorithms for q-derivatives and q-integrals of a q-spline function, and found the polynomial pieces on a specified single interval. These formulas will be useful in numerical methods incorporating a finite difference scheme with q-B-splines. For CAGD purposes, we take the parameter values q near 1 in q-B-spline curves so as to mimic the behavior of their classical counterpart. Besides solving a best approximation problem, not only q-B-splines but also h-splines share certain fundamental properties of the classical B-splines. In a future work, we will study how we can solve partial q-differential equations by using q-splines. We will introduce box q-splines as well as their rational counterpart and then investigate them in solving certain PDE problems towards isogeometric analysis. Mathematics 2020, 8, 1770 10 of 10

Author Contributions: H.O. and G.B. set up the problem, G.B. computed the details. H.O. checked and polished the draft. All authors have read and agreed to the published version of the manuscript. Funding: This research received no external funding. Conflicts of Interest: The authors declare no conflict of interest.

References

1. Schoenberg, I.J. Contributions to the Problem of Approximation of Equidistant Data by Analytic Functions Part A. On the Problem of Smoothing or Graduation. A First, Class of Analytic Approximation Formulae. Quart. Appl. Math. 1946, 4, 45–99. [CrossRef] 2. De Boor, C. On calculating with B-splines. J. Approx. Theory 1972, 6, 50–62. [CrossRef] 3. Gordon, W.J.; Reisenfeld, R.F. B-spline Curves and Surfaces. Comput. Aided Geometric Des. 1974, 95–126. [CrossRef] 4. Mangasarian, O.; Schumaker, L. Discrete splines via mathematical programming. SIAM J. Control 1971, 9, 174–183. [CrossRef] 5. Simeonov, P.; Goldman, R. Quantum B-splines. BIT Numer. Math. 2013, 53, 193–223. [CrossRef] 6. Budakçı, G.; Di¸sibüyük,Ç.; Goldman, R.; Oruç, H. Extending Fundamental Formulas from Classical B-Splines to Quantum B-Splines. J. Comput. Appl. Math. 2015, 282, 17–33. [CrossRef] 7. Budakçı, G.; Oruç, H. A generalization of the Peano Kernel and its applications. Commun. Ser. A Math. Stat. 2018, 67, 229–241. 8. Curry, H.B.; Schoenberg, I.J. On Pólya frequency functions IV: The fundamental spline functions and their limits. J. Anal. Math. 1966, 17, 71–107. [CrossRef] 9. Kac, V.; Cheung, P. Quantum Calculus; Universitext Series, IX; Springer: Berlin, Germany, 2002. 10. Schumaker, L. Spline Functions: Basic Theory; Cambridge University Press: Cambridge, UK, 2007.

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

c 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).