A simple server to store graphs
  • Python 99.6%
  • Shell 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christian Monch 300b827280
All checks were successful
Codespell / Check for spelling errors (push) Successful in 26s
Ruff / Code linting (push) Successful in 36s
Test execution / Test-all (push) Successful in 1m9s
chore: update changelog
2026-07-29 12:29:00 +02:00
.forgejo/workflows ci: add workflow to check typing in files changed in a given PR 2026-06-30 20:18:42 +02:00
artwork add the haul-truck logo 2026-06-19 11:07:51 +02:00
docs fix: fix author string 2026-07-29 10:37:40 +02:00
dump_things_service chore: clean up imports test_basic.py 2026-07-29 10:58:03 +02:00
tools remove patching command from pyproject.toml 2025-06-24 12:46:20 +02:00
.gitignore chore: switch to VCS-based version identifier generation 2026-06-30 19:44:47 +02:00
.gitmodules remove datalad-concepts submodule 2025-06-24 12:43:39 +02:00
.readthedocs.yaml chore: ready for readthedocs-based doc builds 2026-06-30 21:04:59 +02:00
CHANGELOG.md chore: update changelog 2026-07-29 12:29:00 +02:00
LICENSE add MIT license 2026-06-12 12:41:54 +02:00
pyproject.toml doc: update documentation url in pypi 2026-07-29 12:22:04 +02:00
README.md update README and readthedocs project name 2026-07-16 09:21:33 +02:00
WHAT_IS_IT.md use "inbox" instead of "incoming" in what-is-it 2026-03-20 11:34:15 +01:00

Dump Things Service

PyPI version fury.io

This is an implementation of a Dump Things Service (DTS). The Dump Things Service is a central component of a self-hostable research information infrastructure, which contains tools to collect, organize, validate, visualize, and serve structured research (meta)data.

It provides a REST API for storing and retrieving records that are structured according to a schema (defined in LinkML). The service supports multiple storage backends, flexible authentication sources, and a curation workflow for distributed data acquisition.

It is complemented by a client library and command line tool, which provide convenient access to the service from Python code and the shell dump-things-pyclient.

Dump Things Service serves as backend for shacl-vue, a generic graphical metadata acquisition tool.

For more information on the service, see the documentation.

Overview of the service architecture

Data is stored in collections. Each collection has a name and an associated schema. All data records in the collection have to adhere to the given schema.

The canonical format for schemas is LinkML. The service supports schemas that are based on Datalad's Thing schema, i.e. on https://concepts.datalad.org/s/things/v1/. It assumes that the classes of stored records are subclasses of Thing, and inherit the properties pid and schema_type from the Thing-baseclass.

The general workflow in the service is as follows. We distinguish between two areas of a collection, an incoming area (aka inbox) and a curated area. Data written to a collection is stored in a collection-specific incoming area. A curation process, which is outside the scope of the service, moves data from the incoming area of a collection to the curated area of the collection.

Acknowledgements

This work was funded, in part, by

  • Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant TRR 379 (546006540, Q02 project)

  • MKW-NRW: Ministerium für Kultur und Wissenschaft des Landes Nordrhein-Westfalen under the Kooperationsplattformen 2022 program, grant number: KP22-106A