Manifest Specification draft for FAIR 

Containerized Computational Software 

(FAIR-CCS)

Mylene Simon

Software Engineer & WIPP Lead Developer

Prometheus Computing LLC

National Institute of Standards and Technology (NIST)

2nd International Workshop on FAIR Containerized Computational Software - December 5, 2023
Presentation outline

● Context: the Web Image Processing Pipelines (WIPP) project 

and plugin manifest

● FAIR-CCS manifest

○ General overview

○ Metadata/General information section

○ Inputs and outputs section

○ User Interface (UI) section

○ Resource requirements section
Lowering barriers for accessing, processing and exploring 

large-scale digital image collections - Key challenges

Big Data Management

● Data sharing and dissemination

○ In the past, hard drives exchanges between users and teams, desktop solutions

○ Need for scalable and interactive visualizations

● Computational scalability

○ Memory-consuming complex algorithms applied to Tera-Byte-sized datasets

○ Limitation of desktop machines, Use of cluster or cloud resources for advanced users

Heterogeneity in Image Processing software and algorithms

● Algorithms come from many libraries and programming languages

● Hardware and OS requirements for installation and execution

● Learning curve for end-user

● How to chain algorithms into complex workflows?

Traceability of data and software-based measurements

● How to link a value to specific dataset, software, algorithm, formula, parameters?

● Managing versions of software/algorithm

FAIR software, DevOps and productivity

● How to make computational tools/software Findable, Accessible, Interoperable and Reusable?

● How to decouple computational tools from execution platforms and facilitate their development, maintenance, 

integration and deployment?
Current solutions using FAIR-CCS at NIST: 

WIPP Platform, Plugins, and Plugin Registry
FAIR-CCS manifest draft

FAIR-CCS manifest: manifest describing inputs, 

outputs, requirements, UI and general 

information about a containerized 

computational software

● Documentation and links to examples:

○ https://github.com/usnistgov/fair-chain-compute-cont

ainer

● Online plugin manifest generation and 

validation tool:

○ https://usnistgov.github.io/WIPP-Plugin-Mani

fest-generator/

● FAIR-CCS Manifest JSON schema

○ Draft JSON schema available at 

https://github.com/usnistgov/fair-chain-compute-cont

ainer/blob/master/schema/manifest.schema.json

5

5

Information about the 

software:

- name, version, 

description

- Docker image to use

Inputs description

- name, type, description

Outputs description

- name, type, description

UI description

- additional information 

to display on the form

FAIR-CCS manifest (JSON file)

Resource requirements

- optional 

resource/hardware 

requirements
FAIR-CCS manifest: general information

General information about the 

containerized software

Required: name, version, title, description, 

containerId

Optional: institution, repository, website, 

citation, baseCommand

6
FAIR-CCS manifest: inputs section

Description of inputs

Required properties:

 “name”, “type”, “description”

Optional properties:

“required”, “options”

Supported data types: 

"collection” (collection of Images), 

"stitchingVector” (MIST format), 

"pyramid” (DeepZoom format),

"tensorflowModel” (AI model), 

"csvCollection” (collection of CSV files), 

“genericData” (other data),

"notebook” (Jupyter notebook), 

"string", "number", "integer", "enum", "array", "boolean"

7
FAIR-CCS manifest: outputs section

Description of outputs

Required properties: 

“name”, “type”, “description”

Supported data types:

"collection” (collection of Images), 

"stitchingVector” (MIST format), 

"pyramid” (DeepZoomWeb format), 

"tensorflowModel” (AI model), 

“tensorboardLogs” (logs for Tensorboard visualization), 

"csvCollection” (collection of CSV images), 

“genericData” (other data)

8
FAIR-CCS manifest: UI section

Description of UI 

One UI description per input

“key”: inputs.inputName (required)

“title”: input field label in form (required)

“description”: placeholder for string input field (optional)

Advanced options not shown here (conditional visibility, binds between fields, etc.)

9
FAIR-CCS manifest: UI section

Description of UI 

Example of more advanced UI options 

(conditional visibility and fieldsets)

10

Conditional visibility of fields

Fieldsets
FAIR-CCS manifest: Resource requirements section

Resource/hardware requirements

Optional

“ramMin”: minimum RAM in Mebibytes (Mi)

“coresMin”: minimum number of CPU cores

“cpuAVX”: Advanced Vector Extensions (AVX) CPU 

capability required

“cpuAVX2”: Advanced Vector Extensions (AVX) CPU 

capability required

“gpu”: GPU/accelerator required

“cudaRequirements”: GPU Cuda-related requirements

“deviceMemoryMin”: minimum device memory

“cudaComputeCapabilities”: single minimum value or 

array of valid values for required compute capability

11
FAIR-CCS Github repository:

https://github.com/usnistgov/fair-chain-compute-container

Questions?

wipp-team@nist.gov