A computer program has been written to facilitate real-time sifting of scientific data as they are acquired to find data patterns deemed to warrant further analysis. The patterns in question are of a type denoted array patterns, which are specified by nested parenthetical expressions. [One example of an array pattern is ((>3) 0 (≠1)): this pattern matches a vector of at least three elements, the first of which exceeds 3, the second of which is 0, and the third of which does not equal 1.] This program accepts a high-level description of a static array pattern and compiles a highly optimal and compact other program to determine whether any given instance of any data array matches that pattern. The compiler implemented by this program is independent of the target language, so that as new languages are used to write code that processes scientific data, they can easily be adapted to this compiler. This program runs on a variety of different computing platforms. It must be run in conjunction with any one of a number of Lisp compilers that are available commercially or as shareware.
This program was written by Mark James of Caltech for NASA's Jet Propulsion Laboratory. For further information, access the Technical Support Package (TSP) free online at www.techbriefs.com/tsp under the Software category.
This software is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (626) 395- 2322. Refer to NPO-42096.
This Brief includes a Technical Support Package (TSP).

Array-Pattern-Match Compiler for Opportunistic Data Analysis
(reference NPO-42096) is currently available for download from the TSP library.
Don't have an account?
Overview
The document titled "Array Pattern Match Compiler for Opportunistic Mission Science Data Analysis" (NTR-42096) from NASA's Jet Propulsion Laboratory (JPL) discusses a software solution designed to enhance the analysis of data collected during autonomous science missions. As these missions venture deeper into space, they often encounter unexpected data that can lead to significant scientific discoveries. The challenge lies in efficiently identifying and analyzing this serendipitous data in real-time.
The core functionality of the software is a compiler that takes a high-level description of a static array pattern and compiles it into a highly optimized and compact program. This program serves as a predicate to determine if incoming data matches the specified pattern. The design of the compiler is independent of the target programming language, allowing it to adapt easily as new languages are adopted for flight code. This flexibility ensures that code written using this paradigm does not require rewriting when the underlying language changes.
The software is applicable to a wide range of science-gathering programs, both manned and unmanned, due to its domain-independent algorithms. It has been successfully utilized for storing Deep Space Network (DSN) science data and for representing sensor data in Integrated Vehicle Health Management (IVHM) systems. The compiler's ability to produce efficient code makes it valuable for various applications across different platforms, including SUN, HP, Intel, Apple MACs, and flight processors.
The document also notes that the software has no specific memory requirements, as it integrates into the environment that calls it. It is implemented as a library package and has been in active use for over three years, including operations at JPL's Goldstone facility. The software is part of the Common Automation Engine (CAE) developed for the DSN.
For further inquiries, the document provides contact information for key personnel involved in the project, including Leslie Paal and Ed Baroth, who can offer additional insights into the software's applications and usefulness.
Overall, this document highlights a significant advancement in data analysis for space missions, emphasizing the importance of real-time processing and adaptability in the face of unexpected scientific opportunities.

