CLAMS App Metadata

Overview

Every CLAMS app must provide information about the app itself. We call this set of information App Metadata.

Format

A CLAMS App Metadata should be able to be serialized into a JSON string.

Metadata Schema

The schema for app metadata is as follows. (You can also download the schema in JSON Schema format from here.)

CLAMS AppMetadata

Defines a data model that describes a CLAMS app. Can be initialized by simply passing all required key-value pairs. If you have a pre-generated metadata as an external file, you can read in the file as a dict and use it as keyword arguments for initialization.

Please refer to <CLAMS App Metadata> for the metadata specification.

type

object

properties

  • name

A short name of the app.

type

string

  • description

A longer description of the app (what it does, how to use, etc.).

type

string

  • app_version

Version of the app.

type

string

  • mmif_version

Version of MMIF specification the app. When the metadata is generated using clams-python SDK, this field is automatically filled in.

type

string

  • analyzer_version

(optional) Version of an analyzer software, if the app is working as a wrapper for one.

type

string

  • app_license

License information of the app.

type

string

  • analyzer_license

(optional) License information of an analyzer software, if the app is working as a wrapper for one.

type

string

  • identifier

IRI-formatted unique identifier for the app.

type

string

maxLength

65536

minLength

1

format

uri

  • url

A public repository where the app’s source code (git-based) and/or installation specification is available.

type

string

maxLength

65536

minLength

1

format

uri

  • input

List of input types. Must have at least one.

type

array

default

items

#/definitions/Input

  • output

List of output types. Must have at least one.

type

array

default

items

#/definitions/Output

  • parameters

List of runtime parameters. Can be empty.

type

array

default

items

#/definitions/RuntimeParameter

  • dependencies

(optional) List of software dependencies of the app. This list is completely optional, as in most cases such dependencies are specified in a separate file in the codebase of the app (for example, requirements.txt file for a Python app, or pom.xml file for a maven-based Java app). List elements must be strings, not any kind of structured data. Thus, it is recommended to include a package name and its version in the string value at the minimum (e.g., clams-python==1.2.3).

type

array

items

type

string

  • more

(optional) A string-to-string map that can be used to store any additional metadata of the app.

type

object

additionalProperties

type

string

additionalProperties

False

definitions

  • Input

CLAMS Input Specification

Defines a data model that describes input specification of a CLAMS app

type

object

properties

  • @type

The type of the object. Must be a IRI string.

type

string

maxLength

65536

minLength

1

format

uri

  • properties

(optional) Specification for type properties, if any.

type

object

default

additionalProperties

type

string

  • required

(optional) Indicating whether this input type is mandatory or optional.

type

boolean

additionalProperties

False

  • Output

CLAMS Output Specification

Defines a data model that describes output specification of a CLAMS app

type

object

properties

  • @type

The type of the object. Must be a IRI string.

type

string

maxLength

65536

minLength

1

format

uri

  • properties

(optional) Specification for type properties, if any.

type

object

default

additionalProperties

type

string

additionalProperties

False

  • RuntimeParameter

CLAMS App Runtime Parameter

Defines a data model that describes a single runtime configuration of a CLAMS app. Usually, an app keeps a list of these configuration specifications in the parameters field.

type

object

properties

  • name

A short name of the parameter (works as a key).

type

string

  • description

A longer description of the parameter (what it does, how to use, etc.).

type

string

  • type

Type of the parameter value the app expects. Must be one of (‘integer’, ‘number’, ‘string’, ‘boolean’).

type

string

enum

integer, number, string, boolean

  • choices

(optional) List of string values that can be accepted.

type

array

items

anyOf

type

integer

type

number

type

string

  • default

(optional) Default value for the parameter. Only valid for optional parameters. Namely, setting a default value makes a parameter ‘optional’. The value must be a string, that is if you want to set a default value for a boolean parameter, be careful to use ‘true’ or ‘false’ as the value.

anyOf

type

integer

type

number

type

string

additionalProperties

False