Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dandi-schema readme edit #152

Merged
merged 5 commits into from
Dec 9, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 22 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,34 @@
A Python library for maintaining and managing DANDI metadata schemata. The
library helps create and validate DANDI schema-compliant metadata for Dandisets
and assets.
# DANDI Schema

To use: `pip install dandischema`
`dandi-schema` is a Python library for maintaining and managing DANDI metadata schemata.

Every Dandiset and associated asset has a metadata object that can be retrieved using
the DANDI API.
## Installation

This library uses [Pydantic](https://github.com/samuelcolvin/pydantic) to implement
`pip install dandischema`

## Description

Every `Dandiset` and associated asset has a metadata object that can be retrieved using
the DANDI API. This library helps create and validate DANDI schema-compliant metadata for `Dandisets`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the DANDI API. This library helps create and validate DANDI schema-compliant metadata for `Dandisets`
the DANDI API. This library helps create and validate DANDI schema-compliant metadata for Dandisets

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we formatted "Dandisets" consistently that way throughout the handbook, using the code element, so I was following suit

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then I agree that, for consistency, it should be formatted as a code element.

But on a broader level, I don't think that is the right choice. Can you point me to the style policy/discussion where this decision was made?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there was never any discussion or decision made, it had been consistently styled that way before I came on board so I followed that set standard; in hindsight I agree it's not a great idea to use the code element as way to emphasize a term that isn't code! we have an entry in the stylesheet for spelling the term with an initial cap, we can revisit and decide whether to also universally remove the code formatting

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's make the decision now to remove the code element from the term "Dandiset". Can you update the stylesheet, @melster1010?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@waxlamp sure - I'll have to update the stylesheet, remove the special formatting from "Dandiset" in the Handbook files, as well as this readme (as separate PR)

and assets. It uses [Pydantic](https://github.com/samuelcolvin/pydantic) to implement
all the metadata classes. Schemas are generated on schema modifications and placed into
[this repository](https://github.com/dandi/schema/tree/master/releases).

Dandischema generates JSON schema definitions and also an associated `context.json`
`dandi-schema` generates JSON schema definitions and also an associated `context.json`
file for JSON-LD compliance of the metadata models.

- models.py - contains the models and any changes should be made there
Important files in this repository include:
- models.py - contains the models
- metadata.py - contains functions for validating, migrating, and aggregating metadata
- datacite.py - converts the Dandiset metadata to a Datacite metadata structure
- datacite.py - converts the `Dandiset` metadata to a Datacite metadata structure

The generated JSON schemas can be used together with
[VJSF](https://koumoul-dev.github.io/vuetify-jsonschema-form/latest/) to create a UI
for metadata modification. The DANDI Web app uses this for Dandiset metadata modification.
for metadata modification. The DANDI Web app uses this to modify `Dandiset` metadata.

## Resources

* To learn how to interact with the DANDI archive,
see [the handbook](https://www.dandiarchive.org/handbook/).
* To file a feature request or bug report, go to https://github.com/dandi/helpdesk/issues/new/choose.
* For all other issues, contact the DANDI team: help@dandiarchive.org.