Bienvenue Kouwayè

Noël Fonton

Fabrice Rossi

Lasso based feature selection for malaria risk exposure prediction

Keywords: Lasso, Cross-validation, Variables selection, Prediction

In life sciences, the experts generally use empirical knowledge to recode variables, choose interactions and perform selection by classical approach. The aim of this work is to perform automatic learning algorithm for variables selection which can lead to know if experts can be help in they decision or simply replaced by the machine and improve they knowledge and results. The Lasso method can detect the optimal subset of variables for estimation and prediction under some conditions. In this paper, we propose a novel approach which uses automatically all variables available and all interactions. By a double cross-validation combine with Lasso, we select a best subset of variables and with GLM through a simple cross-validation perform predictions. The algorithm assures the stability and the the consistency of estimators.

Introduction

Malaria is endemic in developing countries, mainly in sub-Saharan Africa. It is the main cause of mortality especially for children under five years of age in Africa [START_REF] Who | World health organisation, world malaria report 2013, world global malaria programme[END_REF]. Generally, cohort studies take place in endemic areas for characterizing the malaria risk. These cohorts studies are on newborn babies and pregnant women. They are introduced to know about the immunity of newborn face to malaria and the construction of this immunity. They also help to know the determinants implicated in the appearance of first malaria infections on the newborn. The distribution of the main vector of malaria (anopheles) and the exposure to malaria risk are spatiotemporal and different at small scale (house level) [START_REF] Cottrell | Modeling the influence of local environmental factors on malaria transmission in benin and its implications for cohort study[END_REF]. Generally the experts in medicine and epidemiology, use they empirical knowledge on phenomenon in the process of data analysis. Some variables are automatically recoded because in numeric form, they are not interpretable [START_REF] Cottrell | Modeling the influence of local environmental factors on malaria transmission in benin and its implications for cohort study[END_REF] and interactions are chosen. Classical variables selection methods are wrapper (forward, backward, stepwise, etc.), embedded, filter and ranking. All details on theses methods are described in [START_REF] Guyon | An introduction to variable and feature selection[END_REF]. The goal of wrapper method is to select subset of variables with a low prediction error. The wrapper algorithm is improved by Structural wrapper to obtain a sequence of nested subset of feature for optimality is developed in [START_REF] Bontempi | Structural feature selection for wrapper methods[END_REF]. In practice, classical method of features selection are practically unfeasible in high dimension because the number of features subsets given by (2 p ) where p is the number of features, increases. The Lasso method proposed by Tibshirani [START_REF] Tibshirani | Regression shrinkage and selection via the lasso[END_REF] is a regularized estimation approach for regression models that uses an L 1 -norm and constrains the regression coefficients. The Lasso method minimize the likelihood L(β) or the log-likelihood l(β). The results of this method is that all coefficients are shrunken toward zero and some are set exactly to zero. Many studies [START_REF] Efron | Least angle regression[END_REF], [START_REF] Goeman | L1 penalized estimation in the cox proportional hazards model[END_REF], [START_REF] Osborne | A new approach to variable selection in least squares problems[END_REF], [START_REF] Zou | Regularization and variable selection via the elastic net[END_REF] have improved the original Lasso method. The Generalized Linear Model (GLM) combined with the Lasso, penalize the log-likelihood of the GLM and constrains the L 1 or L 2 or (L 1 +L 2 )-norm of the regression coefficients to be inferior to some parameter known as tuning or regularizing parameter [START_REF] Goeman | L1 penalized estimation in the cox proportional hazards model[END_REF], [START_REF] Zou | Regularization and variable selection via the elastic net[END_REF]. The usage of penalization technique to select variables in generalized models is at embryonic stage. Most of the algorithms implemented in our work are based on [START_REF] Friedman | Lasso and elastic-net regularized generalized linear models[END_REF], [START_REF] Goeman | L1 penalized estimation in the cox proportional hazards model[END_REF], [START_REF] Zou | Regularization and variable selection via the elastic net[END_REF]. According to the nature of the target variable, family of models used for feature selection, estimation and prediction are generally linear models, generalized models, mixed models, generalized mixed models, multilevel modeling [START_REF] Cottrell | Modeling the influence of local environmental factors on malaria transmission in benin and its implications for cohort study[END_REF]. It is also well known that cross-validation may lead to overfitting [START_REF] De Bradanter | Robust cross validation score function with application to weigthed least squares support vector machine function estimation[END_REF] and one alternative solution is precentile -cv [START_REF] Ng | Preventing "overfitting" of cross-validation data[END_REF]. The results will be compared to the results of those of the reference method (B-GLM) which uses a backward procedure combine with a GLM [START_REF] Cottrell | Modeling the influence of local environmental factors on malaria transmission in benin and its implications for cohort study[END_REF] 2 Methodology

Data collection and variables

The study area was conducted in Tori-Bossito a district of Republic of Bénin, between July 2007 and July 2009. The study area (season, vegetation), the methodology of mosquito collection and identfication, the environnement and behavioral data are described in [START_REF] Cottrell | Modeling the influence of local environmental factors on malaria transmission in benin and its implications for cohort study[END_REF]. The dependent variable was the number of Anopheles collected in a house over the three nights of each catch, and the explanatory variables were the environmental factors, i.e. the mean rainfall between two catches (Rainfall), the number of rainy days in the ten days before the catch (RainyDN10), the season during which the catch was carried out (Season), the type of soil 100 meters around the house (Soil), the presence of constructions within 100 meters of the house (Works), the presence of abandoned tools within 100 meters of the house (Tools), the presence of a watercourse within 500 meters of the house (Watercourse), the type of vegetation 100 meters around the house (NDVI), the type of roof (Roof), the number of windows (Windows), the ownership of bed nets (Bed nets), the use of insect repellent and the number of inhabitants in the house (Repellent), see more details in [START_REF] Cottrell | Modeling the influence of local environmental factors on malaria transmission in benin and its implications for cohort study[END_REF], the number of rainy days during the three days of one survey (RainyDN). In the previous work [START_REF] Cottrell | Modeling the influence of local environmental factors on malaria transmission in benin and its implications for cohort study[END_REF], a second type of variables are obtained by recoding the original explanatory variables one based of the knowledge of experts in entomology and medicine.

The Original and recoded variables are described in tables [START_REF] Goeman | L1 penalized estimation in the cox proportional hazards model[END_REF][START_REF] Guyon | An introduction to variable and feature selection[END_REF]. Four type of combination of these variables have been used. The firs is only the original variables, the second the original variables with village as fixed effect, the third is recoded variables and the last is the recoded variables with village as fixed effect.

Models

The algorithm implemented uses GLM-Lasso to detect the entire paths of the variables, in order to detect all changes in the process of regularization. This regularization consist on penalizing the likelihood of the GLMs by adding a penalty term

P(λ) = λ p i=1 |β i | (1)
with λ ≥ 0.

Then the log-likelihood penalized is :

l pen (β|Y ) = l GLM (β|Y ) + P(λ) (2)
The penalty problem is reduce to :

β = Arg max β [l GLM (β|Y ) + P(λ)] (3)
The choice of the regularizing parameter lambda is done by minimizing a score function. In practice, this equation doesn't have exact numerical solution. It can be used the combination of Laplace approximation, the Newton-Raphson method or the Fisher scoring to solve it. This procedure is used at each learning step.

One of the power of the Lasso is to shrink some coefficients toward to zero and the other to exactly zero. When the regularizing parameter λ exceeds certain threshold (λ max ), the intercept is the only non-zero coefficient [START_REF] Tibshirani | Regression shrinkage and selection via the lasso[END_REF]. For two different values of the regularizing parameter λ and λ inferior to λ max , let β and β be the vectors of fixed coefficients respectively associated to λ and λ , β = β [START_REF] Efron | Least angle regression[END_REF][START_REF] Tibshirani | Regression shrinkage and selection via the lasso[END_REF]. Then let us define the function

Q : λ i -→ βi λ i ∈ [0, λ max ],
βi is the vector of coefficients βi = ( βi1 , βi2 , .., βip ), p is the number of coefficients in the model. The parameter λ is considered as discreet then λ i ∈ {λ 0 , λ 1 , ..., λ max }. Because the lasso coefficients are biased, GLM is used to debiased estimators and makes predictions. Under matrix shape, GLM model is

g[E(Y |β)] = Xβ (
Then

P((Y = y i |X = x)) = e (xβ) y i (y i )! × e -e xβ (6)
With Z i = (Y = y i |X = x), the likelihood on n observations can defined as

L(Z 1 , . . . , Z n ) = n i=1 e (xβ) y i (y i )! × e -e xβ (7)
And the log-likelihood is

L(Z 1 , . . . , Z n ) = log n i=1 e (xβ) y i (y i )! × e -e xβ = - n i=1 log((y i )!) + n i=1 y i (xβ) -e (xβ) (8)
y i don't depend on λ then xβ) where Cste = -

L(Z 1 , . . . , Z n ) = Cste + n i=1 y i (xβ) -e (
n i=1 log((y i )!) (9)

Leave One Level Out Double Cross-Validation (LOLO-DCV)

This algorithm is a double cross-validation with two levels. Its aim is to compute a second cross-validation (CV2) for prediction at each step of learning of a first cross-validation (CV1). The predictors obtained with (CV2) are consistent for prediction on the test set for (CV1). This algorithm run like described in Algorithm (2.1). LOLO-DCV uses a score of cross validation defined like:

Score(λ i ) = Deviance(λ i ) = 2 × L (sat) -L (λi) (10)
Where L (sat) is the log-likelihood of saturated model and L (λi) the log-likelihood of the concerned model. For λ = λ max the model obtained is the null model which contain only the intercept and L (sat) = 0, the model which adjust perfectly data. Then A full cross validation is compute on EA ii. The two regularizing parameters "lambda.min" and lambda.1se" are got back. iii. The coefficients of actives variables (variables with non-zero coefficient) associated to these two parameters are debiased iv. Prediction are performed using a glm model on ET v. The presence P(Xi) of each variable is determined 3. The step (2c) is repeated until predictions is performed for all observations.

Score(λ max ) = Deviance(N U LL) = -2 × (L λmax ) (11) Score(λ i ) = -2 × L (λi) = -2 Cste + n i=1 y i (xβ) -e (xβ) , k ∈ R Score(λ i ) = 2 e (xβ) - n i=1 y i (xβ) + K, K ∈ R (12)
To minimize the score is reduced to minimize the quantity n i=1 y i (xβ) -e (xβ) . In gaussian case, the score used is the mean cross-validation error, a vector of length λ [START_REF] Friedman | Regularization paths for generalized linear models via coordinate descent[END_REF]. Assume that :

R = 1 - Score(λ i ) Score(λ max ) = 1 -α (13)
then :

Deviance(λ i ) = (1 -R) × Score(λ max ) ( 14
)
We know that L (sat) = 0 then α is a log-likelihood ratio between the concerned model and the null model. The optimal value λ.min of λ is the one minimize the Score(.) function.

λ.min = Arg min λi [Score(λ i )] (15)
For all positive value of λ i , the score exist and is finite. it shows that the score of cross validation converge. The optimal value of λ 0j is given by the minimization of the function Score(.).

λ 0j = Arg min λi [Score(λ i )] (16)
If λ 0j = λ q then the parameter lambda.min is lambda.min = λ q [9], [START_REF] Hastie | The Elements of Statistical Learning Data mining, Inference, Prediction[END_REF]. Let Std(Score(.)) the estimate of standard error of Score(.). Suppose

λ 0k = Arg min λi [Score(λ i ) + Std(Score(λ i )] (17)
If λ 0k = λ m then the parameter lambda.1se is defined as lambda.1se = λ m [START_REF] Friedman | Lasso and elastic-net regularized generalized linear models[END_REF], [START_REF] Hastie | The Elements of Statistical Learning Data mining, Inference, Prediction[END_REF].

Prediction power and quality criteria

During the computation of LOLO-DCV :

1. GLM-Lasso is used to trace the trajectories of variables, to detect the high value of the regularizing parameters, and detect changes in the regularization process, 2. a double cross validation is used to select the best subset of variables for prediction based on the score, 3. a GLM is used by the best subset to predict via a simple cross validation.

At last step the prediction accuracy of the method is calculated as average performance across hold-out predictions. For each observation Y i , the predicted value is Ŷi . We assume that the observed value Y i , 1 ≤ i ≤ n is really predict by Ŷi if -0.5 ≤ Y i -Ŷi ≤ 0.5. The prediction accuracy P a is define by: P a ( Ŷi ) = 1 if -0.5 ≤ Y i -Ŷi ≤ 0.5 P a ( Ŷi ) = 0 elsewhere. This calculation gives the number of good predictions by each method and the power of prediction. The main quality criteria is the prediction power of a model and the other are the mean, the standard deviation, the quadratic risk of prediction. For an any method we have : where #A denote the cardinality of A

Frequent variables

Let X = (X 1 , X 2 , . . . , X p ) the set of all variables include interactions. A each step j of first level of LOLO-DCV, the Lasso provides the coefficients of all classes of variables and based on this it can determine the presence or the absence of each variable. For any λ, let define the function "Presence" of variable like:

P j (X i ) = 1 if β i (λ) = 0 P j (X i ) = 0 elsewhere.
where β i (λ) is a vector of coefficients of X i in the model at the step j. For a threshold s, 1 ≤ s ≤ 100, the set of frequent variables is

Var freq(λ) =    X i , 100 max(j) × max(j) l=1 P j (X i ) ≥ s    (18)
Notations:

Var freq lambda min = Var freq(lambda.min) Var freq lambda 1se = Var freq(lambda.1se) LOLO DCV lambda min denote LOLO-DCV using λ = lambda.min LOLO DCV lambda 1se denote LOLO-DCV using λ = lambda.1se

interactions between variables

In general experts in epidemiology and medicine decide to choose some interactions according to they knowledge and experience. To avoid this way of making, LOLO-DCV generate automatically all interactions in the full set of explanatory variables used in model. This involves that the number of variables grows exponentially and the classical method of variable selection will failed. LOLO-DCV automatically learn with all variables and all interactions and provides the optimal set of variables for predictions.

Results

Summary of results on prediction accuracy and quality criteria

4 )

 4 where (Y |, β) follow a Poisson distribution of parameter E(Y |β), n is the number of observations, X the n × (p + 1)-dimension matrix of covariables (environmental variables), β is a (p + 1)-vector of fixed parameters including the intercept, Y is the vector of the target variable. (Y |X = x) ∼ P(λ); where λ = e xβ

Algorithme 2 . 1

 21 LOLO-DCV 1. The data are separated in N -folds 2. A each step of the first level (a) The folds are regrouped in two part : EA and ET , EA : the learning set which contained the observations of (N -1)-folds, ET : the test set, contained the observations of the last fold. (b) Hold-out ET (c) The second level of cross-validation i.

  Ŷi |, Prediction Power = 100 n × #{i, P a ( Ŷi ) = 1, 1 ≤ i ≤ n}

Table 1 .

 1 Summary of B-GLM prediction

	Method Mean Deviance Std Absolute risk Prediction Power (%)
	B-GLM 3.75 62.29	7.89 3.88	73.53

Table 2 .

 2 Summary of original variables

	Method	Mean Deviance Std Absolute risk Prediction Power (%)
	LOLO DCV lambda min 3.75 72.04	8.49 4.48	78.76
	LOLO DCV lambda 1se 3.75 72.04	8.49 4.48	78.76
	Var freq lambda min	3.75 68.05	8.25 3.96	74.84
	Var freq lambda 1se	3.74 59.28	7.70 3.81	75.98

Table 3 .

 3 Summary of original variables with village as fixed effect

	Method	Mean Deviance Std Absolute risk Prediction Power (%)
	LOLO DCV lambda min 3.75 72.04	8.49 4.48	78.76
	LOLO DCV lambda 1se 3.75 72.04	8.49 4.48	78.76
	Var freq lambda min	3.73 55.70	7.46 3.50	75.00
	Var freq lambda 1se	3.74 57.33	7.57 3.63	76.80

Table 4 .

 4 Summary of recoded variables

	Method	Mean Deviance Std Absolute risk Prediction Power (%)
	LOLO DCV lambda min 3.75 72.04	8.49 4.48	78.76
	LOLO DCV lambda 1se 3.75 72.04	8.49 4.48	78.76
	Var freq lambda min	3.75 59.21	7.69 3.84	75.82
	Var freq lambda 1se	3.74 59.97	7.74 3.81	73.86

Table 5 .

 5 Summary of recoded variables with village as fixed effect

	Method	Mean Deviance Std Absolute risk Prediction Power (%)
	LOLO DCV lambda min 3.75 72.04	8.49 4.48	78.76
	LOLO DCV lambda 1se 3.75 72.04	8.49 4.48	78.76
	Var freq lambda min	3.73 60.11	7.75 3.87	76.31
	Var freq lambda 1se	3.75 59.21	7.69 3.84	75.82

LOLO-DCV lambda min and LOLO-DCV lambda 1se achieves exactly the same performance in prediction: Mean, quadratic risk, absolute risk, and prediction power (Table . 2, 3, 4, 5). The mean of predictions of the both methods is approximatively the same with the mean of observations (3.74) which is achieved exactly with frequent variables obtained by lambda 1se selection. LOLO-DCV shows the Influence of interactions on the target variables. The variability of the score in prediction at village level (high in one the village (Dohinonko)) detect some problems in the data at this village. It is confirmed by the experts. The (Fig. 1, 2 , 3, 4) shows two class of variables, the most frequent and the least frequent. The best Prediction power is with LOLO DCV (78.76) and the one with frequent variable is of LOLO-DCV lambda.1se (76.80), this method also has the same mean in prediction with observations. The number of variables and all interactions is p = 136, the classical methods will compute N = 2 136 different model before selecting the best subset. Combined with double cross-validation, calculation will be unrealizable because of complexity of algorithm. The strength of LOLO-DCV is the usage of lasso and the two level cross validation. In a relative short time LOLO-DCV detect all feature selected by the B-GLM and some interpretable interactions among them. The (Tables. 1, 2, 3, 4, 5) show that LOLO-DCV is relatively the best in prediction (mean, absolute risk, deviance) and the best with the prediction power. The distribution of the prediction error according to the classes of anopheles shows a high variability for B-GLM and low for the LOLO-DCV. The optimal subset of feature obtained by LOLO-DCV algorithm is approximatively the same at each step. This prove it's stability. In final the best subset of variables for prediction is variables selected in Original variables with village as fixed effect (2b)

Conclusion

Lasso method combined with a GLM uses L 1 or L 2 penalization on likelihood to estimate predictors. The usage of Lasso, GLM and cross-validation for features selection is an active area of research in features and variables selection. In this work we propose LOLO-DCV method applied to a real data. The computation time is strongly reduced with the parallelization of the cross-validation loop. The usage of levels for building the folds in cross-validation is important because a random sampling will use all characteristics of all levels and the predictions will be wrong. The experts can easily be helped by the machine in they decision. These results encourage a best exploring of this approach for features selection.

Adding random effects at some levels to improve our method is part of our future work possibly by combining the adaptative, group and sparse form of lasso procedure.

Annex

Description of originales variables Description of recoded variables


Dr Pascal Brault
email: pascal.brault@univ-orleans.fr

Review of low pressure plasma processing of proton exchange membrane fuel cell electrocatalysts

The present review is describing recent advances in plasma deposition and treatment of low temperature proton exchange membrane fuel cells electrocatalysts. Interest of plasma processing for growth of platinum based, non-precious and metal free electrocatalysts is highlighted. Electrocatalysts properties are tentatively correlated to plasma parameters.

Introduction

Fuel cells are now recognized as a potential candidate for producing and a storing energy at different scale and thus to be relevant in many fields of the all-day life as automotive, stationary and mobile applications. The striking feature of fuel cells is the expected zero emission capability and without mechanical noise as being an electrochemical converter of hydrogen and oxygen to electricity and (warm) water, following the complete Equation 1.

H2 +1/2O2  H2O + heat (1)

A fuel cell is basically made of 2 porous electrodes (an anode and a cathode) separated by an electrolyte. This constitutes the Membrane-Electrode Assembly: MEA). Electrodes should be porous for allowing fuel and oxidant to access the catalyst in the catalyzed active zone of the electrodes (see below). The current collection is ensured by bipolar plates enclosing the MEA. [START_REF] O'hayre | Fuel cell fundamentals[END_REF][START_REF] Wang | [END_REF] Moreover the bipolar plates are designed for allowing homogeneous distribution of fuel and oxidant to the electrodes. Figure 1 summarizes this concept. The fuel cell performance is measured either by recording potential V (V) or power density P (W.cm -2 ) vs current density j (A.cm -2 ). Typical maximum reached power density is around 1.0 W.cm -2 at 0.7 V, in laboratory scale fuel cell stations. Typical recorded plots are displayed on In the present review, we consider the electrolyte is an ion conducting polymer membrane.

The ion crossing the electrolyte can be a cation, the hydrated proton (H + ) or an anion, the hydroxyl radical negative ion (OH -). In the first case, the corresponding fuel cell is called Proton conducting membrane fuel Cell (PEMFC), while in the latter it is called Direct Alcohol Fuel Cell (DAFC). The present review will focus on electrocatalysts for PEMFC cathodes, because the main limiting step in PEMFC operation is the oxygen reduction reaction leading to water.

The electrodes are often composed of carbon tissue or paper covered by a carbon microporous layer where an activated carbon catalyzed layer (called the active layer of the electrode) is present over a depth of 10 to 50 µm. [START_REF] Litster | PEM fuel cell electrodes[END_REF][START_REF] Koper | Fuel Cell Catalysis[END_REF][START_REF] Zhang | PEM Fuel Cell Electrocatalysts and catalysts Layers[END_REF] The catalyzed layer is made of carbon particles of size from 3 to 10 nm surrounded by catalyst clusters of size from 0.1 to 10 nm. Standard techniques make use of chemical wet methods for fabricating these active layers, i.e.

impregnation-reduction method, colloidal route, carbonyl route, microemulsion and electrochemical methods. [START_REF] Coutanceau | The Delivery of Nanoparticles[END_REF][START_REF] Sellin | [END_REF][8][9][10][11][12][13][14] Besides these efficient and widely used methods, low pressure plasma methods are gaining increasing interest due to their flexibility, non-equilibrium capability allowing new paths for catalyst structure (crystalline, amorphous, core-shell, alloy, …), composition, shape and morphology control.

Low pressure plasma processing is thus able to allow growing electrocatalyst clusters on the microporous carbon layer, or on the top of an existing catalyst layer for increasing outermost surface density [16,36] or directly on the polymer electrolyte, [37][38][39][40][41][42] to directly fabricate the carbon-electrocatalyst composite [22][23][24]26,33,39,40,[43][44][45][46] or to treat an already deposited (by plasma or not) electrocatalyst. [47][48][49][50][51][52][53][54] The most efficient catalyst in PEMFC electrode is platinum and its alloys. [START_REF] Koper | Fuel Cell Catalysis[END_REF][START_REF] Zhang | PEM Fuel Cell Electrocatalysts and catalysts Layers[END_REF]55,56] supported on a microporous carbon layer. While Pt is a very expensive catalyst (50 €/g), reducing its content in PEMFC electrodes is of paramount importance. There are two ways for achieving this objective: either reducing the content by alloying Pt with less expensive metals or finding alternate non-precious or metal free electrocatalysts. On the first hand, it is known that platinum-based bimetallic alloys are excellent catalysts [START_REF] Koper | Fuel Cell Catalysis[END_REF][START_REF] Zhang | PEM Fuel Cell Electrocatalysts and catalysts Layers[END_REF]55,56] for the electroreduction reaction of oxygen molecule (oxygen reduction reaction, ORR), which occurs at the cathode of PEMFC. Beyond the lowering of the platinum loading in the electrode catalytic layers, alloyed Pt-based materials lead to the improvement of the catalytic ORR activity, [57] increase the tolerance towards poisoning species and for some authors, enhance the durability of the catalysts under fuel cell working conditions. [58] PtxM1-x bimetallic materials (M = Co, Fe, Ni and Cr) have been extensively studied in order to correlate their catalytic activity and their electrochemical stability towards the ORR to their composition, crystallographic and electronic structures. Current progress are dealing with Pt based trimetallic nanocatalysts, [59- 62] mainly for further improving catalyst stability. On the other hand, there are actually many attempts to remove the costly platinum using common metal (Fe, Co, Cu, mainly bond to nitrogen) [63][START_REF]Dodelet in N4-macrocyclic metal complexes[END_REF][START_REF] Baranton | [END_REF][66][67][68][69][70] or non -metal catalysts, mainly carbon based as S doped graphene, [71] N-doped carbon nanostructures. [72][73][74][75][76] The present short review will describes how low pressure plasmas are contributing to PEMFC cathode electrocatalysts design for reducing and replace cost effective platinum. The next section will be devoted to platinum electrocatalysts synthesis by low pressure plasma both directly or as a full electrode. A perspective section will concern the use of plasma for deposition and treatment of Pt alloys, non-precious and metal free electrocatalysts. A concluding section will close this review.

Direct deposition of electrocatalysts on uncatalyzed electrodes

Two plasma techniques are mainly used for this concern. First, plasma sputtering deposition of the Pt and Pt alloys. Co-sputtering, when an alloyed structure is targeted and alternate sputtering, when core-shell structures are expected, can be carried out. Second, plasma enhanced chemical vapor deposition (PECVD) of selected hydrocarbons, simultaneously or alternately with plasma sputtering is of great interest for depositing the support and the catalyst. So a carbon -Pt electrode is directly fabricated either on the uncatalyzed GDL or directly on the polymer electrolyte membrane. Another way for directly fabricating the electrode is co-or alternate sputtering of carbon and Pt based catalysts.

Plasma sputtering

The basic idea for using plasma sputtering is to take advantage of an atom source with controlled energy distribution lighting a porous support for acting on the electrocatalyst distribution in the porous support. So, it becomes easy to localize and control the catalyst depth profile in the electrode region in contact with the polymer electrolyte. Indeed, the platinum location and dispersion are essential factors determining the fuel cell performances [18,19,77,78] . Moreover, it is expected that the catalyst density will not be uniform throughout the porous layer due to transport diffusion mechanisms as illustrated in Figure 3. other kind of open pores. [22,23,79] As demonstrated by carefully examining depth profiles of sputtered Pt catalyst, the transport/diffusion processes are not standard and depends both on support and plasma properties. [27] Such concentration depth profiles are decreasing from the top electrodes (to be in contact with the polymer electrolyte) towards the inner part of the electrode up to a maximum depth of 2 µm. This concentration gradient allows to optimize the efficient use of the platinum. It is known that at high current density, catalysts close to the polymer electrolyte are more "solicited" while at low current density all the nanocatalysts present are needed. [77,78] Moreover, Pt clusters are very well dispersed with sizes ranging from 1 to 3 nm. Very recently, it was observed that such sputtered nanocatalysts are amorphous at very low loading (10µgPt.cm -2 ) and leading to high power density. [33,35] Correlation between high fuel cell efficiency and catalyst amorphous structure has been independently confirmed in the case of complex Pt alloys for direct alcohol fuel cell. [80] Dependence of the plasma sputtering parameters, plasma pressure, substrate bias, … has also been investigated for studying the role on depth profiles. [18,19,27] When increasing plasma pressure the kinetic energy distribution of the sputtered particle is shifted to lower energy and the mean kinetic energy is lowered too, as exemplified in Figure 4. [62,81] In Figure 5 are plotted the Pt depth profiles vs plasma pressure and substrate bias. [18,19,82] Increasing the plasma pressure results in lowering the catalyst density and thickness of the catalyst located on the top of the porous carbon substrate. The general shape of the concentration profile inside the porous layer does not change. [27] When increasing substrate bias voltage, i.e. increasing the plasma ion (mainly Argon ion in the considered experiments [18,19,82] ) energy, simultaneously to the deposition on the substrate, the shape of the catalyst concentration profile is slightly modified: above a threshold, which depends on the substrate material and structure, the impinging ion transfers enough energy for increasing mobility of catalyst atom towards the in-depth of the porous substrate. But when increasing deposition time, the pore entrances of the electrode start to be filled and thus reactants cannot access the polymer electrolyte, and protons cannot cross the polymer electrolyte. So using sputtering deposition requires low catalyst loading. Nevertheless, this constraint leads to Pt low content and fuel cell performance are high enough, indicating a more efficient use of a lesser catalyst content. In this case high mass power density up to 20 kW.gPt -1 , [26] are reached which are among the highest to date. [56]

Direct deposition of the full active layer: catalyst + support

A relevant goal is to be able to fabricate the active layer (part of the electrode which is catalyzed) in a single step, both for economic reason (based upon single fabrication machine) and on-demand electrode and MEA design capability. Contrary to the previous section, there is not so much work on the growth of the catalyzed electrode itself. This section will focus on plasma co-sputtering [39,40,83,84] of and combination of PECVD and sputtering [43][44][45][46] of support and catalyst for fabricating the active layer. This active layer should be enough electron conducting i.e. close to graphite conduction level. The open porosity of the active layer should high enough, at least 20% up to 60% maximum for allowing efficient gas transport to nanocatalysts.

Carbon and Pt co-sputtering has been carried out for testing the capability of the method for obtaining the correct structure of the active layer [39,40] . Flexibility of the co-sputtering technique allows to deposit simultaneously carbon and platinum or alternate carbon and Pt deposition in a way to design a Pt concentration profile. In all cases, the active layer is made of Pt-C columns leading to a porosity ranging from 20 to 65%, as requested (see Figure 6 and Examination of the Open Circuit Voltage of such PtC electrodes deposited on a Nafion® polymer electrolyte shows better performances than commercial electrodes for alternate deposition of Pt and C. This has been correlated to the low Pt cluster size (2 nm) and to the fact that Pt is always decorating carbon columns [83] , even when Pt is co-sputtered simultaneously with C, as displayed in Figure 8. When operating with fluorocarbon gas C3F6, Figure 12 shows that the morphology of the film is more homogeneous than with C2H4 precursor, and platinum is well dispersed and is observed to be in metallic form, and as nanocrystalline clusters of variable size (less than 10 nm) depending on the Pt content. A key point of these two deposition methods is the very low possible thickness of the active layer, making it suitable for micro fuel cell design, [85,86] , the PECVD method being relevant for also depositing the polymer electrolyte. [85,86] 3. Perspectives

Multi-metallic catalysts

The rapid evolution of the field of electrocatalysis requires that the use of plasmas for fabricating electrocatalysts, especially for fuel cells, should increase too. Indeed, key point is bi and tri-metallic catalyst design leading to the reduction of the Pt content. In this case, simultaneous or alternate sputtering or co-sputtering is able to easily give various catalyst structures: alloy, core-shell and mixed alloy/core-shell. As an illustration, recent DFT calculations have shown that binary PtPd thin films, in which Pt comprises the skin and Pd is restricted to the subsurface layer(s) are the best catalysts for oxygen reduction [87] , in agreement with experiments [29] for which the highest mass power density to date was reached (250 kW.gPt -1 ). [29,56] Moreover, the addition of a small, amount of Au can be beneficial for the efficiency of the ternary catalyst PtPdAu (especially, Pt2Au/Pd3/Pd and PtAu2/Pd3/Pd) by preventing the dissolution of under-coordinated Pt atoms, and perhaps even enhancing the activity, making the ternary PtPdAu systems interesting for the ORR in PEMFCs. [87] Experiments [88] on Pt50Pd25Au25 and Pt70Pd15Au15 confirms the interest for ORR, but it is noticed that Au is segregating to the surface during electrochemical ageing, as predicted by DFT calculations too. [87] Moreover, Molecular dynamics simulations including initial conditions matching sputtering experiment show that sequential sputtering is required for obtaining DFT predicted catalyst structure. [62] If only co-sputtering of the three metals is chosen, Au atoms are segregating towards surface of the ternary PtPdAu cluster as shown in

Nonprecious and metal free catalysts

Non-precious metal and metal free catalysts for PEMFC [89] is an active field of research and plasma techniques certainly have the opportunity to bring novelty and original results.

Non precious catalysts in the form of non-precious metal (Fe, Ni, Mo, Cu) bounded to four nitrogen atoms as in metal porphyrine or phtalocyanine, are well suited for benefiting from plasma techniques. As example, Figure 14 display the structure of a metaltetramethylporphyrin, Me TMPP, where Me stand for Co, Fe, Cu, … Metal porphyrine and phtalocyanine molecules can be efficient non-precious catalyst , [63][START_REF]Dodelet in N4-macrocyclic metal complexes[END_REF][START_REF] Baranton | [END_REF][66] ,

but they require post deposition heat treatment for only having metal-nitrogen bonds identified as the active catalytic sites. Pioneering work of Easton et al [69,70] using magnetron combinatorial deposition allowed to sweep a large range of composition among (Fe, Co)C-N system. Post deposition heat treatments favoured the catalyst activity and durability up to 1000 hours. Highest reported fuel cell power densities were in the range 400 mWcm -2 , using such techniques.

Preliminary plasma treatments were carried out for replacing heat treatments. [47][48][49][50][51][52][53][54] Inductive (ICP) or Dielectric Barrier Discharge (DBD) plasma plasmas were built and a vibrating substrate holder allowed to uniformly treat all the catalysed powder. Main result was the improvement of the catalyst activity and reducing of the catalyst material losses compared to heat treatment.

Me

Concerning metal-free catalyst, work focusses on nitrogen doped C nanostructures. [72][73][74][75][76] Curiously, as functionalization is an attractive field for plasma chemistry, N-doping of carbon using plasma has not so much attracted attention. Nevertheless plasma functionalization using nitrogen precursor is very well understood now and might be of interest for fuel cell development without precious or non-precious metal catalyst. [75,[90][91][92][93][94][95][96] Moreover, some of these work on metal free electrodes can be directly adapted for preparing electrodes for lithium and sodium batteries. [97][98][99] In this context, parametric studies correlating plasma properties to catalytic performance in fuel cells are highly desirable for understanding the gain in using plasmas and finding the way for significantly improve metal-free PEMFC electrode performances.

As a further perspective, the use of cold atmospheric plasma can be promising techniques for fabricating PEMFC electrodes, [48,53,93,100,101] both for catalyst and electrode deposition or treatment.

Conclusion

This short review has emphasized on the use of plasmas for studying and improving electrocatalysts required for fuel cell operation, especially PEMFC. It is shown that plasmas are very versatile tools allowing many combinations of nanocatalyst composition, structure, morphology, leading to improved catalytic properties and fuel cell performances. The development of new type of electrocatalysts will leads to new plasma improvement dedicated to optimize the design in view of improving fuel cell performances, both activity and durability.

Figure 1 .

 1 Figure 1. Schematics of a solid polymer fuel cell. Bipolar plates act both as gas distribution

Figure 2 .Figure 2 .

 22 Figure 2.

Figure 3 .

 3 Figure 3. (a) Illustration of physical process in deposition/transport/diffusion/growth inside

  (b) Scanning Electron microscopy of plasma sputtered Pt deposited on an uncatalyzed electrode top surface (Courtesy D. Cot IEM Montpellier)

Figure 4 .

 4 Figure 4. Example of calculated energy distribution functions of Ar plasma sputtered Pt

Figure 5 .

 5 Figure 5. Examples of Pt concentration depth profiles vs (a) argon plasma pressure in the

Figure 7

 7 Figure 7).

Figure 6 .

 6 Figure 6. Scanning Electron Microscopy of a typical co-sputtered Pt-C active layer.

Figure 7 .

 7 Figure 7. Transmission Electron Microscopy of Pt-C columns showing small Pt clusters (dark

Figure 8 .

 8 Figure 8. Schematics of the Pt localization along carbon column and Pt cluster size evolution.

Figure 9 . 45 Figure 10

 94510 Figure 9. Schematics of the Pt-C nanocomposit plasma deposition combining PECVD and

Figure 10 .

 10 Figure 10. Scanning Electron Microscopy images of hydrocarbon films deposited at 0.8 sccm

Figure 11 .

 11 Figure 11. Transmission electron Microscopy pictures and Selected Area Diffraction (inset)

Figure 12 .

 12 Figure 12. Scanning Electron Microscopy images of Ptfluorocarbon films deposited at

Figure 13 .

 13 Figure 13. Molecular dynamics simulations matching plasma sputtering deposition of ternary

Figure 13 :

 13 Figure 13: Structure of a generic Metal Tetra-Methyl Porphyrin. Me stands for a metal atom

Acknowledgements. I would like to warmly thanks all my colleagues at GREMI who contributing to the works in the field: Anne-Lise Thomann, Amael Caillard, Johannes Berndt, Yves Tessier, Thomas Lecas, Stéphane Cuynet, Mathieu Mougenot, Marjorie Cavarroc,


Aikaterini Roukounaki

John Soldatos

Riccardo Petrolo
email: riccardo.petrolo@inria.fr

Valeria Loscri
email: valeria.loscri@inria.fr

Nathalie Mitton
email: nathalie.mitton@inria.fr

Martin Serrano
email: martin.serrano@insight-centre.org

Visual Development Environment for Semantically Interoperable Smart Cities Applications

Keywords: Smart Cities, Internet-of-Things, Semantic Interoperability, Development Tools

This paper presents an IoT architecture for the semantic interoperability of diverse IoT systems and applications in smart cities. The architecture virtualizes diverse IoT systems and ensures their modelling and representation according to common standards-based IoT ontologies. Furthermore, based on this architecture, the paper introduces a first-of-a-kind visual development environment which eases the development of semantically interoperable applications in smart citites. The development environment comes with a range of visual tools, which enable the assembly of non-trivial datadriven applications in smart cities, including applications that leverage data streams from diverse IoT systems. Moreover, these tools allow developers to leverage the functionalities and building blocks of the presented architecture. Overall, the introduced visual environment advances the state of the art in IoT developments for smart cities towards the direction of semantic interoperability for data driven applications.

Introduction

IoT Application silos in Smart Cities

The Internet-of-Things (IoT) [START_REF] Atzori | The internet of things: A survey[END_REF] is a key enabler of software applications for smart cities, given that it deals with several integral elements of smart city applications such as the communication across heterogeneous devices, the dynamic discovery of sensors and data streams, the collection and filtering of information from multiple data streams, as well as the analysis of data stemming from multiple data sources within the city. As a result of the proliferating IoT deployments in smart cities in different sectors (such as energy, transport, e-government), most cities have nowadays to manage multiple smart city deployments and applications. In most cases these applications have been designed and developed independently from each other, even when they have been deployed as part of a unified strategic plan. Furthermore, the various applications tend to evolve independently of each other, given that updates and enhancements to existing smart city applications rely on heterogeneous platforms and architectures. Also, in most cases the various applications have been designed and purchased by different departments of the cities. Therefore, the interconnection of different smart city systems and applications is very difficult, which is a set-back to the integration of these applications towards pursuing city-wide (instead of application-specific) goals. Hence, smart cities are nowadays characterized by the presence of a set of disaggregated heterogeneous application silos [START_REF] Schiele | Moving Towards Interoperable Internet-of-Things Deployments in Smart Cities[END_REF].

Recent advances in IoT architectures and semantic web technologies enable the convergence of these silos and facilitate the development of added-value integrated cross-context applications. In particular, the advent of IoT ontologies that can represent IoT data streams and services in a semantically interoperable way provides the means for integrated semantically unified IoT applications. The later integrated applications refer typically to applications that combine data and/or services from different legacy deployments within the smart city. Along with IoT ontologies, platforms supporting IoT ontologies for semantically interoperable modelling data/services have emerged. Such platforms provide a foundation for the implementation and operation of semantically interoperable IoT applications in the smart cities. In this paper, we present an IoT architecture for semantically unified applications in smart cities, which leverages existing ontologies (such as W3C SSN ontology [START_REF] Taylor | Semantic Sensor Networks: The W3C SSN-XG Ontology and How to Semantically Enable Real Time Sensor Feeds[END_REF]) and middleware platforms that support them (such as OpenIoT) [START_REF] Serrano | Defining the Stack for Service Delivery Models and Interoperability in the Internet of Things: A Practical Case With OpenIoT-VDK[END_REF].

Development Environment and Tools

Based on the close affiliation of IoT with smart cities, tools and techniques for developing IoT applications can act as a catalyst for the development of smart cities applications. Early frameworks for programming IoT applications have focused on the areas of WSN (Wireless Sensor Networks) [START_REF] Chatzigiannakis | 50 ways to build your application: A survey of middleware and systems for Wireless Sensor Networks[END_REF] and RFID applications [START_REF] Anagnostopoulos | REFiLL: A lightweight programmable middleware platform for cost effective RFID application development[END_REF]. Most of these frameworks provide the means for virtualizing sensors and actuators, thereby alleviating the heterogeneity of the various devices [START_REF] Aberer | Infrastructure for Data Processing in Large-Scale Interconnected Sensor Networks[END_REF]. Recently, we have also witnessed the emergence of software engineering solutions for the integrated development of more general IoT applications (e.g., [START_REF] Dimakis | Integrated Development of Context-Aware Applications in Smart Spaces[END_REF], [START_REF] Patel | Enabling High-Level Application Development in the Internet of Things, Sensor Systems and Software[END_REF], [START_REF] Cassou | Towards a tool-based development methodology for sense/compute/control applications[END_REF]). These solutions leverage semantic models that capture the main elements of IoT applications, including standard semantic models and ontologies, such as the W3C Semantic Sensor Networks (SSN) [START_REF] Compton | The SSN Ontology of the Semantic Sensor Networks Incubator Group[END_REF], which provides the means for abstracting/virtualising sensors. Such software engineering solutions are appropriate for supporting the development of applications that rely on the semantic unifications of the legacy disaggregated silos, which comprise the digital mature smart cities. In addition to introducing an IoT architecture for semantic interoperability, the present paper presents also a development environments for integrated cross-silo applications in smart cities. This environment leverages the IoT architectures and its common IoT semantic models (ontologies) in order to provide the means for combining, aggregating and processing (in a unified way) data streams stemming from diverse IoT systems and application silos within a smart city. The environment comes with a range of visual drag-and-drop tools, which boosts developers' productivity. It also takes advantage of the IoT architecture towards providing addedvalue data processing functionalities such as data analytics.

Structure of the Paper

Following this introductory section, Section 2 introduces an IoT architecture for semantic interoperability, which provides a wide range of added-value data processing functionalities. The latter operates over multiple semantically unified systems, rather than over a single legacy IoT system. Section 3 is devoted to the presentation of the development environment and of the visual tools that it comprises. Section 4 illustrates a range of sample data processing applications, which demonstrated the added-value of the development tools. Finally, section 5 concludes the paper.

IoT Architecture for Semantic Interoperability

An overview of the IoT architecture for semantic interoperability is provided in Fig. 1. It is structured according to the following layers:

• IoT Systems/Platforms and Data Sources Layer: This is the lowest layer of the architecture, where various IoT systems (including IoT platforms, applications and data sources) reside. The architecture integrates and processes information from multiple IoT systems. Therefore, this layer comprises the various IoT systems that are virtualized and integrated as part of the architecture. In order to validate the architectural concept, we have integrated and processed data from several IoT platforms. However, the architecture is flexible in the integration of additional platforms and/or applications, as soon as these platforms (or applications) expose a well defined PPI (Platform Provider Interface).

• Platforms Access and Data Acquisition Layer: This layer enables access to data and services of the underlying platforms/systems in a secure and authenticated way. Its role is to access the low-level capabilities of the IoT systems (through the PPI) and accordingly to transform the acquired data and metadata into a common data model (i.e. expressed based on an IoT ontology comprising sensors, IoT and smart cities concept). Hence, the functionality of the layer involves translating the low-level semantics of the individual platforms to the high-level and richer semantics of the presented platform. At this layer we also specify the notion of the adapter module, which undertakes the transformation of the lower-level PPI semantics to the high-level ontology. • Platform Agnostic Data Management Layer: This layer provides cloud-based functionalities for managing data and metadata that comply with the VITAL ontology. At this layer, the various data streams (and their metadata) are modelled and formatted according to the common ontology. The offered services include data and metadata persistence, creation of new data, discovery of data subject to various criteria and more. Access to the data of the platform will be based on semantic web technologies and techniques, given the modelling of the data according to the ontology. The platform agnostic data management layer offers a wide range of services to higher level applications, which reside in the added-value functionalities layer. These services will be accessible in a virtualized platform and location agnostic manner, through VUAIs (Virtualized Unified Access Interfaces). VUAIs are abstract interfaces residing at the top layer of the architecture, thereby enabling access to added-value data processing and process management functionalities, including CEP, service discovery, filtering, and other functionalities. The platform agnostic data management layer includes also a Service Discovery (SD) module, which enables the look-up and resolution of IoT resources. • Added Value Functionalities Layer: This layer comprises a set of complete services and tools, which leverage data and services from the platform agnostic management layer. The virtualized services of this layer will be provided by the following modules (depicted in Fig. 1): (A) Filtering Module: The filtering module of the architecture provides the means for reducing the information associated with individual data streams persisted in the platform agnostic data management layer. It therefore reduces unwanted information, thereby optimizing processing performance and economizing on network bandwidth; (B) Complex Event Processing (CEP) Module: This module enables the processing of data streams for multiple sources in order to identify patterns and/or infer events; (C) Orchestration Module: This module combines and manages multiple services from the above-listed modules, in order to deliver new addedvalue services. The combination of the various services is based on a workflow of service oriented components and interactions, which may be specified on the basis of rules. • Smart City Applications and Tools Layer: The architecture supports the development, integration, deployment and operation of smart city applications, notably applications leveraging data from multiple IoT platforms and applications (including legacy IoT applications in urban environments). All smart city applications are (during their operation) accessing data and services of the platform agnostic data management layer, including the discovery, filtering and CEP services. This layer includes management tools that enable the monitoring and configuration of IoT platforms, applications and services at various granularities. It also includes development tools enabling the development of smart city applications and services. The various applications and tools will be able to access data from the platform agnostic data management layer, as well as services offered from this layer. In the scope of the FP7 VITAL project (www.vital-iot.eu) a prototype implementation of the presented architecture is provided. This prototype implementation constitutes a middleware platform (i.e. the VITAL platform) that enables the development, deployment and operation of semantically interoperable applications in smart cities. Due to the implementation of the VITAL platform in-line with the above-presented architecture, we also conveniently refer to the architecture as the VITAL project architecture.

Development and Deployment Environment

Based on the architecture described above we have implemented an environment enabling the assembly of IoT applications that take advantage of the functionalities of the architecture. The environment exploits the semantic modelling and added-value functionalities of the architecture towards enabling the development of semantically interoperable applications. It is built over the popular Node-RED open-source tool for wiring the Internet of Things [START_REF]Node-RED, A visual tool for wiring the Internet-of-Things[END_REF]. Nodes and flows are the two fundamental concepts in Node-RED. A node is a well-defined piece of functionality. Based on the number of its input and output ports, a node can be of one of the following types: (A) An input node, which is a node that has one or more output ports; (B) An output node, which is a node that has one input port; (C) A function node, which is a node that has one input port and one or more output ports. Nodes can be wired together into what is called a flow. Input nodes sit at the start of a flow, output nodes sit at the end of a flow, and finally function nodes sit in the middle of a flow. Flows can be considered as programs, and nodes as the blocks that can be used to build them. The Node-RED platform comprises two components: (1) a browser-based editor that allows us to design flows (i.e. programs), and (2) a light-weight runtime where we can deploy and execute our flows. The browser-based flow editor is used for creating flows and deploying them on the Node-RED runtime. It comprises a palette, which can be extended with new nodes.

Development and Deployment Environment Overview

The development and deployment environment allows developers to access and compose the various capabilities offered by the architecture, in order to implement smart city applications. Part of the development and deployment environment is the VITAL development tool that serves as a single entry point to developers that want to build and deploy IoT applications that transcend multiple IoT platforms, architectures and business contexts by leveraging the capabilities provided by the VITAL framework. All these capabilities are exposed through VUAIs. All mechanisms to be integrated into that tool are exposed through VUAIs, which are implemented as RESTful web services, thus rendering Node-RED ideal as the basis for the implementation of the VITAL development tool.

The development tool has been also enhanced with a number of nodes relating to the architecture, as well as with functionalities provided by the R project [START_REF]The R Project for Statistical Computing[END_REF], a programming language and an environment for statistical computing and graphics. The result is an easy-to-use tool that also enables its users to perform a number of task (e.g. retrieval of IoT system metadata) relating to the semantic interoperability architecture, along with data analysis (e.g. data value prediction or clustering) tasks.

Based on the above-mentioned nodes and extensions, the palette of the development tool, offers, apart from the nodes already present in Node-RED, one node for each piece of functionality offered by a VITAL component. For example, Fig. 2 depicts the node that corresponds to the sensor-resource discovery functionality. In a similar way developers can exploit any VITAL functionality by just adding the corresponding node in their flow and setting its properties. While the flow is running, the node interacts with the appropriate components of the VITAL platform in order to perform its tasks. Thus, VITAL nodes facilitate the use of VITAL capabilities by hiding (from the developers) low level implementation and formatting details.

Authentication and Multi-User Environment

In order to be able to direct each user to a dedicated Node-RED instance that has been created for him/her, a router component has been developed. The router component is a web application that is responsible for the user authentication, as well as for re-directing an authenticated user to the Node-RED instance that is associated with them. Hence, the VITAL platform users register to the router. Whenever a registered user wants to manage their workflows, they log into the router. Once the user has been successfully authenticated, the router looks up into its local repository (1) the host where the Node-RED instance that is dedicated to the user is running and (2) the port where the Node-RED editor of that instance can be accessed. In case there is no running instance for the user, the router creates one. This effectively means that the router creates a clone of the Node-RED codebase, sets all necessary settings (see below), and starts it. Once the new Node-RED instance has been successfully created, the router saves the new mapping into its local repository for future reference.

In order to allow only to the user that owns the Node-RED instance to access it, but without having to log in again (after they have been successfully authenticated by the router), we must (1) enable user authentication in all Node-RED instances and (2) define a user in each Node-RED instance that has the same username and password with the corresponding VITAL user, to whom this Node-RED instance belongs. Both these requirements can be satisfied by setting the appropriate values in the settings file of each Node-RED instance that the router creates.

Based on the above, before the router re-directs an authenticated user to the appropriate Node-RED editor, it needs to contact the Node-RED instance (i.e. perform an HTTP POST to /auth/token), and exchange the credentials of the user with an access token. Once the router has obtained the access token, it can finally re-direct the user to the Node-RED editor with the access token set in the Authorization header. The authentication process is depicted in Fig. 3. It is a process that overall alleviates the single-user nature of the Node-RED environment, thus enabling the VITAL platform to operate as a multi-user platform.

VITAL Nodes

In following paragraphs we illustrate two of the new nodes that the VITAL platform has added to the core palette of Node-RED, notably nodes corresponding to PPI implementations and Resource Discovery.

Platform Provider Interface Implementation

The Platform Provider Interface (PPI) is defined as a set of primitives, marked as either mandatory or optional. All IoT systems that are compliant to the VITAL platform are expected to implement and expose (as RESTful web services) at least those primitives that are designated as mandatory. The following nodes have been specified and implemented:

• PPI nodes: These are configuration nodes that store information about how to access the PPI implementation of a VITAL compliant IoT system (e.g. its base URL). Configuration nodes are a special category of nodes in Node-RED that can be used for sharing configuration among nodes. For example, PPI nodes can be used by system and services nodes (see below) in order to select the PPI implementation they want to access, without having to specify more than once details on how to access it. The properties of these nodes include the base URL of the PPI implementation, as well as whether basic authentication is required.

• System Node: System nodes can be used to retrieve metadata about a PPI compliant IoT system. When a system node receives a message, the node makes an HTTP POST request to BASE_URL/metadata, and then sends out a message that contains the response to that request. The properties of these nodes include the PPI implementation to retrieve metadata about. • Sensor Nodes: Sensors nodes are function nodes that retrieve metadata about sensors that a VITAL compliant IoT system manages. The messages sent to these nodes can be used to filter the sensors to retrieve metadata for (based on their ID and type), whereas the messages sent by these nodes contain the retrieved sensor metadata.

• Service Nodes: Services nodes can be used to retrieve metadata about IoT services that a PPI compliant IoT system provides. The message that a services node receives may contain information, which can be used to filter the services to retrieve metadata for (based on their ID and type), whereas the message that a services node sends contains the retrieved service metadata. The services node is responsible for making an HTTP POST request to BASE_URL/sensor/metadata, in order to fetch the requested metadata • Data Nodes: Data nodes are function nodes that pull observations made by sensors managed by a PPI compliant IoT system. Input messages may contain information, which can be used to filter the observations to fetch (based on the corresponding sensor, property and time), whereas output messages contain the retrieved observations in JSON-LD format.

Resource Discovery

The following extra nodes have been added to the node palette in order to enable access to Resource Discovery functionalities:

• Resource discovery: Resource discovery nodes are configuration nodes that store information about how to access the Resource Discovery component of an instance of the VITAL platform. The properties of these nodes include the base URL of the component, as well as whether basic authentication is required (in which case a username and a password can also be provided). • Discover sensors: These are function nodes that can be used to discover sensors that reside within a certain radius from a certain point (latitude-longitude).The messages received by these nodes contain the radius, the latitude and the longitude. The messages sent by these nodes include metadata about the discovered sensors.

Sample Validating Applications

In this section we present a set of sample workflows which have been implemented using the VITAL development tool.

Sample workflow #1: Find the last observation made by a specific traffic sensor

We have used the development tool to implement a web service that accepts HTTP GET requests, which contain the URI of a traffic sensor in a sensor parameter in the query string, and responds with the last observation made by that sensor. For the implementation of the web service, we make use of an implementation of the PPI specification provided for the traffic sensors in Istanbul. The flow consists of the following nodes: (A) An http in node that accepts HTTP GET requests at /lastobservation; (B) A function node that extracts the sensor URI from the query string of the request, and uses http://vital-iot.eu/ontology/ns/Speed as the property URI; (C) A data node that retrieves the last observation made by that sensor for that property; (D) An http response node that responds to the initial HTTP request with the observation value. This workflow implements a web service that accepts HTTP GET requests, which contain the URI of a traffic sensor in a sensor parameter in the query string, and responds with a static HTML page that contains a map with a marker set on the location of that sensor. For the purposes of this web service, we use again the PPI implementation for Istanbul traffic sensors. The result of using that flow is depicted in Fig. 4. The flow comprises six nodes: (A) An http in node that accepts HTTP GET requests at /locate-sensor; (B) A function node that extracts the sensor URI from the query string of the request; (C) A sensors node that retrieves metadata about the sensor with that URI; (D) A function node that extracts the name, the longitude and the latitude of the sensor from the retrieved metadata; (E) A template node that creates an HTML page with the name of the sensor in the title, and a map with a marker at the location of the sensor; (F) An http response node that responds to the initial HTTP request with the that HTML page.

Sample workflow #3: Predict the next observation that a specific traffic sensor will make

The implementation of this workflow is based on the rstats which is an interface to R project. In particular, the development tool and rstats are used in order to implement a web service that accepts HTTP GET requests, which contain the URI of a traffic sensor in a sensor parameter in the query string, and responds with a prediction for the next observation that that sensor will make. The flow contains five nodes: (A) An http in node that accepts HTTP GET requests at /predict-nextobservation; (B) A function node that that extracts the sensor URI from the query string of the request, and uses http://vital-iot.eu/ontology/ns/Speed as the property URI; (C) A data node that retrieves all observations made by that sensor for that property since a given (earlier) time instant; (C) A function node that retrieves the values from the returned observations, and uses R to predict the value of the next observation according to the best ARIMA model (using the forecast R package); (D) An http response node that responds to the initial HTTP request with that value.

Conclusions

Existing IoT ontologies and semantic models can serve as a basis for semantically unifying data sources and data streams from a variety of legacy IoT systems within a smart city. This paper has introduced an IoT architecture which collects and processes information from multiple IoT systems in a smart city environment. Based on this architecture it has also introduced a toolset for IoT application developers that: (A) Ensures virtualized access to diverse IoT systems, including the sensors they manage and the services they provide; and (B) Supports the functionalities provided by the VITAL platform as the latter are specified in the above-mentioned architecture. The toolset has been implemented on the basis of extensions to the popular Node-RED visual environment for IoT. The resulting tools provide the means for implementing semantically interoperable data driven applications in smart cities environment with only minimal programming effort, thus boosting IoT application developers' productivity.

Fig. 1 .

 1 Fig. 1. Overview of IoT Architecture for Semantic Interoperability

Fig. 2 .

 2 Fig. 2. Concept of VITAL Resource Discovery Node within the Development Tool

Fig. 3 .

 3 Fig. 3. User Authentication in the scope of the VITAL multi-user Node-RED environment

Fig. 4 .

 4 Fig. 4. Screenshot for sample workflow #2 -Show the location of a specific traffic sensor

Acknowledgements

This work was funded in part by the European Community in the framework of the VITAL FP7 project (Virtualized programmable InTerfAces for smart, secure and cost-effective IoT depLoyments in smart cities) under contract number FP7-SMARTCITIES-608662. The authors acknowledge help from all partners of the project.