Skip to content

"Low-tech" metadata schemas

For many use cases metadata concepts are complex. Producing and consuming such metadata involves sophisticated tooling, which implies a considerable technical threshold for adopting metadata-focused workflows.

The schemas provided here aim to lower this threshold with an approach to expressing rich and semantically precise metadata in relatively simple data structures -- data structures that can be reasonably read from files and processed in scripts with loops and conditionals, rather than requiring databases and specific query languages implemented in targeted libraries.

All schemas are implemented in LinkML, connecting to a rich ecosystem for data modeling, validation, and transformation. LinkML bridges between the worlds of structured data in plain text files, relational databases and knowledge graphs if and when needed, so metadata workflows can stay as simple as possible.

Foundational schema components

The sources for all schemas are on GitHub.

Latest releases

  • Things (v1): foundational schema to describe any "thing"
  • Types (v1): basic types and schema building blocks

Development

ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME

Graph-oriented schema components

Development

ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME

Flexible Low-complexity Annotation Technique (FLAT) schema components

While these schemas typically provide the same concepts as their graph-oriented counterparts, they nevertheless differ substantially. Where the graph-oriented schemas aim for maximum expressiveness, these FLAT schemas aim for being maximally lean and orthogonal with respect to other FLAT schema components. This is achieved by reducing the included slots to bare necessities, and by avoiding class inheritance from other (even closely related) concepts. As a result, the FLAT schemas are most suitable for mix-and-match composition of schemas geared towards (meta)data submission systems and form generation. They minimizes the required cognitive complexity for providing complete records in a particular context, by avoiding the forced inclusion of meaningful, but undesired concepts and relationships. This simplification typically comes with the need to further subclass and extend these base concepts for any given application context.

ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME

Knowledge base/graph dump specification

This specification is a companion of the Things schema and its derivatives and extensions. It defines a data structure for dumping arbitrarily complex information, expressed in these data models, in a version-controllable fashion directly on a file-system.

Storage API implementation: dump-things-service

This Python software package provides an HTTP-based API to store and retrieve metadata records. It supports authenticated access to multi-schema, multi-collection API endpoints with built-in validation. The API is fully auto-generated based on a schema built from the schema components available on this site Among the support storage back-ends is plain file-system storage compliant with the dump-things specification .

Check out dump-things-service on PyPI

SHACL-based form generation and metadata editing

This is a VueJS-based browser tool that enabled client-side retrieval, editing, and submitting of metadata records. It auto-builds a customizable UI from SHACL and OWL specifications, such as those provided for the schemas available on this site. Records are consumed and submitted in [Terse RDF Triple Language (Turtle)](https://en.wikipedia.org/wiki/Turtle_(syntax) (supported by, for example, dump-things-service API endpoint).

Check out shacl-vue on GitHub