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.
