Table of Contents
Fetching ...

CPSLint: A Domain-Specific Language Providing Data Validation and Sanitisation for Industrial Cyber-Physical Systems

Uraz Odyurt, Ömer Sayilir, Mariëlle Stoelinga, Vadim Zaytsev

TL;DR

CPSLint presents a domain-specific language tailored for preparing industrial CPS time-series data by validating, sanitising, and imputing missing values, while provisioning phase-based data compartmentalisation to support ML-driven fault detection workflows. Implemented on the Rascal language workbench, CPSLint transforms high-level specifications into executable Python code that uses libraries like pandas and scipy to clean raw machine traces. The approach enables non-programmers and domain experts to define robust preprocessing pipelines with reusable, configurable remedies, reducing ad hoc data cleaning and improving data quality for downstream analytics. The work demonstrates CPSLint on a die-bonder style industrial use-case, and discusses its advantages, related tooling, and plans for real-world deployment and extension to more data types and domain units.

Abstract

Raw datasets are often too large and unstructured to work with directly, and require a data preparation process. The domain of industrial Cyber-Physical Systems (CPS) is no exception, as raw data typically consists of large amounts of time-series data logging the system's status in regular time intervals. Such data has to be sanity checked and preprocessed to be consumable by data-centric workflows. We introduce CPSLint, a Domain-Specific Language designed to provide data preparation for industrial CPS. We build up on the fact that many raw data collections in the CPS domain require similar actions to render them suitable for Machine-Learning (ML) solutions, e.g., Fault Detection and Identification (FDI) workflows, yet still vary enough to hope for one universally applicable solution. CPSLint's main features include type checking and enforcing constraints through validation and remediation for data columns, such as imputing missing data from surrounding rows. More advanced features cover inference of extra CPS-specific data structures, both column-wise and row-wise. For instance, as row-wise structures, descriptive execution phases are an effective method of data compartmentalisation are extracted and prepared for ML-assisted FDI workflows. We demonstrate CPSLint's features through a proof of concept implementation.

CPSLint: A Domain-Specific Language Providing Data Validation and Sanitisation for Industrial Cyber-Physical Systems

TL;DR

CPSLint presents a domain-specific language tailored for preparing industrial CPS time-series data by validating, sanitising, and imputing missing values, while provisioning phase-based data compartmentalisation to support ML-driven fault detection workflows. Implemented on the Rascal language workbench, CPSLint transforms high-level specifications into executable Python code that uses libraries like pandas and scipy to clean raw machine traces. The approach enables non-programmers and domain experts to define robust preprocessing pipelines with reusable, configurable remedies, reducing ad hoc data cleaning and improving data quality for downstream analytics. The work demonstrates CPSLint on a die-bonder style industrial use-case, and discusses its advantages, related tooling, and plans for real-world deployment and extension to more data types and domain units.

Abstract

Raw datasets are often too large and unstructured to work with directly, and require a data preparation process. The domain of industrial Cyber-Physical Systems (CPS) is no exception, as raw data typically consists of large amounts of time-series data logging the system's status in regular time intervals. Such data has to be sanity checked and preprocessed to be consumable by data-centric workflows. We introduce CPSLint, a Domain-Specific Language designed to provide data preparation for industrial CPS. We build up on the fact that many raw data collections in the CPS domain require similar actions to render them suitable for Machine-Learning (ML) solutions, e.g., Fault Detection and Identification (FDI) workflows, yet still vary enough to hope for one universally applicable solution. CPSLint's main features include type checking and enforcing constraints through validation and remediation for data columns, such as imputing missing data from surrounding rows. More advanced features cover inference of extra CPS-specific data structures, both column-wise and row-wise. For instance, as row-wise structures, descriptive execution phases are an effective method of data compartmentalisation are extracted and prepared for ML-assisted FDI workflows. We demonstrate CPSLint's features through a proof of concept implementation.
Paper Structure (20 sections, 3 figures, 1 table)

This paper contains 20 sections, 3 figures, 1 table.

Figures (3)

  • Figure 1: An example CPS machine cycle, involving action steps (in grey) and inspection steps (in orange).
  • Figure 2: Different data compartmentalisation granularities within an execution timeline, visualising repeated phase types during consecutive rounds of tasks/sub-tasks, plus the phases considered for an experimental platform processing consecutive image data.
  • Figure 3: A tombstone diagram of CPSLint: The flow of activities from left to right, with inspection and inferring of the data structure happening on the right side, followed by Python code generation to deliver the executable code operating on the actual machine trace. The role of a domain expert overseeing the inferred CPSLint specification is emphasised.