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

allow links between dataset types and metadata blocks #11001

Open
wants to merge 10 commits into
base: develop
Choose a base branch
from

Conversation

pdurbin
Copy link
Member

@pdurbin pdurbin commented Nov 4, 2024

What this PR does / why we need it:

This pull request builds on the first pull request for dataset types, bringing us closer to the proposal in the parent issue.

For the APIs used by the new Dataverse UI ( https://github.com/IQSS/dataverse-frontend ):

  • The list of fields shown when creating a dataset will include fields marked as "displayoncreate" (in the tsv/database) for metadata blocks (e.g. "CodeMeta") that are linked to the dataset type (e.g. "software") that is passed to the API.
  • The metadata blocks shown when editing a dataset will include metadata blocks (e.g. "CodeMeta") that are linked to the dataset type (e.g. "software") that is passed to the API.

Which issue(s) this PR closes:

Special notes for your reviewer:

  • I haven't had a chance to look at the Criteria API yet. I could probably use some help getting up to speed.
  • What should we do about the tests in MetadataBlocksIT that fail if you add additional metadata blocks?

Suggestions on how to test this:

Try the documented APIs.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:

No, but the idea is that some day the SPA might show the ability to choose between types when creating a dataset (as discussed in Slack), like these examples:

Screenshot 2024-09-12 at 11 57 48 AM
image

Is there a release notes update needed for this change?:

Yes, included.

Additional documentation:

Included. See these pages:

@coveralls
Copy link

coveralls commented Nov 5, 2024

Coverage Status

coverage: 21.206% (-0.02%) from 21.224%
when pulling 5afad8e on 10519-dataset-types
into 6a00ce5 on develop.

This comment has been minimized.

@GPortas GPortas self-assigned this Nov 5, 2024
@GPortas
Copy link
Contributor

GPortas commented Nov 5, 2024

I just moved this back to in progress to work on JPA criteria queries. @pdurbin

@pdurbin pdurbin self-assigned this Nov 5, 2024
@GPortas GPortas assigned pdurbin and unassigned pdurbin and GPortas Nov 5, 2024
@cmbz cmbz added the FY25 Sprint 9 FY25 Sprint 9 (2024-10-23 - 2024-11-06) label Nov 5, 2024

This comment has been minimized.

@pdurbin pdurbin removed their assignment Nov 5, 2024
@pdurbin pdurbin added Type: Feature a feature request Size: 3 A percentage of a sprint. 2.1 hours. GREI 6 Connect Digital Objects Requested SPA Improvement Desired improvement for SPA, do not duplicate JSF UI GREI Year 3 Year 3 GREI task FY25 Sprint 8 FY25 Sprint 8 (2024-10-09 - 2024-10-23) labels Nov 5, 2024

This comment has been minimized.

1 similar comment

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

.body("data[1].name", is("codeMeta20"))
.body("data[2].name", nullValue())
.body("data[0].fields.title.displayOnCreate", equalTo(true))
.body("data[1].fields.codeVersion.displayOnCreate", equalTo(true));
Copy link
Member Author

Choose a reason for hiding this comment

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

@GPortas thank you so much with the Criteria API help in b6fb92b!

Unfortunately, this line is now failing with this:

[ERROR] Failures: 
[ERROR]   DatasetTypesIT.testLinkSoftwareToCodemeta:463 1 expectation failed.
JSON path data[1].fields.codeVersion.displayOnCreate doesn't match.
Expected: <true>
  Actual: null

(I'm now on 4f77a3b where I enabled this test and I'm running it with mvn test -Dtest=DatasetTypesIT#testLinkSoftwareToCodemeta.)

Here's the output showing that "codeVersion" is no longer present:

listing root collection blocks with display on create using dataset type software
{
    "status": "OK",
    "data": [
        {
            "id": 1,
            "name": "citation",
            "displayName": "Citation Metadata",
            "displayOnCreate": true,
            "fields": {
                "title": {
                    "name": "title",
                    "displayName": "Title",
                    "displayOnCreate": true,
                    "title": "Title",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "The main title of the Dataset",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 0,
                    "isRequired": true
                },
                "author": {
                    "name": "author",
                    "displayName": "Author",
                    "displayOnCreate": true,
                    "title": "Author",
                    "type": "NONE",
                    "typeClass": "compound",
                    "watermark": "",
                    "description": "The entity, e.g. a person or organization, that created the Dataset",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 7,
                    "isRequired": true,
                    "childFields": {
                        "authorName": {
                            "name": "authorName",
                            "displayName": "Author Name",
                            "displayOnCreate": true,
                            "title": "Name",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "1) Family Name, Given Name or 2) Organization XYZ",
                            "description": "The name of the author, such as the person's name or the name of an organization",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 8,
                            "isRequired": true
                        },
                        "authorAffiliation": {
                            "name": "authorAffiliation",
                            "displayName": "Author Affiliation",
                            "displayOnCreate": true,
                            "title": "Affiliation",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "Organization XYZ",
                            "description": "The name of the entity affiliated with the author, e.g. an organization's name",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "(#VALUE)",
                            "displayOrder": 9,
                            "isRequired": false
                        },
                        "authorIdentifierScheme": {
                            "name": "authorIdentifierScheme",
                            "displayName": "Author Identifier Type",
                            "displayOnCreate": true,
                            "title": "Identifier Type",
                            "type": "TEXT",
                            "typeClass": "controlledVocabulary",
                            "watermark": "",
                            "description": "The type of identifier that uniquely identifies the author (e.g. ORCID, ISNI)",
                            "multiple": false,
                            "isControlledVocabulary": true,
                            "displayFormat": "- #VALUE:",
                            "displayOrder": 10,
                            "isRequired": false,
                            "controlledVocabularyValues": [
                                "ORCID",
                                "ISNI",
                                "LCNA",
                                "VIAF",
                                "GND",
                                "DAI",
                                "ResearcherID",
                                "ScopusID"
                            ]
                        },
                        "authorIdentifier": {
                            "name": "authorIdentifier",
                            "displayName": "Author Identifier",
                            "displayOnCreate": true,
                            "title": "Identifier",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "",
                            "description": "Uniquely identifies the author when paired with an identifier type",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 11,
                            "isRequired": false
                        }
                    }
                },
                "authorName": {
                    "name": "authorName",
                    "displayName": "Author Name",
                    "displayOnCreate": true,
                    "title": "Name",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "1) Family Name, Given Name or 2) Organization XYZ",
                    "description": "The name of the author, such as the person's name or the name of an organization",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 8,
                    "isRequired": true
                },
                "authorAffiliation": {
                    "name": "authorAffiliation",
                    "displayName": "Author Affiliation",
                    "displayOnCreate": true,
                    "title": "Affiliation",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "Organization XYZ",
                    "description": "The name of the entity affiliated with the author, e.g. an organization's name",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "(#VALUE)",
                    "displayOrder": 9,
                    "isRequired": false
                },
                "authorIdentifierScheme": {
                    "name": "authorIdentifierScheme",
                    "displayName": "Author Identifier Type",
                    "displayOnCreate": true,
                    "title": "Identifier Type",
                    "type": "TEXT",
                    "typeClass": "controlledVocabulary",
                    "watermark": "",
                    "description": "The type of identifier that uniquely identifies the author (e.g. ORCID, ISNI)",
                    "multiple": false,
                    "isControlledVocabulary": true,
                    "displayFormat": "- #VALUE:",
                    "displayOrder": 10,
                    "isRequired": false,
                    "controlledVocabularyValues": [
                        "ORCID",
                        "ISNI",
                        "LCNA",
                        "VIAF",
                        "GND",
                        "DAI",
                        "ResearcherID",
                        "ScopusID"
                    ]
                },
                "authorIdentifier": {
                    "name": "authorIdentifier",
                    "displayName": "Author Identifier",
                    "displayOnCreate": true,
                    "title": "Identifier",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "Uniquely identifies the author when paired with an identifier type",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 11,
                    "isRequired": false
                },
                "datasetContact": {
                    "name": "datasetContact",
                    "displayName": "Point of Contact",
                    "displayOnCreate": true,
                    "title": "Point of Contact",
                    "type": "NONE",
                    "typeClass": "compound",
                    "watermark": "",
                    "description": "The entity, e.g. a person or organization, that users of the Dataset can contact with questions",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 12,
                    "isRequired": true,
                    "childFields": {
                        "datasetContactName": {
                            "name": "datasetContactName",
                            "displayName": "Point of Contact Name",
                            "displayOnCreate": true,
                            "title": "Name",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "1) FamilyName, GivenName or 2) Organization",
                            "description": "The name of the point of contact, e.g. the person's name or the name of an organization",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 13,
                            "isRequired": false
                        },
                        "datasetContactAffiliation": {
                            "name": "datasetContactAffiliation",
                            "displayName": "Point of Contact Affiliation",
                            "displayOnCreate": true,
                            "title": "Affiliation",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "Organization XYZ",
                            "description": "The name of the entity affiliated with the point of contact, e.g. an organization's name",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "(#VALUE)",
                            "displayOrder": 14,
                            "isRequired": false
                        },
                        "datasetContactEmail": {
                            "name": "datasetContactEmail",
                            "displayName": "Point of Contact E-mail",
                            "displayOnCreate": true,
                            "title": "E-mail",
                            "type": "EMAIL",
                            "typeClass": "primitive",
                            "watermark": "[email protected]",
                            "description": "The point of contact's email address",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#EMAIL",
                            "displayOrder": 15,
                            "isRequired": true
                        }
                    }
                },
                "datasetContactName": {
                    "name": "datasetContactName",
                    "displayName": "Point of Contact Name",
                    "displayOnCreate": true,
                    "title": "Name",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "1) FamilyName, GivenName or 2) Organization",
                    "description": "The name of the point of contact, e.g. the person's name or the name of an organization",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 13,
                    "isRequired": false
                },
                "datasetContactAffiliation": {
                    "name": "datasetContactAffiliation",
                    "displayName": "Point of Contact Affiliation",
                    "displayOnCreate": true,
                    "title": "Affiliation",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "Organization XYZ",
                    "description": "The name of the entity affiliated with the point of contact, e.g. an organization's name",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "(#VALUE)",
                    "displayOrder": 14,
                    "isRequired": false
                },
                "datasetContactEmail": {
                    "name": "datasetContactEmail",
                    "displayName": "Point of Contact E-mail",
                    "displayOnCreate": true,
                    "title": "E-mail",
                    "type": "EMAIL",
                    "typeClass": "primitive",
                    "watermark": "[email protected]",
                    "description": "The point of contact's email address",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#EMAIL",
                    "displayOrder": 15,
                    "isRequired": true
                },
                "dsDescription": {
                    "name": "dsDescription",
                    "displayName": "Description",
                    "displayOnCreate": true,
                    "title": "Description",
                    "type": "NONE",
                    "typeClass": "compound",
                    "watermark": "",
                    "description": "A summary describing the purpose, nature, and scope of the Dataset",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 16,
                    "isRequired": true,
                    "childFields": {
                        "dsDescriptionValue": {
                            "name": "dsDescriptionValue",
                            "displayName": "Description Text",
                            "displayOnCreate": true,
                            "title": "Text",
                            "type": "TEXTBOX",
                            "typeClass": "primitive",
                            "watermark": "",
                            "description": "A summary describing the purpose, nature, and scope of the Dataset",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 17,
                            "isRequired": true
                        },
                        "dsDescriptionDate": {
                            "name": "dsDescriptionDate",
                            "displayName": "Description Date",
                            "displayOnCreate": true,
                            "title": "Date",
                            "type": "DATE",
                            "typeClass": "primitive",
                            "watermark": "YYYY-MM-DD",
                            "description": "The date when the description was added to the Dataset. If the Dataset contains more than one description, e.g. the data producer supplied one description and the data repository supplied another, this date is used to distinguish between the descriptions",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "(#VALUE)",
                            "displayOrder": 18,
                            "isRequired": false
                        }
                    }
                },
                "dsDescriptionValue": {
                    "name": "dsDescriptionValue",
                    "displayName": "Description Text",
                    "displayOnCreate": true,
                    "title": "Text",
                    "type": "TEXTBOX",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "A summary describing the purpose, nature, and scope of the Dataset",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 17,
                    "isRequired": true
                },
                "dsDescriptionDate": {
                    "name": "dsDescriptionDate",
                    "displayName": "Description Date",
                    "displayOnCreate": true,
                    "title": "Date",
                    "type": "DATE",
                    "typeClass": "primitive",
                    "watermark": "YYYY-MM-DD",
                    "description": "The date when the description was added to the Dataset. If the Dataset contains more than one description, e.g. the data producer supplied one description and the data repository supplied another, this date is used to distinguish between the descriptions",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "(#VALUE)",
                    "displayOrder": 18,
                    "isRequired": false
                },
                "subject": {
                    "name": "subject",
                    "displayName": "Subject",
                    "displayOnCreate": true,
                    "title": "Subject",
                    "type": "TEXT",
                    "typeClass": "controlledVocabulary",
                    "watermark": "",
                    "description": "The area of study relevant to the Dataset",
                    "multiple": true,
                    "isControlledVocabulary": true,
                    "displayFormat": "",
                    "displayOrder": 19,
                    "isRequired": true,
                    "controlledVocabularyValues": [
                        "Agricultural Sciences",
                        "Arts and Humanities",
                        "Astronomy and Astrophysics",
                        "Business and Management",
                        "Chemistry",
                        "Computer and Information Science",
                        "Earth and Environmental Sciences",
                        "Engineering",
                        "Law",
                        "Mathematical Sciences",
                        "Medicine, Health and Life Sciences",
                        "Physics",
                        "Social Sciences",
                        "Other"
                    ]
                },
                "keyword": {
                    "name": "keyword",
                    "displayName": "Keyword",
                    "displayOnCreate": true,
                    "title": "Keyword",
                    "type": "NONE",
                    "typeClass": "compound",
                    "watermark": "",
                    "description": "A key term that describes an important aspect of the Dataset and information about any controlled vocabulary used",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 20,
                    "isRequired": false,
                    "childFields": {
                        "keywordValue": {
                            "name": "keywordValue",
                            "displayName": "Keyword Term",
                            "displayOnCreate": true,
                            "title": "Term",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "",
                            "description": "A key term that describes important aspects of the Dataset",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 21,
                            "isRequired": false
                        },
                        "keywordTermURI": {
                            "name": "keywordTermURI",
                            "displayName": "Keyword Term URI",
                            "displayOnCreate": true,
                            "title": "Term URI",
                            "type": "URL",
                            "typeClass": "primitive",
                            "watermark": "https://",
                            "description": "A URI that points to the web presence of the Keyword Term",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                            "displayOrder": 22,
                            "isRequired": false
                        },
                        "keywordVocabulary": {
                            "name": "keywordVocabulary",
                            "displayName": "Keyword Controlled Vocabulary Name",
                            "displayOnCreate": true,
                            "title": "Controlled Vocabulary Name",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "",
                            "description": "The controlled vocabulary used for the keyword term (e.g. LCSH, MeSH)",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "(#VALUE)",
                            "displayOrder": 23,
                            "isRequired": false
                        },
                        "keywordVocabularyURI": {
                            "name": "keywordVocabularyURI",
                            "displayName": "Keyword Controlled Vocabulary URL",
                            "displayOnCreate": true,
                            "title": "Controlled Vocabulary URL",
                            "type": "URL",
                            "typeClass": "primitive",
                            "watermark": "https://",
                            "description": "The URL where one can access information about the term's controlled vocabulary",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                            "displayOrder": 24,
                            "isRequired": false
                        }
                    }
                },
                "keywordValue": {
                    "name": "keywordValue",
                    "displayName": "Keyword Term",
                    "displayOnCreate": true,
                    "title": "Term",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "A key term that describes important aspects of the Dataset",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 21,
                    "isRequired": false
                },
                "keywordTermURI": {
                    "name": "keywordTermURI",
                    "displayName": "Keyword Term URI",
                    "displayOnCreate": true,
                    "title": "Term URI",
                    "type": "URL",
                    "typeClass": "primitive",
                    "watermark": "https://",
                    "description": "A URI that points to the web presence of the Keyword Term",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                    "displayOrder": 22,
                    "isRequired": false
                },
                "keywordVocabulary": {
                    "name": "keywordVocabulary",
                    "displayName": "Keyword Controlled Vocabulary Name",
                    "displayOnCreate": true,
                    "title": "Controlled Vocabulary Name",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "The controlled vocabulary used for the keyword term (e.g. LCSH, MeSH)",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "(#VALUE)",
                    "displayOrder": 23,
                    "isRequired": false
                },
                "keywordVocabularyURI": {
                    "name": "keywordVocabularyURI",
                    "displayName": "Keyword Controlled Vocabulary URL",
                    "displayOnCreate": true,
                    "title": "Controlled Vocabulary URL",
                    "type": "URL",
                    "typeClass": "primitive",
                    "watermark": "https://",
                    "description": "The URL where one can access information about the term's controlled vocabulary",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                    "displayOrder": 24,
                    "isRequired": false
                },
                "publication": {
                    "name": "publication",
                    "displayName": "Related Publication",
                    "displayOnCreate": true,
                    "title": "Related Publication",
                    "type": "NONE",
                    "typeClass": "compound",
                    "watermark": "",
                    "description": "The article or report that uses the data in the Dataset. The full list of related publications will be displayed on the metadata tab",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 29,
                    "isRequired": false,
                    "childFields": {
                        "publicationRelationType": {
                            "name": "publicationRelationType",
                            "displayName": "Related Publication Relation Type",
                            "displayOnCreate": true,
                            "title": "Relation Type",
                            "type": "TEXT",
                            "typeClass": "controlledVocabulary",
                            "watermark": "",
                            "description": "The nature of the relationship between this Dataset and the related publication",
                            "multiple": false,
                            "isControlledVocabulary": true,
                            "displayFormat": "#VALUE:",
                            "displayOrder": 30,
                            "isRequired": false,
                            "controlledVocabularyValues": [
                                "IsCitedBy",
                                "Cites",
                                "IsSupplementTo",
                                "IsSupplementedBy",
                                "IsReferencedBy",
                                "References"
                            ]
                        },
                        "publicationCitation": {
                            "name": "publicationCitation",
                            "displayName": "Related Publication Citation",
                            "displayOnCreate": true,
                            "title": "Citation",
                            "type": "TEXTBOX",
                            "typeClass": "primitive",
                            "watermark": "",
                            "description": "The full bibliographic citation for the related publication",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 31,
                            "isRequired": false
                        },
                        "publicationIDType": {
                            "name": "publicationIDType",
                            "displayName": "Related Publication Identifier Type",
                            "displayOnCreate": true,
                            "title": "Identifier Type",
                            "type": "TEXT",
                            "typeClass": "controlledVocabulary",
                            "watermark": "",
                            "description": "The type of identifier that uniquely identifies a related publication",
                            "multiple": false,
                            "isControlledVocabulary": true,
                            "displayFormat": "#VALUE: ",
                            "displayOrder": 32,
                            "isRequired": false,
                            "controlledVocabularyValues": [
                                "ark",
                                "arXiv",
                                "bibcode",
                                "cstr",
                                "doi",
                                "ean13",
                                "eissn",
                                "handle",
                                "isbn",
                                "issn",
                                "istc",
                                "lissn",
                                "lsid",
                                "pmid",
                                "purl",
                                "upc",
                                "url",
                                "urn",
                                "DASH-NRS"
                            ]
                        },
                        "publicationIDNumber": {
                            "name": "publicationIDNumber",
                            "displayName": "Related Publication Identifier",
                            "displayOnCreate": true,
                            "title": "Identifier",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "",
                            "description": "The identifier for a related publication",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 33,
                            "isRequired": false
                        },
                        "publicationURL": {
                            "name": "publicationURL",
                            "displayName": "Related Publication URL",
                            "displayOnCreate": true,
                            "title": "URL",
                            "type": "URL",
                            "typeClass": "primitive",
                            "watermark": "https://",
                            "description": "The URL form of the identifier entered in the Identifier field, e.g. the DOI URL if a DOI was entered in the Identifier field. Used to display what was entered in the ID Type and ID Number fields as a link. If what was entered in the Identifier field has no URL form, the URL of the publication webpage is used, e.g. a journal article webpage",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                            "displayOrder": 34,
                            "isRequired": false
                        }
                    }
                },
                "publicationRelationType": {
                    "name": "publicationRelationType",
                    "displayName": "Related Publication Relation Type",
                    "displayOnCreate": true,
                    "title": "Relation Type",
                    "type": "TEXT",
                    "typeClass": "controlledVocabulary",
                    "watermark": "",
                    "description": "The nature of the relationship between this Dataset and the related publication",
                    "multiple": false,
                    "isControlledVocabulary": true,
                    "displayFormat": "#VALUE:",
                    "displayOrder": 30,
                    "isRequired": false,
                    "controlledVocabularyValues": [
                        "IsCitedBy",
                        "Cites",
                        "IsSupplementTo",
                        "IsSupplementedBy",
                        "IsReferencedBy",
                        "References"
                    ]
                },
                "publicationCitation": {
                    "name": "publicationCitation",
                    "displayName": "Related Publication Citation",
                    "displayOnCreate": true,
                    "title": "Citation",
                    "type": "TEXTBOX",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "The full bibliographic citation for the related publication",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 31,
                    "isRequired": false
                },
                "publicationIDType": {
                    "name": "publicationIDType",
                    "displayName": "Related Publication Identifier Type",
                    "displayOnCreate": true,
                    "title": "Identifier Type",
                    "type": "TEXT",
                    "typeClass": "controlledVocabulary",
                    "watermark": "",
                    "description": "The type of identifier that uniquely identifies a related publication",
                    "multiple": false,
                    "isControlledVocabulary": true,
                    "displayFormat": "#VALUE: ",
                    "displayOrder": 32,
                    "isRequired": false,
                    "controlledVocabularyValues": [
                        "ark",
                        "arXiv",
                        "bibcode",
                        "cstr",
                        "doi",
                        "ean13",
                        "eissn",
                        "handle",
                        "isbn",
                        "issn",
                        "istc",
                        "lissn",
                        "lsid",
                        "pmid",
                        "purl",
                        "upc",
                        "url",
                        "urn",
                        "DASH-NRS"
                    ]
                },
                "publicationIDNumber": {
                    "name": "publicationIDNumber",
                    "displayName": "Related Publication Identifier",
                    "displayOnCreate": true,
                    "title": "Identifier",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "The identifier for a related publication",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 33,
                    "isRequired": false
                },
                "publicationURL": {
                    "name": "publicationURL",
                    "displayName": "Related Publication URL",
                    "displayOnCreate": true,
                    "title": "URL",
                    "type": "URL",
                    "typeClass": "primitive",
                    "watermark": "https://",
                    "description": "The URL form of the identifier entered in the Identifier field, e.g. the DOI URL if a DOI was entered in the Identifier field. Used to display what was entered in the ID Type and ID Number fields as a link. If what was entered in the Identifier field has no URL form, the URL of the publication webpage is used, e.g. a journal article webpage",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                    "displayOrder": 34,
                    "isRequired": false
                },
                "notesText": {
                    "name": "notesText",
                    "displayName": "Notes",
                    "displayOnCreate": true,
                    "title": "Notes",
                    "type": "TEXTBOX",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "Additional information about the Dataset",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 35,
                    "isRequired": false
                },
                "depositor": {
                    "name": "depositor",
                    "displayName": "Depositor",
                    "displayOnCreate": true,
                    "title": "Depositor",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "1) FamilyName, GivenName or 2) Organization",
                    "description": "The entity, such as a person or organization, that deposited the Dataset in the repository",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 58,
                    "isRequired": false
                },
                "dateOfDeposit": {
                    "name": "dateOfDeposit",
                    "displayName": "Deposit Date",
                    "displayOnCreate": true,
                    "title": "Deposit Date",
                    "type": "DATE",
                    "typeClass": "primitive",
                    "watermark": "YYYY-MM-DD",
                    "description": "The date when the Dataset was deposited into the repository",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 59,
                    "isRequired": false
                }
            }
        },
        {
            "id": 7,
            "name": "codeMeta20",
            "displayName": "Software Metadata (CodeMeta v2.0)",
            "displayOnCreate": true,
            "fields": {
                "softwareRequirements": {
                    "name": "softwareRequirements",
                    "displayName": "Software Requirements Name & Version",
                    "displayOnCreate": true,
                    "title": "Name & Version",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "e.g. Pandas 1.4.3",
                    "description": "Name and version of the required software/library dependency",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 0,
                    "isRequired": false
                },
                "softwareRequirementsInfoUrl": {
                    "name": "softwareRequirementsInfoUrl",
                    "displayName": "Software Requirements Info URL",
                    "displayOnCreate": true,
                    "title": "Info URL",
                    "type": "URL",
                    "typeClass": "primitive",
                    "watermark": "e.g. https://pandas.pydata.org/pandas-docs/version/1.4.3",
                    "description": "Link to required software/library homepage or documentation (ideally also versioned)",
                    "multiple": false,
                    "isControlledVocabulary": false,
                    "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                    "displayOrder": 1,
                    "isRequired": false
                },
                "codeRepository": {
                    "name": "codeRepository",
                    "displayName": "Code Repository",
                    "displayOnCreate": true,
                    "title": "Code Repository",
                    "type": "URL",
                    "typeClass": "primitive",
                    "watermark": "e.g. https://github.com/user/project",
                    "description": "Link to the repository where the un-compiled, human-readable code and related code is located (SVN, GitHub, CodePlex, institutional GitLab instance, Gitea, etc.).",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                    "displayOrder": 2,
                    "isRequired": false
                },
                "applicationCategory": {
                    "name": "applicationCategory",
                    "displayName": "Application Category",
                    "displayOnCreate": true,
                    "title": "Application Category",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "Type of software application, e.g. Simulation, Analysis, Visualisation.",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 3,
                    "isRequired": false
                },
                "programmingLanguage": {
                    "name": "programmingLanguage",
                    "displayName": "Programming Language",
                    "displayOnCreate": true,
                    "title": "Programming Language",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "The programming language(s) used to implement the software (e.g. Python, C++, Matlab, Fortran, Java, Julia,...)",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 5,
                    "isRequired": false
                },
                "operatingSystem": {
                    "name": "operatingSystem",
                    "displayName": "Operating Systems",
                    "displayOnCreate": true,
                    "title": "Operating Systems",
                    "type": "TEXT",
                    "typeClass": "primitive",
                    "watermark": "",
                    "description": "Operating systems supported (e.g. Windows 10, OSX 11.3, Android 11).",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "#VALUE",
                    "displayOrder": 7,
                    "isRequired": false
                },
                "softwareRequirementsItem": {
                    "name": "softwareRequirementsItem",
                    "displayName": "Software Requirements",
                    "displayOnCreate": true,
                    "title": "Software Requirements",
                    "type": "NONE",
                    "typeClass": "compound",
                    "watermark": "",
                    "description": "Required software dependencies",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "",
                    "displayOrder": 10,
                    "isRequired": false,
                    "childFields": {
                        "softwareRequirements": {
                            "name": "softwareRequirements",
                            "displayName": "Software Requirements Name & Version",
                            "displayOnCreate": true,
                            "title": "Name & Version",
                            "type": "TEXT",
                            "typeClass": "primitive",
                            "watermark": "e.g. Pandas 1.4.3",
                            "description": "Name and version of the required software/library dependency",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "#VALUE",
                            "displayOrder": 0,
                            "isRequired": false
                        },
                        "softwareRequirementsInfoUrl": {
                            "name": "softwareRequirementsInfoUrl",
                            "displayName": "Software Requirements Info URL",
                            "displayOnCreate": true,
                            "title": "Info URL",
                            "type": "URL",
                            "typeClass": "primitive",
                            "watermark": "e.g. https://pandas.pydata.org/pandas-docs/version/1.4.3",
                            "description": "Link to required software/library homepage or documentation (ideally also versioned)",
                            "multiple": false,
                            "isControlledVocabulary": false,
                            "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                            "displayOrder": 1,
                            "isRequired": false
                        }
                    }
                },
                "softwareHelp": {
                    "name": "softwareHelp",
                    "displayName": "Software Help/Documentation",
                    "displayOnCreate": true,
                    "title": "Software Help/Documentation",
                    "type": "URL",
                    "typeClass": "primitive",
                    "watermark": "e.g. https://user.github.io/project/docs",
                    "description": "Link to help texts or documentation",
                    "multiple": true,
                    "isControlledVocabulary": false,
                    "displayFormat": "<a href=\"#VALUE\" target=\"_blank\" rel=\"noopener\">#VALUE</a>",
                    "displayOrder": 16,
                    "isRequired": false
                }
            }
        }
    ]
}

Any advice is welcome! Thanks!

This comment has been minimized.

@cmbz cmbz added the FY25 Sprint 10 FY25 Sprint 10 (2024-11-06 - 2024-11-20) label Nov 7, 2024

This comment has been minimized.

1 similar comment
Copy link

github-actions bot commented Nov 8, 2024

📦 Pushed preview images as

ghcr.io/gdcc/dataverse:10519-dataset-types
ghcr.io/gdcc/configbaker:10519-dataset-types

🚢 See on GHCR. Use by referencing with full name as printed above, mind the registry name.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FY25 Sprint 8 FY25 Sprint 8 (2024-10-09 - 2024-10-23) FY25 Sprint 9 FY25 Sprint 9 (2024-10-23 - 2024-11-06) FY25 Sprint 10 FY25 Sprint 10 (2024-11-06 - 2024-11-20) GREI Year 3 Year 3 GREI task GREI 6 Connect Digital Objects Requested SPA Improvement Desired improvement for SPA, do not duplicate JSF UI Size: 3 A percentage of a sprint. 2.1 hours. Type: Feature a feature request
Projects
Status: Ready for Review ⏩
Development

Successfully merging this pull request may close these issues.

Implement datasetType metadata block support (at global level)
4 participants