datalad-metadata-model


Namedatalad-metadata-model JSON
Version 0.3.11 PyPI version JSON
download
home_pagehttps://github.com/christian-monch/metadata-model
SummaryDatalad Metadata Model
upload_time2023-10-09 23:21:36
maintainer
docs_urlNone
authorThe Datalad Team
requires_python>=3.7
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Build status](https://ci.appveyor.com/api/projects/status/tjkich0nqkjuotxb?svg=true)](https://ci.appveyor.com/project/mih/metadata-model)
[![codecov](https://codecov.io/gh/datalad/metadata-model/branch/main/graph/badge.svg?token=YBU774L1A7)](https://codecov.io/gh/datalad/metadata-model)
[![PyPI version](https://badge.fury.io/py/datalad-metadata-model.svg)](https://badge.fury.io/py/datalad-metadata-model)
![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/datalad/metadata-model?include_prereleases&label=github%20release&style=flat-square)

# Datalad Metadata Model

This software implements the metadata model that datalad and datalad-metalad 
(from version 0.3.0) use to store metadata.

#### Model Elements (the model layer)
The metadata model is defined by the API of the top-level
classes. Those are:

- `MetadataRootRecord` -- holds top-level metadata information for a single
version of a datalad dataset

- `UUIDSet` -- holds metadata root records for a set of datasets that are
 identified by their UUIDs and their version.

- `TreeVersionList` -- holds metadata root records and a sub-dataset tree for a
dataset version and its sub-datasets

- `Metadata` -- represents metadata for a single item, i.e. dataset or file.
Metadata is associated with extractor names and extraction parameters.

- `DatasetTree` -- a representation of the sub-dataset hierarchy of a dataset

- `FileTree` -- a representation of the file-tree of a dataset

- ... 

Because of the large size of some datalad-datasets, e.g. tens of thousands of
sub-datasets and hundres of millions of files, the implementation allows
focus-based operations on individual parts of the potentially very large 
metadata model. The implementation uses the proxy-pattern, that means, it
 loads, modifies, and saves only the minimal necessary model elements that are
 necessary to operate on the metadata-information that
 the user is interested in.

#### Storage layer

The model elements have to be persisted on a storage backend.
 How the model is mapped on storage backends is defined by the
storage layer, that is to a large degree independent of the model layer. 
The intention is to support multiple storage backends in the past.

Currently, only one storage backend is supported:

- `git-mapping` -- a storage backend that stores a metadata model in a
git repository. The model objects are stored outside of existing branches.
They are referenced by `datalad`-specific git-references under `refs/datalad/*`


## Acknowledgements

This DataLad extension was developed with support from the German Federal Ministry of Education and Research (BMBF 01GQ1905), and the US National Science Foundation (NSF 1912266).


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/christian-monch/metadata-model",
    "name": "datalad-metadata-model",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "The Datalad Team",
    "author_email": "christian.moench@web.de",
    "download_url": "https://files.pythonhosted.org/packages/1a/00/74e4a9efa33645dfb896d2a762bb2d131c97015187a7d7568bb21576b77e/datalad-metadata-model-0.3.11.tar.gz",
    "platform": null,
    "description": "[![Build status](https://ci.appveyor.com/api/projects/status/tjkich0nqkjuotxb?svg=true)](https://ci.appveyor.com/project/mih/metadata-model)\n[![codecov](https://codecov.io/gh/datalad/metadata-model/branch/main/graph/badge.svg?token=YBU774L1A7)](https://codecov.io/gh/datalad/metadata-model)\n[![PyPI version](https://badge.fury.io/py/datalad-metadata-model.svg)](https://badge.fury.io/py/datalad-metadata-model)\n![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/datalad/metadata-model?include_prereleases&label=github%20release&style=flat-square)\n\n# Datalad Metadata Model\n\nThis software implements the metadata model that datalad and datalad-metalad \n(from version 0.3.0) use to store metadata.\n\n#### Model Elements (the model layer)\nThe metadata model is defined by the API of the top-level\nclasses. Those are:\n\n- `MetadataRootRecord` -- holds top-level metadata information for a single\nversion of a datalad dataset\n\n- `UUIDSet` -- holds metadata root records for a set of datasets that are\n identified by their UUIDs and their version.\n\n- `TreeVersionList` -- holds metadata root records and a sub-dataset tree for a\ndataset version and its sub-datasets\n\n- `Metadata` -- represents metadata for a single item, i.e. dataset or file.\nMetadata is associated with extractor names and extraction parameters.\n\n- `DatasetTree` -- a representation of the sub-dataset hierarchy of a dataset\n\n- `FileTree` -- a representation of the file-tree of a dataset\n\n- ... \n\nBecause of the large size of some datalad-datasets, e.g. tens of thousands of\nsub-datasets and hundres of millions of files, the implementation allows\nfocus-based operations on individual parts of the potentially very large \nmetadata model. The implementation uses the proxy-pattern, that means, it\n loads, modifies, and saves only the minimal necessary model elements that are\n necessary to operate on the metadata-information that\n the user is interested in.\n\n#### Storage layer\n\nThe model elements have to be persisted on a storage backend.\n How the model is mapped on storage backends is defined by the\nstorage layer, that is to a large degree independent of the model layer. \nThe intention is to support multiple storage backends in the past.\n\nCurrently, only one storage backend is supported:\n\n- `git-mapping` -- a storage backend that stores a metadata model in a\ngit repository. The model objects are stored outside of existing branches.\nThey are referenced by `datalad`-specific git-references under `refs/datalad/*`\n\n\n## Acknowledgements\n\nThis DataLad extension was developed with support from the German Federal Ministry of Education and Research (BMBF 01GQ1905), and the US National Science Foundation (NSF 1912266).\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Datalad Metadata Model",
    "version": "0.3.11",
    "project_urls": {
        "Homepage": "https://github.com/christian-monch/metadata-model"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba6bd67f36f90effd0729cba9bec8d7f47f1c1484fa87614a6f8a274720cb946",
                "md5": "82c5a1e007d9140480dee7e4d5cc0ada",
                "sha256": "c9e9b4a1d0c57e4bc57cd6c73335fda4f4c57ece7e193031784ab64f7fff57b9"
            },
            "downloads": -1,
            "filename": "datalad_metadata_model-0.3.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "82c5a1e007d9140480dee7e4d5cc0ada",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 80005,
            "upload_time": "2023-10-09T23:21:34",
            "upload_time_iso_8601": "2023-10-09T23:21:34.920628Z",
            "url": "https://files.pythonhosted.org/packages/ba/6b/d67f36f90effd0729cba9bec8d7f47f1c1484fa87614a6f8a274720cb946/datalad_metadata_model-0.3.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1a0074e4a9efa33645dfb896d2a762bb2d131c97015187a7d7568bb21576b77e",
                "md5": "e8c850c64fe9f7de6f1c9901de194239",
                "sha256": "95a113bb0eb5a27bf61b4a0ea6111f7cb01d707c0eba98359d9b8b87fcb078b4"
            },
            "downloads": -1,
            "filename": "datalad-metadata-model-0.3.11.tar.gz",
            "has_sig": false,
            "md5_digest": "e8c850c64fe9f7de6f1c9901de194239",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 69004,
            "upload_time": "2023-10-09T23:21:36",
            "upload_time_iso_8601": "2023-10-09T23:21:36.261264Z",
            "url": "https://files.pythonhosted.org/packages/1a/00/74e4a9efa33645dfb896d2a762bb2d131c97015187a7d7568bb21576b77e/datalad-metadata-model-0.3.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-09 23:21:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "christian-monch",
    "github_project": "metadata-model",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "appveyor": true,
    "requirements": [],
    "lcname": "datalad-metadata-model"
}
        
Elapsed time: 0.13127s