Metadata Templates

March 15, 2017
Metadata Templates Working Group
Chapel Hill, NC
Rick Skarbez
iRODS Consortium



Metadata template use cases
- View and interact with AVUs in a user-friendly interface
- Require metadata attributes on iRODS objects
- Validate metadata elements
- Standardize metadata associated with iRODS objects
- Uniformly apply metadata to many objects simultaneously
- Provide rendering guidance to GUIs
Metadata templates enable users and curators to:


Metadata template JSON Schema
Available in white paper
- not reproduced here for space/readability
A Metadata Template contains the following properties:
- name
- type
- source
- destination
- description
- author
- version
- required
- elements


Metadata Template type
An enum indicating what type of Metadata Template this is
Currently, only FORM_BASED Metadata Templates are supported
We have discussed adding, for example, support for Templates derived from schema.org schema (SCHEMA_REF)


Metadata Template source
An enum indicating where the data to populate the Metadata Template will come from
Currently, the only supported source is USER
We have discussed adding, for example, the ability to populate a Metadata Template with output from an iRODS rule (RULE) or a combination of rule output and user input (MIXED)


Metadata Template destination
An enum indicating how the metadata will actually be stored on disk
Currently, the only supported destination is IRODS, indicating that the metadata will be stored as AVU triples in the iRODS catalog
We have discussed adding, for example, the ability to store metadata in an external Postgres database (POSTGRES), as is done in CyVerse


Metadata element JSON Schema
Available in white paper
- not reproduced here for space/readability
A Metadata Template contains the following properties:
- name
- i18nName
- description
- i18nDescription
- type
- source
- defaultValue
- validationStyle
- validationOptions
- required


Metadata Element validation style
An enum indicating how/if a metadata element will be validated
Supported validation styles are the following:
- DEFAULT
- IS
- IN_LIST
- IN_RANGE
- IN_RANGE_EXCLUSIVE
- REGEX
- FOLLOW_REF
- DO_NOT_VALIDATE


Metadata Element validation style
An enum indicating how/if a metadata element will be validated
Supported validation styles are the following:
- DEFAULT
- IS
- IN_LIST
- IN_RANGE
- IN_RANGE_EXCLUSIVE
- REGEX
- FOLLOW_REF
- DO_NOT_VALIDATE


Supported Metadata Element types
- RAW_STRING
- RAW_TEXT
- RAW_URL
- RAW_INT
- RAW_FLOAT
- RAW_BOOLEAN
- RAW_DATE
- RAW_TIME
- RAW_DATETIME
- REF_IRODS_QUERY
- REF_IRODS_CATALOG
- REF_URL
- LIST_STRING
- LIST_INT
- LIST_FLOAT


Components of the Metadata Template architecture
Parser
-
Generates MetadataTemplate POJOs from JSON and vice versa
Validator
-
Validates Metadata Templates and Elements
Resolver
-
Handles find/list/CRUD operations on template files
Exporter
-
Saves populated Metadata Templates to permanent metadata store


Metadata Templates + FormBot in use

Metadata Templates
By iRODS Consortium
Metadata Templates
- 2,037