"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
- Identifiers schema
- Common properties mixin
- Files mixin
- Provenance mixin
- Publications mixin
- Quantities mixin
- Relations mixin
- Resources mixin
- Social mixin
- Spatial properties mixin
- Study mixin
- Temporal properties mixin
- Versions mixin
Graph-oriented schema components
Development
ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME
- Roles schema
- Spatial schema
- Temporal schema
- Provenance schema
- Resources schema
- Publications schema
- Social schema
- Electronic distributions schema
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
- FLAT base schema
- Social schema
- Provenance schema
- Resources schema
- Study schema
- Files schema
- Publications schema
Related tools and specifications
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