Tempo is a framework for the definition, generation and execution of data processing procedures including filtering, qualitative and temporal abstractions. The overall architecture is build upon a specific data model and organized on pipelines of modules assembled according to a data processing meta-model. Each pipeline module conforms to well defined communication rules and wraps one or more data processing algorithms. The set of algorithms provided by default as reusable blocks can be extended with custom solutions through a plug-in mechanism. The data processing procedures can be delivered both as web-services and as software library.
Many application domains require the collection and processing of huge quantities of temporal data for different purposes. Examples include financial data analysis, scientific applications such as weather monitoring and, medical applications, like long term patients clinical monitoring and on-line biomedical signals acquisition systems, and so on. However, it is difficult to identify universal procedures for analyzing temporal data, since they can present very different characteristics. In general, temporal data are obtained as series of values drawn on irregular time grids, sometimes collected at times available at different granularities and affected by noise. Such great variability requires the adoption of techniques customized on the basis of the context and on the goals of the analysis. Frequently, in order to make the inspection and the processing of temporal information easy and efficient, it is useful to transform the raw data into series of patterns that summarize their temporal evolution. This kind of analysis is usually preliminary or complementary to the execution of different tasks like: visual data exploration, temporal data mining and summarization, temporal knowledge extraction and reasoning.
The Architecture
The Tempo architecture is build around the pipeline concept. A pipeline is a set of data processing elements, that we call blocks or modules, connected in series, so that the output of one element is the input of the next one. Tempo includes a library of reusable blocks that can be assembled to define processing pipelines customized on the application context. They provide some standard filtering algorithms and a set of mechanisms for the temporal patterns detection.
An Example
Let's say we want to detect severe tachycardia episodes with a minimum duration in an individual heart rate time series. According to the Tempo architecture and the available modules, we can compose the following pipeline:
Heart Rate (bpm) |
HR < 60 |
60 ≤ HR < 100 |
100 ≤ HR < 120 |
HR ≥ 120 |
Qualitative Label |
B (Bradycardia) |
N (Normal) |
T (Tachycardia) |
S (Severe Tachycardia) |
The first block transforms numeric values into qualitative ones according to the mapping (p1) reported in table 1. Figure 2 depicts the heart rate time series of an individual at rest (x) and the corresponding obtained qualitative values (y). The second module detects all episodes (z) of severe tachycardia through an appropriate set of parameters (p2). The last block filters episodes giving as output only the ones (z') with a duration of at least 5 minutes (p3). In case of a noisy time series, thanks to the pipeline architecture, a filtering block can be easily added as preprocessing step.
From Tempo to JDPF
Tempo was born as a working solution in the medical data processing field. A summary of it has been presented at the "First Workshop on Technologies for Healthcare & Healthy Lifestyle" in Valencia (Spain). The framework has been presented extensively at AMIA 2006 in Washington DC (USA). Tempo evolved into JDPF (Java Data Processing Framework) that bacame public on 1st December 2007 and is available open source in google code.
References
[1] Ciccarese Paolo, Larizza C. A Framework for Temporal Data Processing and Abstractions. AMIA (American Medical Informatics Association) 2006 Annual Symposium. Presented in Washington DC, USA on November 12, 2006 - PubMed
[2] Larizza C, Ciccarese Paolo. An Extensible Software Framework for Temporal Data Processing. IDAMAP (Intelligent Data Analysis in bioMedicine And Pharmacology) 2007. Presented in Amsterdam, Netherlands on July 8, 2007 - Proceedings
[3] Ciccarese Paolo, Larizza C. Framework for temporal data processing and abstractions. I Workshop on Technologies for Healthcare and Healthy Lifestyle. Presented in Valencia, Spain on April 6, 2006