Amir Masoud Gharehbaghi

Tomohiro Maruoka
email: maruoka@cad.t.u-tokyo.ac.jp

Masahiro Fujita
email: fujita@ee.t.u-tokyo.ac.jp

A New Reconfigurable Architecture with Applications to IoT and Mobile Computing

Keywords: Reconfigurable Architecture, Placement and Routing, FPGA, Mobile Computing, IoT, Convolutional Neural Network

Traditional reconfigurable devices known as FPGAs utilize a complicated programmable routing network to provide flexibility in connecting different logic elements across the FPGA chip. As such, the routing procedure may become very complicated, especially in the presence of tight timing constraints. Moreover, the routing network itself occupies a large portion of chip area as well as consumes a lot of power. Therefore, limiting their usage in mobile applications or IoT devices with higher performance and lower energy demands. In this paper, we introduce a new reconfigurable architecture which only allows communication between neighboring logic elements. This way, the routing structure and the routing resources become much simpler than traditional FPGAs. Moreover, we present two different method for scheduling and routing in our new proposed architecture. The first method deals with general circuits or irregular computations and is based on integer linear programming. The second method is for regular computations such as convolutional neural networks or matrix operations. We have shown the mapping results on ISCAS benchmark circuits as general irregular computations as well as heuristics to improve the efficiency of mapping for larger benchmarks. Moreover, we have shown results on regular computations including matrix multiplication and convolution operations of neural networks.

Introduction

Recently, with the advances in internet of things (IoT) technology as well as the increase in the computing power of mobile devices, there is a growing interest in performing different computational tasks on IoT or mobile platforms, especially for edge computing solutions.

In the edge computing paradigm, it is essential to reduce the amount of data that is transferred between IoT nodes and the servers. Therefore, the IoT nodes or mobile devices require to perform more computation tasks. This way, the communication bottleneck due to data transfer bandwidth or communication latency is avoided.

Programmable hardware devices, such as Field Programmable Gate Arrays (FPGAs), have shown to be superior in term of performance as well as energy efficiency for different computation tasks compared to using CPUs or GPUs [START_REF] Rafique | Enhancing performance of Tall-Skinny QR factorization using FPGAs[END_REF][START_REF] Aluru | A review of hardware acceleration for computational genomics[END_REF][START_REF] Morcel | Minimalist design for accelerating convolutional neural networks for low-end FPGA platforms[END_REF][START_REF] Zhang | Machine learning on FPGAs to face the IoT revolution[END_REF][START_REF] Song | Insitu AI: towards autonomous and incremental deep learning for IoT systems[END_REF]. Consequently, very promising to be used in IoT or mobile platforms. Another category of programmable devices is Coarse Grain Reconfigurable Architecture (CGRA). CGRAs usually provide a less complicated and more regular communication among the processing elements or the processor cores compared to FPGAs to enable acceleration of applications [START_REF] Farmahini-Farahani | DRAMA: an architecture for accelerated processing near memory[END_REF][START_REF] Liang | A coarse-grained reconfigurable architecture for compute-intensive MapReduce acceleration[END_REF][START_REF] Tanomoto | A CGRA-based approach for accelerating convolutional neural networks[END_REF][START_REF] Bae | Auto-tuning CNNs for coarse-grained reconfigurable array-based accelerators[END_REF].

In this work, we have proposed a new reconfigurable hardware architecture suitable for IoT or mobile platforms with the following characteristics.

1. Traditional FPGA devices have a complicated routing architecture to provide flexibility in connecting internal logic blocks together. Consequently, mapping an application to an FPGA device may become very difficult when the utilization of internal blocks is high, or the timing constraints are very tight and hard to achieve. Therefore, we have proposed an architecture which provides connectivity only to neighbors employing a mesh topology, similar to CGRAs; consequently, simplifying the routing architecture as well as the routing method greatly. 2. In the traditional FPGA devices, the routing network, because of its complexity, occupies a large portion of the chip area; consequently, increasing the power consumption. However, in our proposed architecture, because of connectivity to only neighbors, the routing network is greatly simplified, reducing its size as well as the power consumption. 3. Traditional FPGA devices are very fine grained, meaning that the basic functional blocks can only implement basic logic functions. However, in our architecture, the basic functional blocks may be more complicated, for example ALUs or more complicated processing elements. However, unlike CGRAs the functional blocks are not very coarse grained.

In addition to the new proposed architecture, we have provided a scheduling and routing algorithm using integer linear programming (ILP). Starting from a data-flow graph model of the application, ILP formulation results in efficient mapping of the application to our proposed architecture, as well as the optimum latency for executing the application. Moreover, we have introduced heuristics to improve the efficiency of the routing method for larger circuits.

The proposed mapping method is general and may be used for random logic or irregular computations as well as regular computations such as operations on a matrix or convolution operations in neural networks. However, for regular computations there is a more efficient way that is scalable to even very large problems that employs the inherent regularity of the operations. Our proposed mapping method for large regular computations is based on automatic mapping for the small instances of the problem, and induction-based generalization for larger problem.

Please note that because of our simpler and more regular routing architecture compared to traditional FPGA devices, it is possible to achieve very deep pipelining with higher clock frequency, consequently improving the performance of the computation on our proposed architecture. The rest of the paper is organized as follows. Section 2 gives a background on reconfigurable devices and ILP. Section 3 presents our proposed hardware architecture. Section 4 presents our scheduling and routing (mapping) method for general circuits or irregular computations. Section 5 presents our method for regular computations. Section 6 shows the experimental results. Section 7 concludes the paper and gives some future directions.

Background

Reconfigurable Hardware

Field-programmable gate array (FPGA) is a semiconductor device with a matrix of programmable logic blocks and a programmable routing network. Fig. 1 shows a simple architecture of a FPGA. Configurable logic blocks (CLBs) contain 1 or more lookup-tables (LUT) to implement small logic functions. LUTs may have 4 or more inputs and can implement any logic function of 4 or more inputs. Each CLB may contain 1 or more LUTs. The routing network consists of programmable switch blocks (SB) and a number of links connecting SBs together. By programming SBs, CLBs can be connected together to implement larger logic functions. Moreover, some SBs are connected to input/output (I/O) pins to be able to transfer data between FPGA and the outside world.

Coarse grain reconfigurable architecture (CGRA) is another kind of reconfigurable device, shown in Fig. 2. One main difference between CGRA and FPGA is the communication network. CGRAs usually use 2-D mesh or torus network. Moreover, the processing elements of CGRA are processor cores or some complicated processing units, providing coarse grained parallelization of operations or tasks.

ILP

Integer linear programming (ILP) is an optimization method that tries to find the values for a set of integer variables given a set of linear constraints, such that a linear function becomes minimized or maximized.

For example: minimize x + 6 * y subject to:

2 * x + y ≤ 7 , 3 * x + 5 * y ≤ 15 , x, y ≥ 0
There are numerous problems in the field of electronic design automation (EDA) that can be mapped to an ILP problem, including scheduling and routing, which is the target of this paper.

Hardware Architecture

In this section, we present our proposed hardware architecture and comparison to the traditional FPGA architecture.

The general architecture is shown in Fig. 3 (left). The basic building blocks are configurable logic block (CLB), that are connected in a 2-D mesh architecture. Each CLB is connected to its four neighboring CLBs (North, South, East, West), as shown in Fig. 3 (center). Moreover, each CLB's data can be used in the next cycle with the Local link. CLBs at the edges are connected to I/O pins to transfer data to/from the device.

Inside each CLB is shown in Fig. 3 (right). Each CLB contains a number of 4-input lookup tables (LUTs). LUTs can be used to implement any 4-input logic function. The 4 inputs of the LUT are selected from the 5 inputs (N,S,E,W,L). Output of each LUT is latched and is send to all the four neighbors.

Each CLB may have a number of LUTs (n). Therefore, n different logic functions may be implemented in a CLB. Also, because of the connectivity to all neighbors, n data line exists between every two neighboring CLBs.

Although in the architecture shown in Fig. 3, LUTs are used inside CLBs, LUTs may be replaced with more complex processing elements such as ALUs. This way, higher-level applications, instead of logic functions, can be mapped to the hardware easily. Following are the main differences between the proposed architecture and a traditional FPGA.

In the proposed architecture, data can be transferred only from a CLB to a neighboring CLB. Therefore, to transfer data from a CLB to other nonneighboring CLBs, some CLBs in between should be used as transfer points. However, in a FGPA data may be transferred from any CLB to any other CLB as long as there is an available routing resource. Consequently, data transfers in FPGA may take a long time, increasing the critical path delay, and reducing the clock frequency. However, in our proposed architecture, all data transfers are between two neighboring CLBs, and take exactly one clock cycle. Moreover, the critical path delay is fixed, and so the clock frequency.

This means that a given application, when mapped to our architecture, may result in very deep pipeline. In general, having a very deep pipeline helps to improve the performance, although the latency may be increased. Another important feature of our proposed architecture is that the critical path delays are fixed; hence, the timing closure problem may not happen. Fig. 4 illustrates the differences in the pipelining of a FPGA and our proposed architecture.

General Mapping Method

In this section, we present our mapping method for the proposed hardware architecture. The input of the mapping method is the data-flow graph (DFG) of the application, and the general information about the hardware such as the architecture mesh size, and the number of LUTs in a CLB. The output of the method specifies that each node of the DFG is executed on which LUT of which CLB, and at which cycle. For example, the simple DFG shown in Fig. 5 (left) will be mapped to the proposed architecture as shown in Fig. 5 (right).

ILP Variables

We have formulated the problem of mapping as an integer linear programming (ILP) problem that can be solved with any ILP solver, as follows. We have defined the binary variable D to represent the data transfers.

ILP Constraints

There is a constraint that all the nodes'data should appear at least once, meaning that all the operations are performed, as follows: ∀op, t p D(op, t, p) ≥ 1

Note that in the definition of variables, we have assumed that any op can be mapped to any CLB, meaning that all CLBs are capable of executing any DFG node function. However, in general, we may have different DFG node types and different CLB types, and each type of DFG node may be mapped to different CLB types. In that case, we need additional constraints to define not allowed resource bindings, by adding constraints that which data transfers are not feasible. It means that some D(op, t, p) variables are always 0.

Data transfer constraints make sure that all the edges of DFG are assigned at least once. Moreover, because of the proposed architecture, data transfer constraints make sure that correct sequence of data transfer is performed, meaning that data is only transferred to the neighboring nodes in one cycle. The constraints are as follows: ∀op, t, p, op par , -D(op, t, p) + p ∈ps D(op, t -1, p ) + p ∈ps D(op par , t -1, p ) ≥ 0 ∀op, t, p, -D(op, t, p) + p ∈ps D(op, t + 1, p ) + op chi p ∈ps D(op chi , t + 1, p ) ≥ 0

The other constraint is regarding the number of registers in a block. Assuming the number of registers is n, maximum n operations may be performed in a block: ∀p, op t D(op, t, p) ≤ n

Objective Function

In our problem, the goal is to map in such a way that the latency is minimum, meaning that the last cycle that any DFG node is executed (T ) be minimum. The constraint for the objective function is as follows: ∀op, t, p, (t * D(op, t, p) ≤ T ) However, practically we can avoid adding the above constraint, as the additional constraints slow down the ILP solver. In our solution, when we are generating the problem for the ILP solver, we only add D(op, t, p) variables for t ≤ T . This way, if the problem has a solution with time limit of T, it can be solved. Otherwise, the problem has no solution, meaning that the execution of the given DFG in the given architecture cannot be finished in less than T cycles.

Regular Computations Mapping Method

The general mapping method presented in the previous section works for any kind of circuit. However, it is required to employ heuristics to become scalable to larger circuits, and, heuristics may largely affect the quality of results. Therefore, we are proposing another mapping method that is both scalable and optimal for large regular computations. One of the important characteristics of regular computations, like matrix operations or convolutions on neural networks, is that the general flow of the operations is very similar or the same for different sizes of the problem. Therefore, if the optimal solution for the small size problem is known, its generalization to larger size problems is possible.

The general flow of the proposed mapping method for regular computations is as follows:

1. Map the smaller size problem optimally by an automatic method, like the proposed method in the previous section. 2. Use induction methods to generalize the solution of small problem for large one, semi automatically by human guidance. 3. Map the large problem optimally, automatically, utilizing the induction.

The generalization phase results in a set of constraints that basically limits the search space of the solver; consequently, larger problems can be solved very efficiently by an automated method. Following, the method is shown on two different examples.

Matrix-Vector Multiplication

Matrix-vector multiplication is one of the basic operations on matrices that have many applications in different domains including neural networks. Fig. 8 shows the multiplication of a 4x4 matrix, and Fig. 9 shows its corresponding data flow graph that is mapped to 4 blocks. The flow of data among the blocks is like a ring connection, and the mapping is followed by the "natural" order of operations by Following the proposed method, we have tried to find the optimal solution for this matrix-vector multiplication. Two different optimal results are obtained that are shown in Fig. 10 and Fig. 11. In the first solution, the partial products are propagated from one block to its neighbor block, while in the second solution, the input vectors are propagated.

The above observations regarding the flow of data in the solutions can be done by a human, and that knowledge can be used in a program to automatically generate and verify the solution for larger size matrices, as shown in the experimental results section.

Convolutional Neural Networks

Nowadays, convolutional neural networks (CNNs) are used in many applications; hence, acceleration of the convolution operations are very important. In this section, we present an optimal mapping of convolution operations in one convolution layer of CNN for image classification as an example.

Fig. 12 shows a typical neural network for image classification. At first, a moving window of different sizes performs feature extraction on the input image, using convolution operations. At the end a fully connected neural networks performs image classification based on the extracted features from the image.

Th convolution operation on a moving window usually requires a lot of processing power; hence, a target of acceleration. We have proposed a sequence of operations for a window, following ring connection-like order of operations as well as moving the window on the input image to maximize the utilization of processing element in each block as well as making data transfers locally. Fig. 13 shows the order of operations for 4x4 window, though it can be extended to other window sizes. Fig. 14 shows the data flow graphs for image of 4x4 and

Experimental Results

In this section, we present our experimental results on mapping different DFGs into our proposed architecture. In our experiments, we have used DFGs obtained from ISCAS benchmark circuits and mapped them to our proposed hardware assuming LUTs in our blocks. Similarly, the DFGs may be obtained from other applications, and the block contents may be ALUs or other more complex processing elements, without affecting the mapping process or the mapping results. The process of obtaining DFGs is as follows:

1. The original circuit is synthesized and mapped into to netlist of LUTs with ABC tool [START_REF]ABC: A System for Sequential Synthesis and Verification[END_REF] 2. The netlist of LUTs is converted to DFG as follows: each LUT in the netlist becomes a node in DFG, and for each connection in the netlist we have the corresponding edge in the DFG.

We convert DFGs to ILP formulas with our mapping program written in Python.

For the experiments, we have used Gurobi optimizer [12]. All the experiments are performed on a server with Xeon E5 2.2GHz processor and 512GB memory running Linux kernel 4.16. In the first experiment, we generated DFG for the combinational ISCAS benchmark circuits, as explained above. The DFG are then mapped to our hardware structure, as shown in Table 1. Columns 1 and 2 show the circuit name, and its number of inputs/outputs, respectively. Columns 3, 4, and 5 show the number of nodes, edges, and levels in the DFG, respectively. Columns 6 shows the size of the mesh structure. Columns 7 and 8 show the size of the ILP problem in terms of number of variables and number of constraints of ILP formula. Column 9 shows the latency of the mapped circuit that is the number of clock cycles to finish executing the DFG on the target hardware. Column 10 shows the execution timr of the ILP solver to find the optimum solution.

As shown in the results, the complexity of finding optimum solution increases by increasing the number of DFG nodes as well as the number of I/O of the circuit. Therefore, for some circuits the optimum results could not be found even in 1 day.

In the next experiment, we tried to improve ILP solving time by partitioning the DFG into 2 sections, such that each section will be implemented in one of the 2 partitions of the hardware as shown in Fig. 15.

We have used hMETIS graph partitioning tool [START_REF]hMETIS -Hypergraph & Circuit Partitioning[END_REF]. hMETIS tries to partition the graph into 2 subgraphs in a way that each subgraph has almost the same number of nodes, and the number of edges crossing a subgraph into another subgraph is minimum. In other words, the number of data transfers among the subgraphs is minimum, while almost uniformly distributing the DFG nodes. The results are shown in Table 2 for the four hardest cases. Comparing the results without graph partitioning and with graph partitioning, the latency is not increased while the execution time of ILP solver is reduced by an average more than one order of magnitude. Note that hMETIS is very fast and for all the DFGs finishes in less than 100ms. Moreover, for one of the cases that could not be solved because of timeout, the optimum solution is obtained. However, for one of the circuits we still cannot find optimum solution, and we need other heuristics to reduce the runtime further, and it is part of our future work.

In the next experiment, we used the proposed mapping method for matrixvector multiplication. First, we tried the mapping for 4x4 matrix, as explained before, as the guidance for generalization to larger matrix operations. Then, we added constraints to the mapping program to limit the flow of operations for arbitrary size matrices similar to the case of 4x4. The results of mapping larger matrices are shown in Table 3. Without the generalization of the solution for 4x4 matrices, the problem for matrices larger than 8x8 could not be finished in one day. However, with the proposed generalization methods, matrix size of 32x32 can be mapped into 4 cores in less than 25 minutes.

Conclusions

In this work, we have presented a new reconfigurable architecture for IoT and mobile platforms. Our hardware consists of several logic blocks connected through a mesh network. The proposed hardware architecture provides a general platform for both fine-and coarse-grained computation. Compared to traditional FPGA devices, our proposed hardware can achieve easily very deep pipelining; hence, providing high performance computation.

In addition, we have proposed the general mapping method based on ILP formulation and heuristics to improve its efficiency. Our mapping method starts from the data-flow graph (DFG) of an application and results in optimal latency. The general mapping method works for any kind of computation. However, for regular computations such as matrix operations or convolutions on CNN, we have proposed a method scalable to large designs. The method is based on solving the problem automatically for small problem, generalize it by human, and solve the problem for larger problems automatically.

Our future work is improving the efficiency of the general mapping as well as experimenting with mapping high-level applications to coarse-grained blocks. Moreover, we are working on automation of the generalization process.

Fig. 1 . 2 .

 12 Fig. 1. Traditional FPGA Architecture Fig. 2. Traditional CGRA Architecture

Fig. 3 .

 3 Fig. 3. Proposed Architecture

Fig. 4 .

 4 Fig. 4. Comparison of pipelining in a FGPA (left) and the proposed architecture (right)

Fig. 5 .Fig. 6 .

 56 Fig. 5. Example of mapping a DFG in to the proposed architecture

Fig. 7 .

 7 Fig. 7. Mapping Example

Fig. 8 .Fig. 9 .

 89 Fig. 8. Matrix-Vector Multiplication

Fig. 10 .

 10 Fig. 10. Multiplication Solution 1: Local Transfer of Partial Products

Fig. 12 .Fig. 13 .

 1213 Fig. 12. An Example CNN for Image Classification

Fig. 14 .

 14 Fig. 14. Data Flow Graphs for 4x4 Image and Window Size of 2x2

Fig. 15 .

 15 Fig. 15. Partitioning of the architecture into 2

Table 1 .

 1 Experiment 1: mapping of DFGs from ISCAS benchmark circuits

Table 2 .

 2 Experiment 2: mapping after partitioning original DFG to 2

Table 3 .

 3 Experiment 3: mapping of matrix-vector multiplication


Suejb Memeti
email: suejb.memeti@lnu.se

Sabri Pllana
email: sabri.pllana@lnu.se

Mexhid Ferati
email: mexhid.ferati@lnu.se

Arianit Kurti
email: arianit.kurti@lnu.se

Ilir Jusufi
email: ilir.jusufi@lnu.se

IoTutor: How Cognitive Computing Can Be Applied to Internet of Things Education

Keywords: Internet of Things (IoT), education, cognitive computing, IBM

We present IoTutor that is a cognitive computing solution for education of students in the IoT domain. We implement the IoTutor as a platform-independent web-based application that is able to interact with users via text or speech using natural language. We train the Io-Tutor with selected scientific publications relevant to the IoT education. To investigate users' experience with the IoTutor, we ask a group of students taking an IoT master level course at the Linnaeus University to use the IoTutor for a period of two weeks. We ask students to express their opinions with respect to the attractiveness, perspicuity, efficiency, stimulation, and novelty of the IoTutor. The evaluation results show a trend that students express an overall positive attitude towards the IoTutor with majority of the aspects rated higher than the neutral value.

Introduction

Internet of Things (IoT) [START_REF] Gubbi | Internet of Things (IoT): A vision, architectural elements, and future directions[END_REF] pertains to networked interactive physical objects (such as, personal devices, connected cars, industrial machines, or household goods) with sensing, processing, communication, and acting capabilities. Evolution of the Internet from a network of computers to the network of things creates opportunities for new services and applications in society [START_REF] Ferati | Augmenting Requirements Gathering for People with Special Needs Using IoT: A Position Paper[END_REF][START_REF] Memedi | An Interface for IoT: Feeding Back Health-Related Data to Parkinson's Disease Patients[END_REF][START_REF] Perez | A simulation study of a smart living IoT solution for remote elderly care[END_REF] and industry [START_REF] Cerf | Taking the Internet to the Next Physical Level[END_REF][START_REF] Alsouda | A Machine Learning Driven IoT Solution for Noise Classification in Smart Cities[END_REF]. According to Gartner [START_REF] Gartner | Internet of Things[END_REF], it is expected that by the year 2020 there will be about 20 billion IoT devices worldwide and it is expected that more than 65% of companies will use IoT solutions. Therefore, adequate education of the future workforce is a precondition for success in the increasingly relevant domain of IoT.

When searching for information about a topic, search engines usually return more results than we can study. For instance, currently Google returns about 35 million results, when we search for Internet of Things. Therefore, it is important to have a system that returns succinct information from relevant literature based on a question expressed in natural language.

A cognitive computing [START_REF] Cer | Universal Sentence Encoder[END_REF][START_REF] Henderson | Efficient Natural Language Response Suggestion for Smart Reply[END_REF][START_REF] Modha | Cognitive Computing[END_REF] system, such as the IBM Watson [START_REF] High | The Era of Cognitive Systems: An Inside Look at IBM Watson and How it Works[END_REF], relates a text passage (that is a question) with another text passage (that is an anticipated corresponding answer) by using machine learning. Predicting the probable answer involves determining the major features of the question by generating hypothesis and evaluation of possible answers considering the context, and iterative learning from each instance of interaction with the cognitive system. The IBM Watson [START_REF] Ferrucci | Introduction to "This is Watson[END_REF] has been successfully used in many domains [START_REF] Mercer | 16 innovative businesses using IBM Watson: Which companies are using Watson's big data and analytics to power their business?[END_REF], such as, the life sciences research [START_REF] Chen | IBM Watson: How Cognitive Computing Can Be Applied to Big Data Challenges in Life Sciences Research[END_REF] or health-care [START_REF] Ahmed | Cognitive Computing and the Future of Health Care Cognitive Computing and the Future of Healthcare: The Cognitive Power of IBM Watson Has the Potential to Transform Global Personalized Medicine[END_REF]. Goel et al. [START_REF] Goel | Using Watson for Enhancing Human-Computer Co-Creativity[END_REF] argue that the IBM Watson has the potential to be used as an educational tool.

In this paper, we propose to use cognitive computing for education of students in the IoT domain. We describe the design and implementation of IoTutor that we use for empirical evaluation of our approach. We have implemented the IoTutor as a platform-independent web-based application using a collection of the IBM Watson cloud services including the discovery service, text-to-speech and speech-to-text services. We trained the IoTutor with selected scientific publications and course books relevant to the IoT education. To investigate users' experience with the IoTutor, we asked a group of students taking an IoT master level course at the Linnaeus University in Sweden to use the IoTutor for a period of two weeks. One of the course assignments was to develop a literature review for the course project. To complete the assignment, they were instructed and encouraged to use IoTutor beside Google Scholar and other digital libraries. Via a user experience questionnaire participants were asked to express their opinions with respect to the attractiveness, perspicuity, efficiency, stimulation, and novelty of the IoTutor. The results show a trend that participants expressed an overall positive attitude towards the tool. The majority of aspects were rated higher than the neutral value, while the rest were slightly lower than the neutral value. We observed that for some questions IoTutor showed sub-optimal answers, which may be a consequence of using a relatively small number of training questions and papers.

Major contributions of this paper include, 1. a development of IoTutor, which is a cognitive computing tool able to interact with users through text and voice using natural language, 2. a training of IoTutor for education of students in the IoT domain, 3. an evaluation of IoTutor with the help of a group of students at Linnaeus University.

The rest of the paper is organized as follows. In Section 2 we discuss the related work. Section 3 describes the design and implementation of IoTutor. In Section 4 we first demonstrate the use of IoTutor, and thereafter we discuss the results of the user experience questionnaire. We conclude our paper and provide future research directions in Section 5.

Related Work

In this section we first provide examples of related work and thereafter we contrast the work presented in this paper with the related work.

Goel et al. [START_REF] Goel | Using Watson for Enhancing Human-Computer Co-Creativity[END_REF] used different Watson services to develop six diverse applications that aim at understanding the functionality and capabilities of Watson and enhancing the human-computer co-creativity. By developing these diverse applications the authors argue that Watson has potential to be used in different domains, and has large range of opportunities to be used as an educational tool.

Achilleas et al. [START_REF] Achilleos | SciChallenge: A Social Media Aware Platform for Contest-Based STEM Education and Motivation of Young Students[END_REF] propose to use social networks and media for increasing motivation of students for STEM education and careers. They developed a social media aware platform and evaluated it in the context of a pan-European contest in STEM disciplines. More than 700 pre-university students participated in the contest and via a user-experience questionnaire they had the opportunity to express their opinion. Results of the questionnaire suggest that the contest using social media had positive influence on learning and motivation of participants.

Chen et al. [START_REF] Chen | IBM Watson: How Cognitive Computing Can Be Applied to Big Data Challenges in Life Sciences Research[END_REF] investigate the use of IBM Watson for accelerating the life sciences research. The authors trained Watson using large amounts of data including pharmacological data, genomics data, patents, and literature in life sciences. Watson is able to recognize concepts and their synonyms when they appear as an image or text in literature. For instance, Watson was able to generate in real-time relationships between the multiple sclerosis and any gene using data from more than 26 million MEDLINE abstracts.

Witte et al. [START_REF] Witte | Intelligent Software Development Environments: Integrating Natural Language Processing with the Eclipse Platform[END_REF] uses natural language processing to bring new levels of support to software developers. A plug-in that is integrated in the Eclipse IDE is developed, which provides quality analysis of the comments found in source code and version control commits. The aim of this project is to help software developers reduce the effort required to analyze their code by extracting useful information that might be valuable to understand the functionality of the application that is not always obvious by looking at the source code only.

Chozas et al. [START_REF] Chozas | Using cognitive computing for learning parallel programming: An IBM Watson solution[END_REF] study the use of cognitive computing for assisting novice programmers in avoiding the commonly made mistakes in parallel programming with OpenMP. They use the dialogue service of the IBM Watson for implementation of their solution that enables a dialog-based interaction with a programmer in English and Spanish during the process of parallel programming.

Harms [START_REF] Harms | Towards a programming environment that adaptively suggests examples and corresponding puzzles based on programmer skill[END_REF] proposes an approach that is able to monitor and understand the programming skill level of the developer and adaptively suggest code examples that may help to learn new programming concepts found within the suggested examples. The author argues that this approach avoids overwhelming the memory of novice programmers by considering the previous knowledge of the programmer and carefully suggesting examples that contain new information.

In contrast to the related work, we use the cognitive computing technology to develop the IoTutor that assists students to learn about the domain of Internet of Things.

Design and Implementation

In this section, first we describe the design of our solution, thereafter we highlight implementation details.

Design

The goal of IoTutor is to provide means for communication (related to the area of Internet of Things) between the user and the computer through natural language in a similar fashion as personal assistants like Apple Siri, Google Now, and Microsoft Cortana. While these personal assistants are incorporated in the operating system, and can be used only within a selected operating system, we aim at developing a web based platform that is independent from the operating system and device. IoTutor allows users to interact with it, that is ask questions related to Internet of Things, through a dialog-based interface.

A high-level architecture overview of our system is depicted in Figure 1. The main components of the system are the front-end, the back-end, and the Watson Cloud Services. The user interacts with the front-end. The front-end forwards requests from the user to the back-end, and returns responses from the back-end to the user. The back-end is connected to Watson Cloud services, which are used to extract knowledge from a corpus of data (in this case scientific publications), and enhance IoTutor with speech capabilities (that is text-to-speech and speechto-text). Fig. 1: A high-level overview of IoTutor architecture. The front-end provides means for interaction with the user, and the back-end interacts with the IBM Watson Cloud services. The front-end is a web based dialog view that can be accessed with any Internet Browser.

Figure 2 depicts the flowchart with the major events of the IoTutor. When the tool starts, the page is rendered and a welcome message is displayed. Then depending on how the user wants to interact with IoTutor, that is voice or text, the following steps are performed. If the user wants to use voice commands, then the microphone button should be pressed, which will establish a stream through the back-end between IoTutor and the speech-to-text Watson, and the recognized words will be displayed in the question box. Unless the user toggles Fig. 2: A flowchart of user interaction with the IoTutor. the microphone from on to off, IoTutor will keep recognizing the voice commands and display the text on the question box. Otherwise, if the user decides to use text to ask questions, the question can be typed on the question box. When the microphone is stopped, or the send button is pressed, the question will be displayed in the conversation area, and then it will be sent to the back-end. When the list of relevant answers is retrieved, those will be displayed in the conversation area. Passages of answers are displayed first, which the user may click to expand and then the answer will appear in a modal (pop-up) window with more details. Those details include a link to the full article and an option to let IoTutor read the full text to the user. Once the button to read the text is pressed, an audio player will be shown and IoTutor will start reading the text. If the link to the full article is pressed, the user will be redirected to the full pdf file. When the close button is clicked, the modal window will be closed, and the user may either choose to expand another answer, or ask a new question.

A high-level overview of the development process of IoTutor is depicted in Figure 3. There are four main activities, including data preparation, data import, training of the model, and using the model. In what follows we describe each activity. Data Preparation (activity 1): Scientific articles related to Internet of Things were collected from different electronic databases, including ACM, Springer, IEEE Explore, and Elsevier (activity 1.1). They were classified in respective folders, where each folder corresponds to an electronic database. The scientific articles were further classified by the venue, such as a conference, journal, or a magazine (activity 1.2).

Data Import (activity 2):

To be able to split the scientific publications in subsections, which is useful to correctly identify all relevant sections of the manuscript, a separate configuration file was created for each database and venue. For example, a configuration file, named Springer-conference-configuration.json, was used to identify sections of Springer conference scientific articles (activity 2.1). These configuration files were used to import the data into the Watson Discovery service. The corresponding configuration files were used to import the scientific articles collected from each venue of a digital library (activity 2.2).

Training (activity 3): According to the Watson Discovery Service documentation [START_REF]IBM Cloud Docs: Discovery -Improving result relevance with the tooling[END_REF], a minimum of 49 queries should be used to train the Watson Discovery service. We used minimal resources and have defined 50 questions to train the model (activity 3.1). For each question, we have added a natural language query to the Watson Discovery service for training (activity 3.2). For each question, Watson suggests a set of answers, which need to be marked as relevant or not-relevant (activity 3.3). We went through 15 answers for each question and marked their relevance. Since the training process is a one-time activity, we have used the Watson Discovery Tooling interface, rather than using the API to implement the same functionality. In total, we fed Watson with 50 paper and 2 books in the topics of Internet of Things. The training process took 6-7 hours excluding the time to find the articles and preparing the questions.

Using the service (activity 4): Once the Discovery service was trained, the tool was ready to accept various questions related to Internet of Things (activity 4.1). A set of relevant answers are provided by Watson, and displayed to the user (activity 4.2). Fig. 4: An overview of components used to implement our solution.

Implementation Details

Figure 4 shows an overview of components used to implement our solution. There are three layers of the architecture, the front-end, the back-end, and the Watson Cloud Services.

Front-End

The major components of the front-end include the IoTutorSpeech, IoTutorDiscovery, and index.

The IoTutorSpeech component has three main functions, toggleMic() used to turn the microphone on and off, listen() used to initiate the process of streaming data to the corresponding Watson services when the microphone is on, and speak() will start reading the corresponding answer when the user clicks the play button.

The IoTutorDiscovery component has four main functions, initConversation() used to initiate the conversation, which basically says the welcome message and some instructions on how to use IoTutor. The getMessage() is triggered when the user asks a question, it displays the question on the conversation area, and sends it to the corresponding Watson services. The getResponse() is triggered when the back-end has found a response and it displays it on the conversation area. The readText() will simply call the speak() function from the IoTutorSpeech component with the corresponding parameters.

The index component is a simple file which includes the html markup, the style-sheets, java-scripts, fonts, and icons. It also has an init() function which is used as a constructor to set the variables. Third party libraries such as bootstrap and jQuery were used to implement the front-end.

Back-End

The major components of the back-end include the discovery, speech, and env. Third party NodeJS modules, such as Watson Developer Cloud SDK, vCapServices and request, were used in our implementation. For design and security reasons, the front-end communicates with the Watson services through the back-end. The back-end has the environment file (env.json) that contains the credentials (such as, username, password, url, workspace, version, collection id, configuration id, and environment id) for each of the Watson Cloud services, including discovery, text-to-speech, and speech-to-text.

The discovery component is a simple application program interface (API), which accepts requests (in this case questions) from the front-end and sends it to the Watson Cloud Discovery service. The API needs to authenticate first using the information found in the env.json file. When a response is received from the Watson Discovery service, the back-end forwards the response to the front-end. Additionally, the back-end has a database of files that were imported in the Watson Discovery service, and it can easily map a response to an actual scientific publication, such that if the user wants to read more, the front-end can provide a link to the paper.

The speech component is an API, which handles requests and responses for speech-to-text and text-to-speech services. It can basically establish a stream that can listen to the user's microphone and display the recognized text in the input box of the IoTutor GUI, as well as can generate an audio file corresponding to a given input text. Similar to the discovery component, it first authenticates to the text-to-speech or speech-to-text service using the information provided by the env.json file, and then it can send specific requests to the Watson Cloud text-to-speech or speech-to-text services.

Watson Cloud Services Watson provides different cloud services, such as speech-to-text, text-to-speech, discovery, conversation, and natural language understanding. To achieve the goals of our paper, we have used only three of them, discovery, text-to-speech, and speech-to-text.

The discovery service allowed us to extract useful information from various scientific publications related to Internet of Things, such that when the user asks a question, we can query the service and retrieve a list of ranked responses (publications, sections of publications, or a specific sentence or paragraph in such articles) that are relevant to the question being asked.

The speech-to-text service allowed us to enhance the IoTutor with voice recognition, such that the user may use their microphone to ask questions. This service will listen to the microphone and as a response will provide a stream of recognized text.

The text-to-speech service allowed us to enhance the IoTutor with the possibility to read the provided answers for users. This service accepts a text input and provides an audio file which can be played on demand by the user. The combination of the speech-to-text and text-to-speech services enabled us to provide an interaction between the user and IoTutor, similar to personal assistants like Apple's Siri [START_REF]Apple Inc: iOS -Siri -Apple[END_REF] or Google's Now [START_REF]Google Now[END_REF].

Environmental details To implement our application, we have used HTML5, CSS, and JS in front-end, whereas NodeJS [2] is used in the back-end. Among others, in the back-end we used the Watson Node SDK [START_REF]Watson Developer Cloud Node.js SDK[END_REF] to access the IBM Watson Developer Cloud services. The application was deployed on an Ubuntu v14.04 server with Apache v2.4 and node v6.11 installed. For the voice commands to work on the front-end, which requires data to be encrypted, we enabled the Hyper Text Transfer Protocol Secure (HTTPS) on our server (Table 1).

Evaluation

In this section, we first demonstrate the functionality of IoTutor and how users can interact with IoTutor to ask questions related to Internet of Things. Thereafter, we describe the evaluation method and results of our evaluation.

Demonstration

Figure 5 shows the graphical user interface of IoTutor and demonstrates a use case scenario when a user asks an IoT related question, and IoTutor provides a list of relevant answers. When IoTutor is loaded, the welcome message is displayed (see Fig. 5a) and waits for the user to either press the microphone button and talk, or type a question on the question box. The question will appear in the conversation area together with the list of relevant answers. IoTutor provides up to 10 relevant answers, out of which the first two will appear first, and the rest can be accessed using the navigation links. To help users quickly find a desired answer, the list of answers shows only excerpts of the full answer, which can be displayed when the user clicks the View Document button.

The Expanded answer view is depicted in Fig. 5b, and it contains information related to the scientific publication that contains the answer, including article title, authors, and publication year, as well as a link to the full article. The text shown in this view provides the complete information, which sometimes was lengthy, and to help the user focus on the most important parts, we highlight the passages in a light blue color. Instead of reading the text, the user may choose to let IoTutor read the text. In that case, an audio player will be shown containing the controls to play, pause, or move forward and backwards through the audio stream. The results of the UEQ show a trend that participants expressed an overall positive attitude towards the tool. Most of the aspects/dimensions (12 out of 17) were rated higher than the neutral value, while the rest were slightly lower than the neutral value (see Figure 6). However, the highest average rating was 3.8, which is an indication that although positive, these results are still not convincing.

When looking cumulatively at each of the five aspects/dimensions, all ratings appear over the neutral value (see Figure 7). Considering that the aspects of perspicuity and efficiency measure the usability of the tool, and the aspects of simulation and novelty measure the user experience, the indication is that both show similar ratings. Slightly higher ratings were shown for perspicuity and novelty, which is an indication that participants had no difficulty to familiarize themselves with using the tool, and participants had recognized the innovativeness and creativeness of the tool. Besides the UEQ results, we had an opportunity to briefly discuss the tool with two participants after they have used the tool and provided their UEQ answers. One major concern expressed was that the tool provided keywordbased answers, which was not expected considering that the interface tool was accepting natural questions. Participants' expectation was that an interface that is based on Watson should provide more natural and comprehensive answers. Indeed, such interface behavior was also noted by the researchers. Because this seemed inappropriate, we did contact IBM and inquire whether the service was working correctly or if training process and resources fed to Watson were with omission. Their reply confirmed that the procedure we followed was correct. It remains to speculate that perhaps in order to get better results, Watson should be trained with more content and more questions than what we had provided (described in activity 3). Two other usability issues were revealed in our discussion. One was considering the voice-based input. Apparently, when users used that feature, once they stopped talking, the question was submitted, without offering the opportunity to edit the text beforehand. Considering that sometimes there were comprehension issues and the text displayed by the interface was different from what the participant had uttered, being able to edit the question was necessary. The other issue was the interface feature to read out loud the excerpts from the paper provided as an answer. This feature was actually possible only when participants expanded the initial answer and viewed an extended excerpt from the source paper. Participants expected that the interface would read even the initial brief answer provided. This was an interface omission to clearly communicate when that feature is availability.

Conclusions and Future Work

With above 20 billion IoT devices expected to be used in the near future, adequate education of skilled work-force is a priority. Considering the recent success of cognitive computing solutions in health or financial domains, and the increasing volume of IoT literature in various formats, we have proposed in this paper the application of cognitive computing to IoT education.

We have described the design and implementation of IoTutor, which is a platform-independent web-based application that enables dialog-based interaction with users that want to learn about IoT. The interaction in text or speech form is done using natural language. We have investigated the usefulness of IoTutor by asking a group of students at the Linnaeus University to use the Io-Tutor for a period of two weeks. Participants have expressed their opinions with respect to the attractiveness, perspicuity, efficiency, stimulation, and novelty of the IoTutor. The majority of aspects were rated higher than the neutral value, while the rest were slightly lower than the neutral value.

We have observed that using a relatively small number of training questions and papers may result with sub-optimal answers from IoTutor. Our intention with this study was to see the quality of answers that IoTutor would provide with minimal training resources. In the future, we plan to use a larger digital library of scientific publications during the training process of IoTutor to measure its impact in the increase of the quality of the answers provided by the tool.

1

 1 Collection of scientific articles 1.2 Classification of articles based on the venue 2.1 Create a configuration file for each venue 2.2 For each venue, import the corresponding articles 3.1 Prepare a minimum of 50 questions 3.2 Query the model using the selected questions 3.3 For each query, select the (not) relevant answers 4. USING 4.1 Retrieve user questions as text or voice 4.2 Respond to the user using text or audio

Fig. 3 :

 3 Fig. 3: IoTutor development process. Major steps include data preparation, data importing, IoTutor training, IoTutor using.

  (a) The conversation area view, including the greeting message, questions, list of answers, question box, and microphone toggle button.(b) The expanded answer view, including the article information (title, authors, year), the text-to-speech functionality, and expanded answer.

Fig. 5 :

 5 Fig. 5: Demonstration of a case where the user: (1) asks a question and IoTutor shows a list of answers (Figure 5a); and (2) clicks the View Document button to expand the answer (Figure 5b).

Fig. 6 :

 6 Fig. 6: The average and standard deviation for each of the answers in the user experience questionnaire.

Fig. 7 :

 7 Fig. 7: Cumulative averages and standard deviation for each aspect of UEQ.

Table 1 :

 1 Key software components of IoTutor server

	Software component Version
	Operating System	Ubuntu 14.04 x64
	Web Server	Apache 2.4
	Runtime Platform	NodeJS 6.11
	Libraries and Packages Watson Node SDK 2.4, Unirest 0.51, Bootstrap 3.3.7

Watson

This research has received funding from the Swedish Knowledge Foundation under Grants No. 20150088 and No. 20150259

Evaluation Method and Results

To understand users' interaction and experience with the IoTutor, we conducted an evaluation of the tool. The IoTutor was initially presented to participants and then they were given two weeks period to explore it. Most of the participants were students taking an Internet of Things master level course at Linnaeus University. One of the course assignments was to develop a literature review for the course project. To complete the assignment, they were instructed and encouraged to use IoTutor beside Google Scholar and other scientific libraries. After they had used IoTutor, participants were instructed to answer questions (see Table 2) of a User Experience Questionnaire (UEQ), which was adopted from [START_REF] Schrepp | User Experience Questionnaire Handbook[END_REF]. The questionnaire measured six dimensions: attractiveness (four questions), perspicuity (three questions), efficiency (two questions), stimulation (four questions), and novelty (four questions). Questions were represented in a five-scale semantic differentials, where 1 indicates the most negative answer, 5 indicates the most positive answer, and 3 indicates a neutral answer. Ten participants consented and answered the questionnaire.


Funmilayo O Bamigboye
email: bamigboyefo@abuad.edu.ng

Emmanuel O Ademola
email: ademolaeo@p-acc.co.uk

Internet of Things: The present status, future impacts and challenges in Nigerian Agriculture

Keywords: IoT, Nigerian agriculture, prospects of IoT, status of IoT

The present study considered the current state of internet of things in Nigeria, future prospects and challenges to the usage of the technology in Nigerian Agriculture. In Nigeria, IoT has been used to dispense feed and water to chicks, virtual fences for monitoring farmlands and forest trees, cashless sales and purchases of farm produce and input, monitoring and management of staff performances on the farm and e-wallet for input, loan and information accessibility on agricultural issues. However, there is room for improvement in the area of security for the animals (animal tracking), weather forecasting and real-time soil monitoring, livestock and crop health surveillance. Challenges faced in the usage of IoT in Nigeria are inadequate/lack of capital, skilled manpower, facilities. In conclusion, IoT has great potentials to move Nigerian agriculture to an enviable position.

Introduction

Internet of Things (IoT) is a recent technology that is gaining widespread awareness and acceptance in several fields due to its practical relevance in everyday life improvement. IoT has found its utility in transportation, environmental monitoring and forecasting, home and office appliances, agriculture, health, security and energy conservation [START_REF] Bamigboye | Internet of Things (Iot): It's Application For Sustainable Agricultural Productivity in Nigeria[END_REF]. In Nigeria, agriculture serves as one of the main resources for income generation for individuals, private and public organisations. However, agriculture in Nigeria as an enterprise and food security outlets for her populace is still backward in the use of IoT. Internet of Things has the potential to improve, enhance and absolutely change the face of Nigerian agriculture to a world-class standard.

Internet of Things (IoT) is the network of physical objects, devices, vehicles, buildings and other items which are embedded with electronics, software, sensors and network connectivity which enables these objects to collect and exchange data [GSI, 2015]. The Internet of Things allows objects to be sensed and controlled remotely across existing network infrastructure, creating opportunities for more direct integration between the physical world and computer-based systems, and resulting in improved efficiency, accuracy and economic benefit. IoT is any object which is capable of identifying, connecting and communicating with other objects [START_REF] Santucci | The Internet of Things: Between the Revolution of the Internet and the Metamorphosis of Objects[END_REF] [LOPEZ Research Series, 2013] [START_REF] Reddy | Reaping the Benefits of the internet of things[END_REF].

Agriculture is a profit-driven oriented business; hence, factors that influence the profitability of a farm are of great paramount and interest to the farmer. IoT can be made relevant if it can address the general needs of a locality, be made available and affordable, easy to use and packaged in the local/indigenous languages. With intensification of crop/ livestock production systems and increased market demand of animal based products, the importance of information is growing in many developing countries [START_REF] Morton | Improving Livestock Production through Extension: Information Needs Institutions and Opportunities[END_REF]. Hence, there is need for continual exchange of information and data, decoding and interpretation as well as actions taken to achieve desired success.

[ Sasidhar and Sharma, 2006] have emphasised that the use of Information and Communication Technology (ICT) has potential to change the economy of livestock, agriculture, and rural artisans in India. [START_REF] Tiwari | Status and scope of information and communication technology for livestock and poultry production in India-A review[END_REF] argued that the livestock sector should come up with need based, location specific and local language contents in the form of computer software and other electronic material in regards to livestock disease control, dairy herd management, livestock production and for marketing of livestock and livestock produce. ICT based information delivery to livestock sector can significantly improve the quality of decision-making in livestock farming system. In this process of structural change and potential growth in high value products [START_REF] Gulati | Growth in high-value agriculture in Asia and the emergence of vertical links with farmers[END_REF], ICT based livestock advisory services for knowledge dissemination to the farming communities for better and informed decision-making at the farm level, have become essential.

Nigeria has witnessed a great deal of set-back due to corruption at all levels in every sector; agriculture inclusive. IoT in form of E-wallet was employed to address agricultural inputs and services corruption. Most times, subsidized inputs do not get to the practicing farmers but are rather lost in transit to the rich and influential few that repack and sell at exorbitant prices.

Present status of Internet of Things in Nigerian Agriculture

In Nigeria, the Internet of Things is just becoming popular in all facets of life. However, its usage in agriculture is still backward. Mostly, IoT usage in agriculture is believed to be only profitable to large-scale farmers. But very few farmers in Nigeria practiced large-scale farming. Hence, most farmers have not seen the need for its usage on their farms.

Mobile feed and water dispensing system

Feeding of poultry birds is a major task that is time-consuming and labour-demanding. Its efficiency also can determine the profitability of a poultry farm. In Nigeria, feed dispensing methods working based on IoT were developed by researchers. In [START_REF] Arulogun | Development of mobile IntelligentPoultry Feed and Water Dispensing System[END_REF] a mobile intelligent poultry feed dispensing system was developed. The system was able to move, detect and avoid obstructions and dispense solid feed to poultry birds. However, [START_REF] Olaniyi | Design of an Intelligent Poultry Feed andWater Dispensing System Using Fuzzy Logic Control Technique[END_REF]] designed a mobile intelligent poultry feed and water dispensing system; using fuzzy logic control technique. This unit was responsible for dispensing solid feed to the poultry birds. It comprises of a solid feed trough, a 12V DC motor connected to a conveyor and a feeder. The solid feed trough is expected to be filled with the appropriate solid feed to be administered to the birds. A feed sensing unit which comprises of a light dependent resistor checks the feed level and in turn determines if there is a need to dispense the feed or not. The microcontroller will then send a signal through the PID controller to the DC motor which will enable it to rotate. The rotation of the DC motor will in turn rotate the conveyor which will result in the dispensing of the solid feed to the feeder. The poultry birds feed from the feeder after feed is dispensed to the feeder for the pre-defined time determined by the microcontroller. A relay circuit is connected between the microcontroller and the DC motor so as to enable proper functionality of the system [START_REF] Olaniyi | A Mobile Intelligent Poultry Feed Dispensing System Using Particle Swarm Optimized PID Control Technique[END_REF]].

Virtual fences

The use of virtual fences to monitor the perimeters of large farmlands and plantations is of tremendous advantage. The most obvious is in terms of cost savings when compared to building high brick fences and employing security personnel to patrol the entire perimeter. With virtual fences, relatively cheap modules can be installed and the entire perimeter monitored remotely [START_REF] Ajayi | Detecting Intrusion in Large Farm Lands and Plantations in Nigeria Using Virtual Fences Conference Proceeding: Transition from Observation to Knowledge to Intelligence[END_REF].

The Nigerian Satellite Company Limited, has successfully designed, implemented, tested and deployed an RFID-based Staff Attendance and Access Control System (RFID-SAACS). RFID-SAACS is a vital tool for staff management, administration, and monitoring that impacts staff's attitude to work, as time theft by staff is completely eliminated. The logged data can also serve as a means of staff monthly appraisal, while an additional utilisation of the RFID-SAACS system includes integration into the payroll system to facilitate precise salary computation and payment based upon vetting of employees' overall performance [N.C.S.L., 2015]. This is used in some automated farms in Nigeria.

Also, the use of point-of-sale (PoS) terminals for the purchase of farm produce to achieve cashless transactions is now common in Nigeria. A PoS terminal is an electronic device that is used for verifying and processing credit/debit card transactions, which transmits data over a standard telephone line or an Internet connection. The Nigeria Interbank Settlement Services (NIBSS) had observed in its recent report that PoS is the most popular non-cash payment channel, preferred among the non-cash payment options by 93.6 % of merchants and 35.8 % of consumer usage. It described the usage of card and PoS as fair, with an average of three to four out of every 10 customers requesting to pay for transactions by card/PoS [START_REF] Adeoye | Overcoming challenges of PoS transaction[END_REF]. Electronic payment through PoS terminals has risen by 191 % to N241 billion in 2014 [START_REF] Komolafe | PoS transactions rises 191% to N241bn, says NIBSS[END_REF]. Furthermore, as part of an ambitious strategy to transform agriculture, the Growth Enhancement Support (GES) initiative, introduced in 2012, farmers' cellphones as electronic wallets -distributing vouchers amounting to a 50% subsidy for purchase of fertilizer. Ministry officials say the phones could eventually be used for multiple purposes, from communicating weather and climate information to accessing market data. Experiences in other African countries showed that such uses can deliver higher prices to farmers. Records also show that 1.2 million farmers received their subsidized fertilizer and seeds through cellphone vouchers in 2013, resulting in the addition of 8.1 million metric tons to Nigeria's domestic food supply. As a result, Nigeria reduced its food imports by over 40 % by 2013, moving the country closer to self-sufficiency in agriculture [START_REF] Hultman | Cell phones for farmers to cut corruption, deliver services[END_REF].

Future prospects of IoT in Nigerian agriculture

Effective tracking of nomadic cattle-grazing and movements enabled by smart tracking devices would greatly minimize the number of community clashes between nomadic herdsmen and the settled rural farming communities. This would go a long way to help settle the persisting conflict and communal disputes, tensions, which most often degenerate into communal wars between the people [START_REF] Ume | Smart Agriculture in Nigeria with IoT; A Reality[END_REF]. Indiscriminate killings and destruction of properties in the recent time by Fulani cattle herders can be tracked and curbed. Animal theft can be drastically reduced to the minimum. Since rural communities are sparsely populated, transportation of farm products can be a problem. IoT technologies can empower the transporters by providing them with information of farmers who require transport. Therefore transporters do not need to wait until they have a full truck load of farm products to start off, they can leave any time provided they are aware that there are farmers waiting for transport ahead [START_REF] Bamigboye | Internet of Things (Iot): It's Application For Sustainable Agricultural Productivity in Nigeria[END_REF].

Furthermore, farm workers can receive real-time notifications from farm machinery equipped with wireless sensors as issues arise. The ability to perform preventative maintenance and repair issues immediately could lead to tremendous cost savings in decreasing down time and protecting valuable assets [START_REF] Farrell | Harvesting the benefits of IoT in Agribusiness[END_REF]. The health of farm animals such as cattle or chicken can be monitored to detect potential signs of disease. This can be linked to a central system which can trigger relevant advice to be sent to farmers, and contribute towards analytics that can be used to identify any outbreaks or trends [START_REF] Farrell | Harvesting the benefits of IoT in Agribusiness[END_REF].

Through the use of Near-Field Communications (NFC), the farmers and buyers can benefit from paperless transactions and this helps minimize on theft and fraud. Similarly this is beneficial to rural farmers who have no access to banks within a reasonable distance to deposit cash from purchases or withdraw cash to buy farming inputs. The use of livestock or crop smart health cards which store information related to affected livestock or crops can be beneficial to both the veterinary or agriculture officer and the farmers in Nigeria. This can lead to efficient and effective diagnosis and prescription of medicine since the officer has access to all the historic information of the affected livestock or crop. If satellite transmission is made available in the deep rural area, this has the potential to create jobs for local businesses who could offer low-cost solutions, access and wireless network services cheaper to the communities. Satellite transmission can also enable farmers in rural areas obtain information on markets for their products and prices, government services that they can access, and their rights. The system can also connect to government departments and local and international markets. With the introduction of the mobile internet and low-cost sensors, farmers could interact directly with consumers and cutting off middlemen who usually exploit them. This is beneficial to farmers because they can make better profits on their products [START_REF] Haas | Outreach of M-Pesa system in Kenya: emerging trends financial assessment[END_REF].

4

Challenges of IoT in Nigerian agriculture

Inadequate skill manpower

The biggest challenge faced in the usage of IoT solutions in Nigeria is inadequate skilled manpower. Most farmers are found in the rural areas and are mostly unskilled and uninformed in terms of IoT. Adult literacy should be intensified to bring to limelight the usage and usefulness of IoT to rural farmers in Nigeria. Also, training of farmers' children to integrate the household into IoT application usage will further enhance continuity

Inadequate facilities

Internet of Things requires a lot of equipment; software and hardware for proper functioning. Without power supply, continual usage of IoT is impaired. However, in the rural area where agriculture is most pronounced and prominent in Nigeria, constant supply of electricity is not guaranteed. Hence, efforts should be made towards the provision of stable and constant power supply. This may be generated from solar, biogas or water which can be obtained even at the rural level.

Insufficient start-up capital

The initial cost of setting up an IoT compliant farm can prove to be a barrier to many small-scale farmers. The cost of importing some of the existing IoT-sensors is still relatively high. Inadequate/lack of access to source of internet has created a great setback for farmers to afford IoT. However, the cost of purchasing mobile data for continuous monitoring and storage either to cloud or remote centres for analysis is also expensive. However, in recent times, Nigerian Communications commission (NCC) is making efforts to improve data rates and supply in Nigeria. The Government also should support the farmers to make internet available even in the remote villages where they are mostly found.

Meager sponsorships from corporate organizations

Most support goes to entertainment-music and comedy rather than education, agricultural research and innovation in Nigeria.

Lack of collaboration among tech hubs

At present in Nigeria, technology hubs operate solo. As a result of this, innovations developed in one technology hub rarely diffuse to the rest of the country. This is slowing down innovation adoption and circulation in Nigeria. Co-operation and unity should be encouraged among tech hubs.

Conclusion

Internet of Things in Nigeria is still at the formative stage. However, future prospects were identified. Nevertheless, the sustainability of IoT in the country is being faced with some challenges.


Roger G Johnson
email: rgj@dcs.bbk.ac.uk

How three Poznan University students broke the German Enigma Code and shortened World War Two

Keywords: Enigma, code breaking, World War II, Marian Rejevski, Jerzy Rozycki, Henryk Zygalski, Turing-Welchman Bombe

The story of the Allied breaking of the German Enigma codes in World War 2 was first published in the 1970s. Even now many of the details, especially concerning the critical work in the 1930s undertaken by gifted and dedicated Polish codebreakers remains largely unknown. Their work is credited with saving the Allies several years work and so shortening the war and saving thousands of lives. The holding of the IFIP World Computer Congress in Poznan, home of the Polish codebreakers, gave an opportunity for their work to be highlighted to an international audience. Talks covering the work of the Polish, British and French codebreakers were given and webcast worldwide. In addition, a encoded Enigma message was sent at the start of the day from Poznan to Bletchley Park in the UK where the volunteers of the Bombe team at The National Museum of Computing successfully confirmed their breaking of the message at the start of the afternoon session.

Background

In 1945 General Dwight D Eisenhower (Allied Supreme Commander Europe) wrote to General Stewart Menzies (Head of Bletchley Park in the UK saying that the successful reading of German messages had "saved thousands of British and American lives and, in no small way, contributed to the speed with which the enemy was routed and eventually forced to surrender"

The story of how the Allied forces broke the German Enigma code during World War 2 has been told many times in recent years usually from a variety of perspectives mostly linked to Bletchley Park in the UK. The critical contribution of the Polish codebreakers remains little known outside Poland and only a limited number of books and papers have been published about their work. The Polish codebreakers repeatedly broke the Enigma code as its security features were steadily enhanced throughout the 1930s. The result was that as war was about to break out in 1939 the Poles were able to give working replica Enigma machines to their French and British allies and to explain how they had successfully broken the German Enigma messages up to that time.

Without this dramatic gesture it is very unlikely that the British and French would have been able to develop the codebreaking techniques which enabled the British to read German Enigma traffic throughout most of World War 2 at Bletchley Park and also the French until late 1942 at Bletchley Park's French equivalent.

This paper summarises the story of the critical Polish contribution and how it was built on by the French and British, most notably by the British mechanisation of the most time-consuming part of finding the key each day by the building of machines which were named Bombes. The Polish role is well documented in two books, Kozaczuk (1984) first published in Polish in 1979 which focussed primarily on the codebreaking and very recently in Turing (2018) which recounts the codebreaking exploits but also the lives of the codebreakers during and after this tempestuous period.

The holding of the IFIP World Congress in Poznan in Poland provided an ideal opportunity for IFIP WG 9.7 on the History of Computing to celebrate the work of three talented and heroic Polish mathematics students from the University of Poznan, Marian Rejewski, Jerzy Rozycki and Henryk Zygalski, who trained in Poznan to become codebreakers and whose work ultimately led to the significant shortening of World War 2.

The author is a member of IFIP WG 9.7 and is also the Secretary of the Turing Welchman Bombe Rebuild Trust (TWBRT) which owns the replica Bombe completed in 2007 and is demonstrated every week at The National Museum of Computing (TNMoC) housed in Block H of Bletchley Park in the UK. He arranged for the TWBRT Bombe team to hold one of its occasional roadshow events in which an Enigma message is sent from a remote location to the Bombe Team at TNMoC who then attempt to break the code and send back confirmation of the message being successfully read.

Enigma Machine

The origins of the Enigma coding machine were with a commercial coding machine built by a German electrical engineer named Arthur Scherbius. He obtained several patents for his machines starting in 1918. The device evolved into a portable device about the size of a typewriter powered by batteries. Having initially failed to interest the German armed forces in his machine he sold them as commercial coding machines for use by financial institutions such as banks to protect commercially sensitive information being sent by telegraph and other devices. Turing [Turing 2018] records that in 1926 both the British and Polish authorities had obtained commercial examples to study while he also notes that, in the same year, German Navy signals using an Enigma machine are noted for the first time.

Following the largely static army operations of the First World War, military strategists developed ideas for future mobile land warfare. However, a critical issue would be to create effective communications for command and control of relatively small frontline military units. In addition, naval commanders, especially with a growing force of submarines, needed secure two-way communications to maintain contact with their forces. What was required was a secure coding machine which, given its presence close to the frontline in mobile warfare, could sooner or later be captured by the enemy without compromising the security of the communications network. This need for portable, secure communications potentially across large distances, was the capability the Enigma machine provided. Figure 1 shows a German army Enigma machine. The key features of the Enigma machine were a conventional German keyboard and above it lamps which light each time a key is pressed with the enciphered character corresponding to the key pressed. Above the lamps are the three rotor wheels. Each time a key is depressed the righthand rotor advances one step and after one revolution the adjacent rotor advances one step and similarly with the leftmost rotor. Each rotor has the letters of the alphabet around the rim and every letter is wired to another letter elsewhere on the rotor. Thus a letter "A" typed on the keyboard may emerge from the first rotor as "K" and so on through the other two rotors. The electric current then reaches the plugboard on the front of the machine where 20 of the 26 letters are again wired up in pairs after which it returns through the wheels until it lights up a lamp on the machine. The Army Enigma machine ultimately had five rotors and on any day three would be used in a predefined arrangement of rotors. The result of all these different combinations is to produce over 150 million million million alternatives. A very comprehensive account of the evolution of the Enigma coding machine is provided in [START_REF] Perera | Inside Enigma by Tom Perera published by the Radio Society of Great Britain[END_REF].

It was this extraordinary number of combinations which several times later in the war led the Germans to conclude, in the face of circumstantial evidence to the contrary such as dramatic increases in submarine losses after the Allied breaking of the naval Enigma, that the Enigma machine had in fact not been broken but that there was an alternative explanation, such as espionage or allied technological advances, for significant German setbacks.

It is worth noting that other military powers, including Britain, also adopted coding machines which made use of rotors. It was fundamentally a good approach to automated enciphering of messages in an electro-mechanical era.

Poland and Germany

The inter-war Polish state was a creation of the Versailles Peace treaty. It was situated between Germany and Russia and the Polish authorities trusted neither. In the turmoil following the Russian revolution, the Polish government regarded the German state of the later 1920s as a bigger potential threat than the Soviet Union. Also Soviet codes were still using First World war techniques and so liable to successful attack. Initial attempts to break German Enigma messages using the commercially available Enigma machine failed. Obviously the machine had been modified. Any attack on the machine would need trained cryptographers and so a special course was run at the University of Poznan which was in a part of Poland which had formerly been part of Germany and hence had many fluent German speakers. In 1929 20 students were recruited to the course. Further attempts at breaking into Enigma still yielded nothing until in 1932 the French recruited a spy, Hans-Thilo Schmidt, who worked as a civilian in the German Army's cryptography unit. To fund an extravagant life style he needed money and proceeded to sell large numbers of photographs of secret files relating to the work of the cryptographic unit to the French.

Unfortunately without a German military Enigma machine the French realised that the photographs of the operating instructions were of no immediate value. The British when offered the photographs came to the same conclusion. The French then approached the Poles who expressed more interest but asked for more information. Gradually through the first half of 1932 the French obtained more and more material from Hans-Thilo Schmidt until finally, in August 1932, they obtained an encrypted message together with the original text. With the other secret material already obtained, it now appeared that it might be possible to reverse engineer the Enigma machine, in particular the wiring of the rotors.

The first recruit to the Polish Cypher Bureau from the Poznan course was Marian Rejewski. Initially he worked on Enigma in the evening after his colleagues in the Cypher Bureau had gone home. Later on it became a full time but still secret project. Month by month he gradually worked out the wiring inside the machine. While for their part the French continued to supply more secret intelligence from Hans-Thilo Schmidt. The final problem to be overcome, once the wiring of the Enigma machine had been worked out was to determine a way to find which rotors were being used, in what order they had been placed into the machine and the starting position for each of the rotors. Marian Rejewski noticed that each message began with the starting position sent twice. Marian Rejevski was now joined by two more graduates of the Poznan course. They were Jerzy Rozycki and Henryk Zygalski. From the stolen operating instructions they knew that the Germans sent the starting position twice at the start of each message and they realised that during the encipherment almost certainly only the righthand wheel turned while the others remained stationery. Studying the patterns enabled them to devise simple lookup methods to find the arrangement of the rotors and also some of the plugboard settings. Further they realised that what they needed was a working copy of an Enigma machine. Starting with an old commercial machine as a model, the Poles constructed in utmost secrecy a small number of machines functionally the same as the then current German Enigma machine complete with correctly wired rotors and a plugboard.

The procedures used by the Germans continued to evolve. Gradually rotor orders were changed more frequently until in October 1936 they were changed daily. Sloppy operating practices were eliminated and more cables were used on the plugboard. A major change took place as war clouds gathered in 1938 when the Germans introduced two new rotors, making five in total, and changed their operating procedure to use a different initial wheel position for each message. Each time the Poles responded with new techniques to re-establish the setup of the machine so that messages could be successfully read.

Sharing with Britain and France

By 1938 both the British and French cryptographers had looked at approaches to breaking the Enigma messages but had made little progress with the latest German versions of the machine. They had only succeeded in breaking into simpler versions of Enigma used in the Spanish Civil War and also the less advanced Italian system. The Munich crisis of 1938 caused both to examine their readiness for war which led to a substantial exchange of information about Enigma. The French knew from the intelligence they had supplied to the Poles that the Poles had probably made some progress but the British appear to have been unaware of the possible significance of the Polish work. However, the major changes by the German in late 1938 had stretched the Polish resources close to breaking point. Their productivity in breaking into Enigma had dwindled dramatically.

In December 1938 the French proposed holding a three way conference in Paris between France, Britain and Poland at which the French hoped to find out what progress each had made. The meeting, held in January 1939, went badly with each party revealing only very limited amounts of information. However, it was clear to each party that the others were serious in their commitment to break into Enigma and so contacts were maintained through the spring and summer of 1939.

The next meeting was to be truly momentous but neither the British or French knew in advance. At the end of June 1939 the Poles, knowing through Enigma and other intelligence that Germany was preparing to invade Poland, invited the British and the French to Warsaw for a meeting. Thus it was in late July 1939 Alastair Denniston, Head of Bletchley Park and Dilly Knox, Britain's leading cryptographer and their principal expert on Enigma travelled across Nazi Germany by train to Poland. The French were represented by Gustav Bertrand, Denniston's opposite number and his deputy, Henri Braquenie. The Poles sent their trio of Rejewski, Rozycki and Zygalski together with their boss, Maksymilian Ciezki.

On the day following their arrival they were driven to the Poles' secret intelligence HQ at Pyry on the outskirts of Warsaw. To the amazement of the French and British the Poles announced almost immediately that they had broken Enigma some years earlier. The Poles showed them a variety of devices which they used to help determine each day's Enigma settings. Discussions continued next day as the Poles revealed more of their methods for breaking the code. However, without doubt, the highpoint was the offer by the Poles to donate to both the French and the British one of their precious working replica Enigma machines. The two machines left Poland by diplomatic bag for Paris and so, probably unnoticed by fellow travellers, Stewart Menzies, the Deputy Head of the British Secret Intelligence Service greeted Gustav Bertrand, the Head of the French Codebreakers as he arrived at Victoria Station in August 1939 with a large wooden box containing the priceless Enigma machine donated to the British.

At this point Alan Turing enters the story. He had been working part time on the Enigma problem at Cambridge since 1938 but had not made much progress. Following the Pyry meeting, Knox had shared with Turing all the information that the Poles had provided, including their mechanical devices for finding the key of the day. Very rapidly Turing conceived of an electro-mechanical machine to search for feasible solutions for the rotor starting positions based on a technique of guessing what the often stylised clear text of the German Enigma message might be. This specification for a machine was handed to BTM, the UK's leading punched card equipment manufacturer who were closely tied to IBM based in the USA, to turn into a physical reality.

A clear and full account of what became known as the Turing Welchman Bombe and how it was used is given in [START_REF] Turing | Demystifying the Bombe by Dermot Turing[END_REF].

After the Polish invasion

On September 1 st 1939 Germany invaded Poland and by the end of the month Polish resistance had collapsed. Poland was divided into three with large parts being assimilated by Germany in the west and the Soviet Union in the east with a small central area under the control of the Polish General Government. The Poles had planned for an invasion and destroyed evidence of their Enigma codebreaking work. It was vital that the codebreakers got away and so travelling by train and lorry they fled to Romania where they went first to the British Embassy who did not appreciate their significance and asked them to return the following day after the staff had contacted London. However, if they had been caught by the Romanian secret police they would probably be handed over to the Gestapo. Consequently, the Poles moved on immediately to the French Embassy who recognised their links with the French Secret Service and assisted them to reach France where they were met at the border by a representative sent by Gustav Bertrand. Knox and Denniston were not amused to find that the French had now got all the key Polish Enigma experts.

There followed a period of cooperation between Bletchley Park and the French codebreakers now established in the Chateau de Vignolles near Paris. The two groups were linked by a secure landline and from early 1940 there were daily races to find the Enigma key of the day. However, this period was not to last long. Early in May 1940 the German Army attacked the French and British forces in the West and on June 25 th an armistice was signed between Germany and France. This divided France into two main areas -Occupied France in the north and "Free France" in the south with its government based in the small spa town of Vichy. From there, the Vichy government ran both Vichy France and also the whole of the worldwide French colonial empire.

In the anticipation that there might be an underground resistance movement within Vichy France, the armistice permitted the Vichy government to maintain a small codebreaking capability to track them down although they were expressly forbidden from intercepting German messages. Bertrand's group, including the Poles, moved to form this group now relocated to a small chateau outside Uzes near Nimes in southern France. The group now continued to intercept message traffic including German Enigma messages. Intelligence obtained, depending on its contents, could be passed to the Vichy authorities or to other groups. Bertrand's group built up a network of links across north Africa and Portugal supplying intelligence directly and through intermediaries to the British as well as De Gaulle's Free French and the Polish Government in exile in London and received equipment, finance and other benefits in exchange.

Assorted codebreakers travelled between the chateau at Uzes and north Africa to meet with other units working there. One of these trips ended in disaster when in January 1942 Jerzy Rozycki was drowned, when the ship on which travelling back to France from Algiers foundered in heavy seas with a substantial loss of life.

North Africa was in a very fluid state with many loose loyalties. In some places, such as Tangier, which had an international zone, officials as well as agents from many of the warring powers rubbed shoulders throughout the conflict. Fascinating insights into this period are to be found in [START_REF] Pidgeon | The Secret Communications War -The story of MI6 Communication 1939-1945 by Geoffrey Pidgeon[END_REF] which includes material on North Africa.

In November 1942, German and Italian forces took over Vichy France. The German authorities and their Vichy collaborators were closing in on the radio transmissions from the chateau. It was decided that the Poles should leave. The British concluded that the Poles were too numerous to be flown out. The other alternatives were to attempt an evacuation by sea, or overland via Switzerland or Spain. However the route into Switzerland was now effectively closed. Attempts to evacuate by sea proved too dangerous. Consequently in early January 1943 groups of Polish codebreakers began to travel across France towards the Pyrenees and the Spanish border. Marian Rejewski and Henryk Zygalski managed with some difficulty to cross the Spanish border together. In common with most undocumented entrants into Spain they were jailed by the Spanish authorities. However, as the German and Italian armies suffered reverses the attitude of the Spanish authorities softened. Finally, starting in April 1943 the prison camps were gradually emptied. Marian Rejewski and Henryk Zygalski were finally released and by stages travelled via Portugal and Gibraltar to the UK. Having regained their freedom they were once again part of the Polish armed forces. They were attached to a team based near Hemel Hempstead which worked on Russian codes for the remainder of the war.

When peace returned to Europe in May 1945, Marian Rejewski and Henryk Zygalski both faced a difficult choice, whether to return to Poland or to find a new home. Marian Rejewski had a wife and two small children in Poland and so he decided to return to his homeland. Returnees were often regarded with suspicion by the new communist authorities in Poland. Although his career as an accountant was interfered with by the authorities due to suspicions about his wartime work he survived to be honoured by Poland prior to his death in 1980 for his services to the defeat of Germany as the Polish political environment evolved. Henryk Zygalski in contrast had met a British girl during his wartime work in the UK. He became a British citizen and settled down to an academic career in the UK ultimately as a member of staff of the Mathematics Department of the University of Surrey. He remained in contact with Marian Rejewski until his death in 1978.

Celebration at WCC 2018

At the IFIP World Congress in Poznan in Poland IFIP WG 9.7 on the History of Computing held a stream on computing in eastern Europe. One of the most significant events of World War 2 was the breaking of the German Enigma codes. As noted earlier, the contribution of the British codebreakers has been widely described but the work of the Poles has been largely unacknowledged.

The Congress provided an opportunity to put right this omission. The day celebrated the work of three talented and heroic Polish mathematics students from the University of Poznan, Marian Rejewski, Jerzy Rozycki and Henryk Zygalski, who trained in Poznan to become codebreakers and whose work ultimately led to the significant shortening of World War 2. The event attracted significant media interest including TV and radio in both Poland and the UK. The event was also webcast and is currently available online [START_REF] Youtube | Enigma Live webcast -eight talked including talks Dermot Turing and Marek Grajek[END_REF].

Fig. 1 .

 1 Fig. 1. Three wheel Enigma machine

Fig. 2 .

 2 Fig. 2. Marian Rejevski, Jerzy Rozycki, Henryk Zygalski

The one day Bombe stream comprised three lectures and a Bombe Roadshow challenge under the title of "Enigma Live", The opening talk was by Sir John Dermot Turing who asked the question "Did Alan Turing see an Enigma machine at Bletchley Park?". The second two talks were by Prof Marek Grajek from Poland. He spoke on the work of the Polish Codebreakers and secondly the proposed Poznan Enigma Centre one of whose main aims will be to promote the interest of young people in cryptography and computing.

The Bombe Roadshow was a challenge to decode an Enigma message using the Turing Welchman Bombe in the UK. This is a fully authentic replica of the machine originally designed by Alan Turing, enhanced by Gordon Welchman and built by BTM. It is regularly demonstrated at The National Museum of Computing housed in Block H at Bletchley Park in the UK by the Bombe team of volunteers. The Bombe's function was to find feasible wheel positions which is a critical and time consuming procedure in finding the key of the day. This process is fully explained in [START_REF] Turing | Demystifying the Bombe by Dermot Turing[END_REF].

The plan for the event was to send, as an email attachment, an encrypted message with its clear equivalent (or "crib") followed by another encrypted message whose contents were unknown to the Bombe team. Due to a minor technical fault limiting the Bombe's operating speed it was necessary to send the crib message ahead of the event.

Otherwise the day ran to plan and a successful break was made in the early afternoon when the decrypted message was sent to Poznan from the UK.