diff --git a/config/schemas/main/BackupPolicy-schema.json b/config/schemas/main/BackupPolicy-schema.json new file mode 100644 index 0000000..06bf707 --- /dev/null +++ b/config/schemas/main/BackupPolicy-schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Backup policy schema", + "description": "Schema of backup policy documentation", + "type":"object", + "properties":{ + "description":{ + "label": "Description", + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + }, + "backupFrequency":{ + "label": "Backup frequency", + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + }, + + "backupType":{ + "label": "Backup type", + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + } + }, + "required": ["description"] + } \ No newline at end of file diff --git a/config/schemas/main/ControlledKeyword-schema.json b/config/schemas/main/ControlledKeyword-schema.json new file mode 100644 index 0000000..0ac791c --- /dev/null +++ b/config/schemas/main/ControlledKeyword-schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/Json/", + "title": "Controlled keyword", + "description": "Controlled keyword schema", + "type":"object", + "properties": { + "keyword":{ + "label": "Keyword", + "type":"string", + "example":"Mathematical model" + }, + "keywordSchema":{ + "label": "Keyword Schema", + "type":"string", + "example":"EDAM" + }, + "keywordUrl":{ + "label": "Keyword URL", + "type":"string", + "format":"uri", + "example":"http://edamontology.org/data_0950" + } + + }, + "required":["keyword", "keywordUrl"] + +} + + \ No newline at end of file diff --git a/config/schemas/main/Cost-schema.json b/config/schemas/main/Cost-schema.json new file mode 100644 index 0000000..4e752f6 --- /dev/null +++ b/config/schemas/main/Cost-schema.json @@ -0,0 +1,37 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/Json/", + "title": "Cost", + "description": "Cost schema", + "type":"object", + "properties": { + "title":{ + "label": "Title", + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + }, + "description":{ + "label": "Description", + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + }, + "costType": { + "label": "Cost type", + "type": "string", + "format": "select", + "values": ["Human resource", "Training", "Software","Hardware", "other"] + }, + "costValue":{ + "label": "Cost value", + "type": "object", + "classname": "cost_value", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "required": ["title", "costValue", "costType"] +} \ No newline at end of file diff --git a/config/schemas/main/CostValue-schema.json b/config/schemas/main/CostValue-schema.json new file mode 100644 index 0000000..c143e31 --- /dev/null +++ b/config/schemas/main/CostValue-schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/Json/", + + "title": "Cost value", + "description": "Cost value schema", + "type":"object", + "properties":{ + "amount":{ + "label": "Amount", + "type":"number" + }, + "currency":{ + "label": "Currency", + "type": "string", + "format": "select", + "values": ["EUR", "USD", "GBP"] + } + }, + "required":["amount","currency"] + } diff --git a/config/schemas/main/DMP-schema.json b/config/schemas/main/DMP-schema.json new file mode 100644 index 0000000..882c2b3 --- /dev/null +++ b/config/schemas/main/DMP-schema.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "DMP", + "description": "Schema describing a DMP", + "type": "object", + "properties": { + "identifier": { + "type": "number", + "description": "internal identifier" + }, + "meta": { + "type": "object", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": [ + "dbid" + ] + }, + "project": { + "type": "object", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": [ + "dbid" + ] + }, + "researchOutput": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dbid": { + "type": "number" + } + } + } + } + }, + "required": [ + "meta", + "researchOutput", + "project" + ] +} \ No newline at end of file diff --git a/config/schemas/main/DataCollection-schema.json b/config/schemas/main/DataCollection-schema.json new file mode 100644 index 0000000..8a2f485 --- /dev/null +++ b/config/schemas/main/DataCollection-schema.json @@ -0,0 +1,78 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/Json/", + "title": "Data collection", + "description": "Data collection schema", + "type": "object", + "properties": { + "title": { + "label": "Title", + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "description": "Title for a data collection (step)" + }, + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "description": "description of the data collection methodology" + }, + "dataNature": { + "label": "Data Nature", + "type": "string", + "format": "select", + "values": ["Observation", "Experimental data", "Simulation", "Model", "other"] + }, + "acquisition": { + "label": "Acquisition", + "type": "object", + "description": "Internal identifier pointing to a technicalResourceUsage JSON document", + "classname": "technical_resource_usage", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "methodsUrl": { + "label": "Methods URL", + "type": "string", + "format": "uri", + "description": "Urls of methods" + }, + "staffMember": { + "label": "Staff Member", + "type": "array", + "items": { + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "cost": { + "label": "Cost", + "type": "array", + "items": { + "type": "object", + "classname": "cost", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + + }, + "required": [ + "description", + "dataNature" + ] +} \ No newline at end of file diff --git a/config/schemas/main/DataCollection-template.json b/config/schemas/main/DataCollection-template.json new file mode 100644 index 0000000..f6d547c --- /dev/null +++ b/config/schemas/main/DataCollection-template.json @@ -0,0 +1,98 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/template_model/Json/", + "title": "Data collection", + "description@en_UK": "Describe the methods and resources used to collect data", + "description@fr_FR": "Décrire les méthodes et ressources utilisées pour la collecte des données", + "type": "object", + "properties": { + "title": { + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "label@en_UK": "Title of this data collection step", + "label@fr_FR": "Intitulé de cette étape de collecte" + }, + "description": { + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "toolTip:fr_FR": "Description of the data collection methodology", + "toolTip:en_UK": "Description de la méthodologie de collecte des données", + "inputType": "text_area", + "label@en_UK": "Description", + "labe@fr_FR": "Description" + }, + "dataNature": { + "type":"string", + "enum": {"$ref": "Enumerations/DataNature.json"}, + "inputType": "dropdown", + "label@en_UK": "Data nature", + "label@fr_FR": "Nature des données", + "toolTip:en_UK": "Select or add a term precising the nature of data", + "toolTip:fr_FR": "Sélectionnez ou saisissez un terme précisant la nature des données", + "example@en_UK": "Modelization", + "example@fr_FR": "Modélisation", + "default@fr_FR": "Données expérimentales", + "default@en_UK":"Experimental data" + }, + "acquisition":{ + "description@fr_FR": "Si une ressource extérieure est utilisée, choisissez le formulaire correspondant afin de préciser vos besoins", + "description@en_UK":" If one external facility has ben used, choose if available the relevant form and describe your needs ", + "type": "object", + "properties":{ + "$ref":"TechnicalResourceUsage-schema.json" + } + }, + "methodsUrl": { + "type": "array", + "items":{ + "type": "string", + "format": "uri", + "label@en_Uk":"Method url", + "label@fr_FR":"Url de la méthode", + "toolTip@fr_FR": "Url de la méthode ou protocole utilisé", + "toolTip@en_UK": "Url of the method or protocol that has been used" + } + }, + "staffMember": { + "description@fr_FR": "Citez les personnes ayant contribué à la collecte des données et indiquer leur rôle", + "description@en_UK" : "Cite persons who have contributed to the collect of data", + "type": "array", + "items": { + "type":"object", + "properties":{ + "person": { + "type": "object", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": [ + "dbid" + ] + }, + "role":{ + "type":"string", + "enum":{ + "$ref":"Enumerations/Role" + }, + "inputType":"dropdown", + "default@en_UK": "Research engineer", + "default@fr_FR": "Ingénieur de recherche" + } + } + } + }, + "cost": { + "description@fr_FR":"Decrivez les coûts liés la collecte des données", + "description@en_UK":"Describe expenses related to the collect of data", + "type": "array", + "items": {"$ref": "Cost-schema.json"} + } + + }, + "required": [ + "description", + "dataNature" + ] +} \ No newline at end of file diff --git a/config/schemas/main/DataOrganization-schema.json b/config/schemas/main/DataOrganization-schema.json new file mode 100644 index 0000000..a3c4f8a --- /dev/null +++ b/config/schemas/main/DataOrganization-schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Data organization", + "description": "Schema to describe data organization issues", + "type": "object", + "properties": { + "title": { + "label": "Title", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "documentUrl": { + "label": "Document URL", + "type": "string", + "format": "uri" + } + }, + "required": [ + "title", + "description" + ] +} \ No newline at end of file diff --git a/config/schemas/main/DataProcessing-schema.json b/config/schemas/main/DataProcessing-schema.json new file mode 100644 index 0000000..12fbeea --- /dev/null +++ b/config/schemas/main/DataProcessing-schema.json @@ -0,0 +1,72 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Data processing", + "description": "Schema describing data processing", + "type":"object", + "properties":{ + "title":{ + "label": "Title", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "description":"Title for a data processing step" + }, + "description":{ + "label": "Description", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "title": "Description of data processing" + }, + "methodsUrl":{ + "label": "Methods URL", + "type":"string", + "format":"uri", + "description":"Urls of methods" + }, + "processing":{ + "label": "Processing", + "type":"object", + "classname": "technical_resource_usage", + "description":"internal identifier pointing to a technicalResourceUsage JSON document", + "properties": { + "dbid": { + "type":"number" + } + }, + "required":["dbid"] + }, + "staffMember":{ + "label": "StaffMember", + "type":"array", + "items":{ + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + + "cost":{ + "label": "Cost", + "type":"array", + "items":{ + "type": "object", + "classname": "cost", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + + } + + }, + "required": ["title", "description"] +} + \ No newline at end of file diff --git a/config/schemas/main/DataStorage-schema.json b/config/schemas/main/DataStorage-schema.json new file mode 100644 index 0000000..64b72e8 --- /dev/null +++ b/config/schemas/main/DataStorage-schema.json @@ -0,0 +1,83 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + + "title": "Data storage", + "description": "Schema describing data storage", + "type":"object", + "properties":{ + "title":{ + "label": "Title", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "title":"Data collection title schema", + "description":"Title for the storage use)" + }, + "description":{ + "label": "Description", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "title": "Description of data storage", + "description":"informations regarding the technical resources and its use" + }, + "storage":{ + "label": "Storage", + "type":"object", + "classname": "technical_resource_usage", + "description":"internal identifier pointing to a technicalResourceUsage JSON document", + "properties":{ + "dbid":{ + "type":"number" + } + }, + "required":["dbid"] + }, + "securityMeasures":{ + "label": "Security measures", + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + }, + "backupPolicy":{ + "label": "Backup policy", + "type": "object", + "classname": "backup_policy", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "staffMember":{ + "label": "Staff member", + "type":"array", + "items":{ + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "cost":{ + "label": "Cost", + "type":"array", + "items":{ + "type": "object", + "classname": "cost", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + }, + "required":["title", "description"] +} + + diff --git a/config/schemas/main/DataStorage-schema_Genci.json b/config/schemas/main/DataStorage-schema_Genci.json new file mode 100644 index 0000000..1611bcc --- /dev/null +++ b/config/schemas/main/DataStorage-schema_Genci.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + + "title": "Data storage", + "description": "Schema describing data storage", + "type":"object", + "properties":{ + "title":{ + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "title":"Data storage title schema", + "description":"Title for the storage use)" + }, + "description":{ + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "title": "Description of data storage", + "description":"informations regarding the technical resources and its use" + }, + "storage":{ + "type":"array", + "description":"internal identifier pointing to a technicalResourceUsage JSON document", + "items": { + "type": "object", + "classname": "technical_resource_usage", + "properties": { + "dbid": { + "type": "number" + } + }, + "requested": ["dbid"] + } + }, + "securityMeasures":{ + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + }, + "backupPolicy":{ + "type": "object", + "classname": "backup_policy", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "required":["title", "description", "storage"] +} \ No newline at end of file diff --git a/config/schemas/main/Distribution-schema.json b/config/schemas/main/Distribution-schema.json new file mode 100644 index 0000000..0513a08 --- /dev/null +++ b/config/schemas/main/Distribution-schema.json @@ -0,0 +1,96 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Distribution schema", + "description": "Schema describing distributions as defines in Dcat vocabulary: a dataset might be available in multiple serializations ", + "type":"object", + "properties":{ + "fileName":{ + "label": "Filename", + "type":"string" + }, + "description":{ + "label": "Description", + "type":"string", + "pattern":"(.)*((@en)|(@fr))" + }, + "releaseDate":{ + "label": "Release date", + "type":"string", + "format":"date" + }, + "dataAccess":{ + "label": "DataAccess", + "type": "string", + "format": "select", + "values": ["Open", "Restricted", "Closed"] + }, + "fileFormat":{ + "label": "File format", + "type": "string", + "format": "select", + "values": ["text/csv", "text/markdown", "vido/JEPG", "application/json", "other"] + }, + "application":{ + "label": "Application", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "description": "Application to read the data" + }, + "filevolume":{ + "label": "File volume", + "type":"number", + "description": "Number oof octets, can be expressed with exponential notation", + "example":"2.99e8" + }, + "hosting":{ + "label": "Hosting", + "type":"object", + "classname": "technical_resource_usage", + "description":"internal identifier pointing to a technicalResourceUsage JSON document", + "properties":{ + "dbid":{ + "type":"number" + } + }, + "required":["dbid"] + }, + "availableUntil":{ + "label": "Available until", + "type":"string", + "format":"date", + "description": "date until data is available" + }, + "accessUrl":{ + "label": "Access URL", + "type":"string", + "format":"uri", + "description":"url of the of a location that can provide access to this distribution" + }, + "downloadUrl":{ + "label": "Download URL", + "type":"string", + "format":"uri", + "description": "url of the downloadable file in a given format" + }, + "license":{ + "type": "object", + "classname": "license", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "licenceStartDate":{ + "label": "License start date", + "type":"string", + "format":"date" + } + }, + + "required":["fileVolume", "availableUntil", "dataAccess", "releaseDate", "accessUrl", "fileName", "fileFormat", "hosting", "license", "licenseStartDate"] + +} + \ No newline at end of file diff --git a/config/schemas/main/DocumentationQuality-schema.json b/config/schemas/main/DocumentationQuality-schema.json new file mode 100644 index 0000000..826d10a --- /dev/null +++ b/config/schemas/main/DocumentationQuality-schema.json @@ -0,0 +1,68 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Documentation and data quality issues", + "description": "Schema to describe documentation and data quality issues", + "type":"object", + "properties": { + "dataOrganization":{ + "label": "Data Organization", + "type":"array", + "minItems": 1, + "items":{ + "type": "object", + "classname": "data_organization", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "metadataStandards":{ + "label": "Metadata Standards", + "description": " standards used to describe data, to represent or annotate data (FAIR compliant vocabularies): eg. EML, DICOM, EDAM", + "type":"array", + "minItems": 1, + "items":{ + "type":"object", + "classname": "metadata_standard", + "properties":{ + "dbid":{ + "type":"number" + } + }, + "requested":["dbid"] + + } + }, + "documentationSoftware":{ + "description": "tools used to capture metadata or record research studies", + "type":"string" + }, + "qualityAssuranceMethod":{ + "type":"array", + "minItems" : 1, + "items":{ + "$ref":"QualityAssuranceMethod-schema.json" + }, + "description":"description of the methods used to assure the scientific quality of the data (eg. repeated samples, calibration, repeated measurements, standardized data capture, ..." + }, + "staffMember":{ + "type":"array", + "minItems": 1, + "items":{ + "$ref":"StaffMember-schema.json" + } + }, + "cost":{ + "type":"array", + "items":{ + "$ref":"Cost-schema.json" + } + } + }, + "requested":["dataOrganization","metadataStandard","qualityAssuranceMethod", "staffMember"] +} + \ No newline at end of file diff --git a/config/schemas/main/EthicalIssues-schema.json b/config/schemas/main/EthicalIssues-schema.json new file mode 100644 index 0000000..890c77a --- /dev/null +++ b/config/schemas/main/EthicalIssues-schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Ethical Issues", + "description": "The documentation the schema for ethical issues", + "type": "object", + "properties": { + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "description": "description of ethical issues to take into account and security measures to comply with" + }, + "reportUrl": { + "label": "Report URL", + "type": "array", + "items": { + "type": "string", + "format": "uri", + "description": "url of the code of ethics for example " + } + }, + "staffMember": { + "label": "Staff members", + "type": "array", + "items": { + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + }, + "required": [ + "description" + ] +} \ No newline at end of file diff --git a/config/schemas/main/Funder-schema.json b/config/schemas/main/Funder-schema.json new file mode 100644 index 0000000..445e49d --- /dev/null +++ b/config/schemas/main/Funder-schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Funder", + "description": "Schema describing information about a funder", + "type":"object", + "properties":{ + "name":{ + "label": "Name", + "type":"string" + }, + "funderId":{ + "label": "Funder ID", + "type": "object", + "classname": "identifier", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "dataPolicyUrl":{ + "label": "Data policy URL", + "type":"string", + "format":"uri" + } + }, + "required":["name", "funderId","dataPolicy"] + } \ No newline at end of file diff --git a/config/schemas/main/Funding-schema.json b/config/schemas/main/Funding-schema.json new file mode 100644 index 0000000..23b0756 --- /dev/null +++ b/config/schemas/main/Funding-schema.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "id": "../Documentation/Implementation/Data_model/Json/", + "title": "Funding", + "description": "The documentation of funding schema", + "type": "object", + "properties": { + "funder": { + "label": "Funder", + "type": "object", + "classname": "funder", + "properties": { + "dbid": { + "type": "number", + "description": "internal pointer to a Funder Json document" + } + }, + "requested": ["dbid"] + }, + "grantId": { + "label": "Grant ID", + "type": "string" + }, + "fundingStatus": { + "label": "Funding status", + "type": "string", + "format": "select", + "values": ["Planned", "Applied", "Granted", "Rejected"] + } + }, + "required": [ + "funder", + "fundingStatus", + "name" + ] +} \ No newline at end of file diff --git a/config/schemas/main/Identifier-schema.json b/config/schemas/main/Identifier-schema.json new file mode 100644 index 0000000..6fcabd3 --- /dev/null +++ b/config/schemas/main/Identifier-schema.json @@ -0,0 +1,27 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Identifier", + "description": "Schema describing an identifier", + "type": "object", + "properties": { + "value": { + "label": "Value", + "type": "string" + }, + "idType": { + "oneOf": [ + { + "$ref": "Enumerations/AgentId.json" + }, + { + "$ref": "Enumerations/ResourceId.json" + } + ] + } + }, + "required": [ + "value", + "idType" + ] +} \ No newline at end of file diff --git a/config/schemas/main/LegalIssues-schema.json b/config/schemas/main/LegalIssues-schema.json new file mode 100644 index 0000000..8ce7d42 --- /dev/null +++ b/config/schemas/main/LegalIssues-schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Legal Issues", + "description": "The documentation of legal issues schema", + "type": "object", + "properties": { + "legalItem": { + "label": "Legal item", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "classname": "legal_item", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "staffMember": { + "label": "Staff members", + "type": "array", + "items": { + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + }, + "requested": [ + "legalItem" + ] +} \ No newline at end of file diff --git a/config/schemas/main/LegalItem-schema.json b/config/schemas/main/LegalItem-schema.json new file mode 100644 index 0000000..1211499 --- /dev/null +++ b/config/schemas/main/LegalItem-schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Legal items", + "description": " intellectual rights, confidentiality issues, ownership aspects, applicable laws", + "type": "object", + "properties": { + "title": { + "label": "Title", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "legalDocUrl": { + "label": "Legal document URL", + "type": "string", + "format": "uri" + } + }, + "required": [ + "title" + ] +} \ No newline at end of file diff --git a/config/schemas/main/License-schema.json b/config/schemas/main/License-schema.json new file mode 100644 index 0000000..04be14c --- /dev/null +++ b/config/schemas/main/License-schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "License schema", + "description": "Schema for licenses", + "type": "object", + "properties": { + "licenseName": { + "label": "License name", + "type": "string" + }, + "licenseUrl": { + "label": "License URL", + "type": "string", + "format": "uri" + } + }, + "required": [ + "licenceName" + ] +} \ No newline at end of file diff --git a/config/schemas/main/Meta-schema.json b/config/schemas/main/Meta-schema.json new file mode 100644 index 0000000..cb997e3 --- /dev/null +++ b/config/schemas/main/Meta-schema.json @@ -0,0 +1,67 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "DMP metadata", + "description": "The documentation of DMP metadata schema", + "type": "object", + "properties": { + "title": { + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "description": { + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "contact": { + "type": "object", + "properties": { + "dbid": { + "type": "number", + "description": "internal identifier pointing to a Person JSON document" + } + }, + "required": [ + "dbid" + ] + }, + "creationDate": { + "type": "string", + "format": "date" + }, + "lastModifiedDate": { + "type": "string", + "format": "date" + }, + "versionNumber": { + "type": "string" + }, + "versionNotes": { + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "dmpID": { + "$ref": "Identifier-schema.json" + }, + "license": { + "ref": "License-schema.json" + }, + "relatedDocUrl": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + } + }, + "associatedDMPId": { + "$ref": "Identifier-schema.json" + } + }, + "required": [ + "title", + "contact", + "creationDate", + "lastModifiedDate", + "versionNumber" + ] +} \ No newline at end of file diff --git a/config/schemas/main/MetadataStandard-schema.json b/config/schemas/main/MetadataStandard-schema.json new file mode 100644 index 0000000..6da0a62 --- /dev/null +++ b/config/schemas/main/MetadataStandard-schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Metadata standards", + "description": "Metadata standard to describe the data", + "type": "object", + "properties": { + "title": { + "label": "Title", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "metadataLanguage": { + "label": "Metadata language", + "type": "string", + "format": "select", + "values": [] + }, + "metadataStandardId": { + "label": "Metadata standard ID", + "type": "object", + "classname": "identifier", + "properties": { + "dbid": { + "type": "string" + } + }, + "required": ["dbid"] + } + }, + "required": [ + "title", + "metadataLanguage", + "metadataStandardId" + ] +} \ No newline at end of file diff --git a/config/schemas/main/Partner-schema.json b/config/schemas/main/Partner-schema.json new file mode 100644 index 0000000..8784e3e --- /dev/null +++ b/config/schemas/main/Partner-schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Partner", + "description": "Schema describing a partner", + "type": "object", + "properties": { + "name": { + "label": "Name", + "type": "string", + "description": "Name of the research organization or structure" + }, + "orgId": { + "label": "Org ID", + "type": "object", + "classname": "Identifier", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "dataPolicyUrl": { + "label": "Data policy URL", + "type": "string", + "format": "uri" + } + }, + "requested": [ + "name", + "orgId" + ] +} \ No newline at end of file diff --git a/config/schemas/main/Person-schema.json b/config/schemas/main/Person-schema.json new file mode 100644 index 0000000..d6de30a --- /dev/null +++ b/config/schemas/main/Person-schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Person", + "description": "Schema describing a person", + "type": "object", + "properties": { + "lastName": { + "label": "Lastname", + "description": "The last name of the person", + "type": "string" + }, + "firstName": { + "label": "Firstname", + "description": "This person's first name", + "type": "string" + }, + "mbox": { + "label": "Email", + "description": "This person's mail addres", + "type": "string", + "format": "email" + }, + "value": { + "label": "Identifier value", + "type": "string" + }, + "idType": { + "label": "Identifier type", + "type": "string", + "format": "select", + "values": ["ORCID ID", "ROR ID", "FundRef", "ISSNI", "IdRef", "other"] + } + }, + "required": [ + "lastName", + "firstName", + "personId" + ] +} \ No newline at end of file diff --git a/config/schemas/main/PersonalDataIssues-schema.json b/config/schemas/main/PersonalDataIssues-schema.json new file mode 100644 index 0000000..69ef5a2 --- /dev/null +++ b/config/schemas/main/PersonalDataIssues-schema.json @@ -0,0 +1,35 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Personal data issues", + "description": "Schema describing personnal data Issues", + "type":"object", + "properties": { + "description":{ + "label": "Personal Data Issues", + "type":"string" + }, + "reportUrl":{ + "label": "Report URL", + "type":"array", + "items":{ + "type":"string", + "format":"uri" + } + }, + "staffMember":{ + "type":"array", + "items":{ + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + }, + "required":["description"] + } \ No newline at end of file diff --git a/config/schemas/main/PreservationIssues-schema.json b/config/schemas/main/PreservationIssues-schema.json new file mode 100644 index 0000000..7960a5a --- /dev/null +++ b/config/schemas/main/PreservationIssues-schema.json @@ -0,0 +1,82 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Preservation issues schema", + "description": "Schema describing the preservation issues", + "type": "object", + "properties": { + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "description": "describe regulations contrainsts that apply to the data " + }, + "dataSize": { + "label": "Data size", + "type": "number", + "description": "Number of octets, can be expressed with exponential notation" + }, + "startDate": { + "label": "Start date", + "type": "string", + "format": "date" + }, + "endDate": { + "label": "End date", + "type": "string", + "format": "date" + }, + "preservation": { + "label": "Preservation", + "type": "object", + "classname": "technical_resource_usage", + "description": "internal identifier pointing to a technicalResourceUsage JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "finalDisposition": { + "label": "Final disposition", + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "description": "what is the fate at the end of the preservation period" + }, + "staffMember": { + "label": "Staff member", + "type": "array", + "items": { + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "cost": { + "label": "Cost", + "type": "array", + "items": { + "type": "object", + "classname": "cost", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + }, + "requested": [ + "description", + "startDate", + "endDate", + "finalDisposition" + ] +} \ No newline at end of file diff --git a/config/schemas/main/Project-schema.json b/config/schemas/main/Project-schema.json new file mode 100644 index 0000000..bba8645 --- /dev/null +++ b/config/schemas/main/Project-schema.json @@ -0,0 +1,93 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Project", + "description": "Project or research activity schema", + "type": "object", + "properties": { + "title": { + "label": "Title", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "acronym": { + "label": "Acronym", + "type": "string" + }, + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "projectId": { + "label": "Project ID", + "type": "string" + }, + "funding": { + "label": "Funding", + "type": "array", + "description": "Funding information", + "items": { + "type": "object", + "classname": "funding", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "startDate": { + "label": "Start date", + "type": "string", + "format": "date" + }, + "endDate": { + "label": "End date", + "type": "string", + "format": "date" + }, + "partner": { + "label": "Partner", + "type": "array", + "items": { + "type": "object", + "classname": "partner", + "properties": { + "dbid": { + "type": "number" + } + }, + "requested": ["dbid"] + } + }, + "experimentalPlanUrl": { + "label": "Experimental plan URL", + "type": "string", + "format": "uri" + }, + "principalInvestigator": { + "label": "Principal investigator", + "type": "object", + "classname": "person", + "properties": { + "dbId": { + "type": "number", + "description": "internal pointer to a Person Json document" + } + }, + "required": ["dbid"] + } + }, + "requested": [ + "title", + "description", + "acronym", + "startDate", + "endDate", + "funding", + "partner", + "principalInvestigator" + ] +} \ No newline at end of file diff --git a/config/schemas/main/QualityAssuranceMethod-schema.json b/config/schemas/main/QualityAssuranceMethod-schema.json new file mode 100644 index 0000000..8290e88 --- /dev/null +++ b/config/schemas/main/QualityAssuranceMethod-schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Data quality assurance method", + "description": "Schema to describe data quality assurance methods", + "type": "object", + "properties": { + "title": { + "label": "Title", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "qualityMethodUrl": { + "label": "Quality method", + "type": "string", + "format": "uri" + } + }, + "requested": [ + "title", + "description" + ] +} \ No newline at end of file diff --git a/config/schemas/main/ResearchOutput-schema.json b/config/schemas/main/ResearchOutput-schema.json new file mode 100644 index 0000000..4587fe0 --- /dev/null +++ b/config/schemas/main/ResearchOutput-schema.json @@ -0,0 +1,271 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "id": "../Documentation/Implementation/Data_model/Json/", + "title": "Research output", + "description": "The documentation for the research output schema", + "type": "object", + "properties": { + "title": { + "label": "Title", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + }, + "type": { + "label": "Type", + "type": "string", + "format": "select", + "values": ["Dataset","Software","Model","Physical object", "Protocol","Workflow","Other"] + }, + "workpackage": { + "label": "Work package", + "type": "string" + }, + "controlledKeyword": { + "label": "Controller keyword", + "type": "array", + "items": { + "type": "object", + "classname": "controlled_keyword", + "properties": { + "dbid": { + "type": "number" + } + }, + "requested": ["dbid"] + }, + "minItems": 1 + }, + "uncontrolledKeyword": { + "label": "Uncontrolled keyword", + "type": "array", + "items": { + "type": "string", + "pattern": "(.)*((@en)|(@fr))" + } + }, + "language": { + "label": "Language", + "type": "string", + "description": "data language", + "format": "select", + "values": ["aar", "abk", "afr", "aka", "amh", "ara", "arg", "asm", "ava", "ave", "aym", "aze", "bak", "bam", "bel", "ben", "bih", "bis", "bod", "bos", + "bre", "bul", "cat", "ces", "cha", "che", "chu", "chv", "cor", "cos", "cre", "cym", "dan", "deu", "div", "dzo", "ell", "eng", "epo", "est", + "eus", "ewe", "fao", "fas", "fij", "fin", "fra", "fry", "ful", "gla", "gle", "glg", "glv", "grn", "guj", "hat", "hau", "hbs", "heb", "her", + "hin", "hmo", "hrv", "hun", "hye", "ibo", "ido", "iii", "iku", "ile", "ina", "ind", "ipk", "isl", "ita", "jav", "jpn", "kal", "kan", "kas", + "kat", "kau", "kaz", "khm", "kik", "kin", "kir", "kom", "kon", "kor", "kua", "kur", "lao", "lat", "lav", "lim", "lin", "lit", "ltz", "lub", + "lug", "mah", "mal", "mar", "mkd", "mlg", "mlt", "mon", "mri", "msa", "mya", "nau", "nav", "nbl", "nde", "ndo", "nep", "nld", "nno", "nob", + "nor", "nya", "oci", "oji", "ori", "orm", "oss", "pan", "pli", "pol", "por", "pus", "que", "roh", "ron", "run", "rus", "sag", "san", "sin", + "slk", "slv", "sme", "smo", "sna", "snd", "som", "sot", "spa", "sqi", "srd", "srp", "ssw", "sun", "swa", "swe", "tah", "tam", "tat", "tel", + "tgk", "tgl", "tha", "tir", "ton", "tsn", "tso", "tuk", "tur", "twi", "uig", "ukr", "urd", "uzb", "ven", "vie", "vol", "wln", "wol", "xho", + "yid", "yor", "zha", "zho", "zul"], + }, + "contact": { + "label": "Contact", + "type": "object", + "classname": "person", + "description": "Person responsible for these data", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "estimatedVolume": { + "label": "Estimated volume", + "type": "number", + "description": "Volume expressed in Megaoctets" + }, + "datasetId": { + "label": "Dataset ID", + "type": "object", + "classname": "identifier", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "reusedData": { + "label": "Reused data", + "type": "array", + "description": "collection of internal identifiers pointing to reused data JSON documents", + "items": { + "type": "object", + "classname": "identifier", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "containsPersonalData": { + "label": "Contains personal data?", + "type": "string", + "format": "select", + "values": ["Yes", "No", "Unknown"] + }, + "personalDataIssues": { + "label": "Personal data issues", + "type": "object", + "classname": "personal_data_issues", + "description": "Internal identifier pointing to a personalDataIssues JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "containsSensitiveData": { + "label": "Contains sensible data?", + "type": "string", + "format": "select", + "values": ["Yes", "No", "Unknown"] + }, + "legalIssues": { + "label": "Legal issues", + "type": "object", + "classname": "legal_issues", + "description": "Internal identifier pointing to a legalIssues JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "hasEthicalIssues": { + "label": "Has ethical issues?", + "type": "string", + "format": "select", + "values": ["Yes", "No", "Unknown"] + }, + "ethicalIssues": { + "label": "Ethical issues", + "type": "object", + "classname": "ethical_issues", + "description": "Internal identifier pointing to an ethicalIssues JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "dataCollection": { + "label": "Data collection", + "type": "object", + "classname": "data_collection", + "description": "Internal identifier pointing to a legalIssues JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "dataProcessing": { + "label": "Data processing", + "type": "object", + "classname": "data_processing", + "description": "Internal identifier pointing to a legalIssues JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "dataStorage": { + "label": "DataStorage", + "type": "object", + "classname": "data_storage", + "description": "Internal identifier pointing to a legalIssues JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "documentationQuality": { + "label": "Documentation quality", + "type": "object", + "classname": "documentation_quality", + "description": "Internal identifier pointing to a documentation JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "sharing": { + "label": "Sharing", + "type": "object", + "classname": "sharing", + "description": "Internal identifier pointing to a sharing JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "preservationIssues": { + "label": "Preservation issues", + "type": "object", + "classname": "preservation_issues", + "description": "Internal identifier pointing to a preservationIssues JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "budget": { + "label": "Budget", + "type": "array", + "description": "collection of internal identifiers pointing to cost JSON documents", + "items": { + "type": "object", + "classname": "cost", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + }, + "requested": [ + "title", + "description", + "type", + "controlledKeyword", + "reusedData", + "containsPersonalData", + "containsSensitiveData", + "controlledKeyword", + "dataCollection", + "dataStorage", + "documentationQuality", + "estimatedVolume", + "hasEthicalIssues", + "language", + "sharing", + "preservationIssues", + "budget" + ] +} \ No newline at end of file diff --git a/config/schemas/main/ReusedData-schema.json b/config/schemas/main/ReusedData-schema.json new file mode 100644 index 0000000..debf98e --- /dev/null +++ b/config/schemas/main/ReusedData-schema.json @@ -0,0 +1,50 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Reused data", + "description": "The documentation of reused data schema", + "type":"object", + "properties": { + "title":{ + "label": "Title", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "description":"Name of the reused data" + }, + "description":{ + "label": "Description", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "description":"describe the provenance of the reused product" + }, + "datasetId":{ + "label": "Dataset ID", + "type": "object", + "classname": "identifier", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "versionNumber":{ + "label": "Version number", + "type":"string" + }, + "license":{ + "label": "License", + "type": "object", + "classname": "license", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + + "requested":["datasetId", "description", "title", "license"] + + } \ No newline at end of file diff --git a/config/schemas/main/Sharing-schema.json b/config/schemas/main/Sharing-schema.json new file mode 100644 index 0000000..59cb2fa --- /dev/null +++ b/config/schemas/main/Sharing-schema.json @@ -0,0 +1,93 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/Json/", + "title": "Sharing", + "description": "Schema describing sharing issues", + "type": "object", + "properties": { + "description": { + "label": "Description", + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "description": "sharing conditions and/or arguments explaining why data cannot be openly shared" + }, + "reusability": { + "label": "Reusability", + "type": "string", + "pattern": "(.)*((@en)|(@fr))", + "explanation": "potential and/or limits of data resusability " + }, + "hosting": { + "label": "Hosting", + "type": "object", + "classname": "technical_resource_usage", + "description": "Internal identifier pointing to a technicalResourceUsage JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "distribution": { + "label": "Distribution", + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "classname": "technical_resource_usage", + "description": "Internal identifier pointing to a technicalResourceUsage JSON document", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "indexedIn": { + "label": "Indexed in", + "type": "object", + "classname": "technical_resource", + "description": "identifier pointing to a TechnicalResource Json document describing the catalog in which data are indexed", + "properties": { + "dbid": { + "type": "number" + } + }, + "requested": ["dbid"] + }, + "staffMember": { + "label": "Staff members", + "type": "array", + "items": { + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "cost": { + "label": "Cost", + "type": "array", + "items": { + "type": "object", + "classname": "cost", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + }, + "requested": [ + "description", + "distribution" + ] +} \ No newline at end of file diff --git a/config/schemas/main/StaffMember-schema.json b/config/schemas/main/StaffMember-schema.json new file mode 100644 index 0000000..9ef910d --- /dev/null +++ b/config/schemas/main/StaffMember-schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Staff members", + "description": "Schema describing staff members", + "type": "object", + "properties": { + "person": { + "type": "object", + "classname": "person", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "role": { + "type": "string", + "format": "select", + "values": ["Data producer", "Data manager", "Data steward", "Legal expert", "Data protection officer", "other"] + } + }, + "required": [ + "person", + "role" + ] +} \ No newline at end of file diff --git a/config/schemas/main/TechnicalResource-schema.json b/config/schemas/main/TechnicalResource-schema.json new file mode 100644 index 0000000..c2380a0 --- /dev/null +++ b/config/schemas/main/TechnicalResource-schema.json @@ -0,0 +1,78 @@ + { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "../Documentation/Implementation/data_model/JSON/", + "title": "Technical resource", + "description": "Schema describing technical resources, either to collect, analyze data, host data, index data", + "type":"object", + "properties":{ + "title":{ + "label": "Title", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "title":"Technical resource title", + "example":"GENCI" + }, + "description":{ + "label": "Description", + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "title": "Description of the technical resource", + "description":"information regarding the technical resources" + }, + + "technicalResourceId":{ + "label": "Technical resource ID", + "type": "object", + "classname": "identifier", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "geoLocation":{ + "label": "Geo location", + "type": "string", + "format": "select", + "values": [ + "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", + "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", + "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", + "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", + "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", + "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", + "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", + "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", + "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", + "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", + "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", + "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", + "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", + "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", + "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW" + ] + }, + "certification":{ + "label": "Certification", + "type": "string", + "format": "select", + "values": ["CoreTrustSeal", "DSA", "WDS","ISO-9001", "ISO-27000", "other"] + }, + "pidSystem":{ + "label": "PID system", + "type": "string", + "format": "select", + "values": ["DOI","ARK","HANDLE", "other"] + + }, + "versioningPolicy":{ + "label": "Versioning policy", + "type": "string", + "format": "select", + "values": ["Yes", "No", "Unknown"] + } + }, + "required":["title","resourceId"] + +} diff --git a/config/schemas/main/TechnicalResourceUsage-schema.json b/config/schemas/main/TechnicalResourceUsage-schema.json new file mode 100644 index 0000000..59dfe4d --- /dev/null +++ b/config/schemas/main/TechnicalResourceUsage-schema.json @@ -0,0 +1,83 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "id": "../Documentation/Implementation/Data_model/JSON/technicalResourceUsage.json", + "title": "Technical resource usage schema", + "description": "Schema describing the usage of technical resources", + "type":"object", + "properties":{ + "facility": { + "label": "Facility", + "type":"object", + "classname": "technical_resource", + "properties": { + "dbid": { + "type": "number", + "description": "Internal identifier pointing to a technicalResource Json document" + } + }, + "required": ["dbid"] + }, + "startDate":{ + "label": "Start date", + "type":"string", + "format":"date" + }, + "endDate":{ + "label": "End date", + "type":"string", + "format":"date" + }, + "dataSize":{ + "label": "Data size", + "type": "number", + "description": "Volume expressed in octets" + }, + "storageType":{ + "label": "Storage type", + "type": "string", + "format": "select", + "values": ["Hard disk drive", "Solid state drive","USB key", "NAS sever", "cloud", "CD", "DVD", "Magnetic tape"] + }, + "backupPolicy":{ + "label": "Backup policy", + "type": "object", + "classname": "backup_policy", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + }, + "staffMember":{ + "label": "Staff member", + "type":"array", + "items": { + "type": "object", + "classname": "staff_member", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + }, + "cost": { + "label": "Cost", + "type": "array", + "items": { + "type": "object", + "classname": "cost", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + + }, + "requested":["facility", "dataSize", "startDate", "endDate"] + } diff --git a/config/schemas/main/TechnicalResourceUsage-schema_GENCI.json b/config/schemas/main/TechnicalResourceUsage-schema_GENCI.json new file mode 100644 index 0000000..c0cb14c --- /dev/null +++ b/config/schemas/main/TechnicalResourceUsage-schema_GENCI.json @@ -0,0 +1,112 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "id": "../Documentation/Implementation/Data_model/JSON/technicalResourceUsage.json", + "title": "Technical resource usage schema", + "description": "Schema describing the usage of technical resources", + "type":"object", + "properties": { + "facility":{ + "type":"object", + "classname": "technical_resource", + "properties": { + "dbid":{ + "type":"number", + "description":"Internal identifier pointing to a technicalResource Json document" + } + }, + "required": ["dbid"] + }, + "serviceType":{ + "type":"string", + "format": "select", + "values": ["Workdir", "Store", "securedStore"] + }, + + "initialRequest": { + "type":"object", + "label": "Démarrage du projet", + "properties":{ + "dataSize":{ + "type": "number", + "toolTip:fr_FR": "Taille totale dans cet espace en To" + }, + "fileDirNumber":{ + "type":"number", + "toolTip:fr_FR": "Nombre de fichiers et de répertoires" + }, + "oneYearStatus":{ + "type":"object", + "label": "Après un an de production de résultats:", + "properties":{ + "dataSize":{ + "type": "number", + "toolTip:fr_FR": "Taille totale dans cet espace en To" + }, + "fileDirNumber":{ + "type":"number", + "toolTip:fr_FR": "Nombre de fichiers et de répertoires" + } + } + }, + "storageTime":{ + "type":"number", + "toolTip:fr_FR": "Durée de stockage après la fin de vie du projet, en mois (pas dans le cas de workdir" + }, + "justification":{ + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "toolTip:fr_FR": "La partie justification est obligatoire. Elle doit préciser les besoins en taille de stockage de cet espace, la méthode d’organisation utilisée pour réduire le nombre de fichiers. Le sort final des données à l’issue de la période de stockage doit aussi être précisé : restitution, destruction, diffusion. " + } + } + }, + "extensionRequest": { + "type":"object", + "label": "Démarrage du projet", + "properties":{ + "dataSize":{ + "type": "number", + "toolTip:fr_FR": "Taille totale dans cet espace en To" + }, + "fileDirNumber":{ + "type":"number", + "toolTip:fr_FR": "Nombre de fichiers et de répertoires" + }, + "oneYearStatus":{ + "type":"object", + "label": "Après un an de production de résultats:", + "properties":{ + "dataSize":{ + "type": "number", + "toolTip:fr_FR": "Taille totale dans cet espace en To" + }, + "fileDirNumber":{ + "type":"number", + "toolTip:fr_FR": "Nombre de fichiers et de répertoires" + } + + }, + "storageTime":{ + "type":"number", + "toolTip:fr_FR": "Durée de stockage après la fin de vie du projet, en mois (pas dans le cas de workdir" + }, + "justification":{ + "type":"string", + "pattern":"(.)*((@en)|(@fr))", + "toolTip:fr_FR": "La partie justification est obligatoire. Elle doit préciser les besoins en taille de stockage de cet espace, la méthode d’organisation utilisée pour réduire le nombre de fichiers. Le sort final des données à l’issue de la période de stockage doit aussi être précisé : restitution, destruction, diffusion. " + } + }, + "costValue":{ + "type": "object", + "classname": "cost_value", + "properties": { + "dbid": { + "type": "number" + } + }, + "required": ["dbid"] + } + } + } + }, + "required": ["facility", "dataSize", "startDate", "endDate"] +} diff --git a/config/schemas/main/Transitional-date.json b/config/schemas/main/Transitional-date.json new file mode 100644 index 0000000..6729516 --- /dev/null +++ b/config/schemas/main/Transitional-date.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "A date aimed at receiving answers which Response format is a date", + "type": "object", + "properties": { + "content": { + "label": "Libellé de la question du template", + "description": "The content of a date field is plain text formatted as a date", + "type": "string", + "format": "date" + } + }, + "required": ["content"] +} \ No newline at end of file diff --git a/config/schemas/main/Transitional-number.json b/config/schemas/main/Transitional-number.json new file mode 100644 index 0000000..2f623bd --- /dev/null +++ b/config/schemas/main/Transitional-number.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "A date aimed at receiving answers which Response format is a number", + "type": "object", + "properties": { + "content": { + "label": "Libellé de la question du template", + "description": "The content of a number field is a standard number, being an int or a float", + "type": "number" + } + }, + "required": ["content"] +} \ No newline at end of file diff --git a/config/schemas/main/Transitional-textarea.json b/config/schemas/main/Transitional-textarea.json new file mode 100644 index 0000000..0778e5e --- /dev/null +++ b/config/schemas/main/Transitional-textarea.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "A textarea is aimed at receiving answers where Response format is a textarea", + "type":"object", + "properties": { + "content":{ + "label": "Libell� de la question du template", + "description": "The content of a text area is text with HTML formatting tags, excluding 'body' tags", + "type": "string" + } + }, + "required": ["content"] +} \ No newline at end of file diff --git a/config/schemas/main/Transitional-textfield.json b/config/schemas/main/Transitional-textfield.json new file mode 100644 index 0000000..bf2bfb0 --- /dev/null +++ b/config/schemas/main/Transitional-textfield.json @@ -0,0 +1,13 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "description": "A textfield aimed at receiving answers which Response format is a textfield", + "type":"object", + "properties": { + "content":{ + "label": "Libellé de la question du template", + "description": "The content of a text field is plain text with no HTML formatting tags", + "type": "string" + } + }, + "required": ["content"] +} \ No newline at end of file diff --git a/config/schemas/main/index.json b/config/schemas/main/index.json new file mode 100644 index 0000000..45fa097 --- /dev/null +++ b/config/schemas/main/index.json @@ -0,0 +1,147 @@ +[ + { + "path": "BackupPolicy-schema.json", + "classname": "backup_policy", + "question_id": null + }, + { + "path": "ControlledKeyword-schema.json", + "classname": "controlled_keyword", + "question_id": null + }, + { + "path": "Cost-schema.json", + "classname": "cost", + "question_id": null + }, + { + "path": "CostValue-schema.json", + "classname": "cost_value", + "question_id": null + }, + { + "path": "DataCollection-schema.json", + "classname": "data_collection", + "question_id": 23980 + }, + { + "path": "DataOrganization-schema.json", + "classname": "data_organization", + "question_id": 23981 + }, + { + "path": "DataProcessing-schema.json", + "classname": "data_processing", + "question_id": null + }, + { + "path": "DataStorage-schema_Genci.json", + "classname": "data_storage", + "question_id": 23984 + }, + { + "path": "Distribution-schema.json", + "classname": "distribution", + "question_id": null + }, + { + "path": "DocumentationQuality-schema.json", + "classname": "documentation_quality", + "question_id": 23982 + }, + { + "path": "EthicalIssues-schema.json", + "classname": "ethical_issues", + "question_id": 23988 + }, + { + "path": "Funder-schema.json", + "classname": "funder", + "question_id": null + }, + { + "path": "Funding-schema.json", + "classname": "funding", + "question_id": null + }, + { + "path": "Identifier-schema.json", + "classname": "identifier", + "question_id": null + }, + { + "path": "LegalIssues-schema.json", + "classname": "legal_issues", + "question_id": 23987 + }, + { + "path": "LegalItem-schema.json", + "classname": "legal_item", + "question_id": null + }, + { + "path": "License-schema.json", + "classname": "license", + "question_id": null + }, + { + "path": "MetadataStandard-schema.json", + "classname": "metadata_standard", + "question_id": null + }, + { + "path": "Partner-schema.json", + "classname": "partner", + "question_id": null + }, + { + "path": "Person-schema.json", + "classname": "person", + "question_id": null + }, + { + "path": "PersonalDataIssues-schema.json", + "classname": "personal_data_issues", + "question_id": null + }, + { + "path": "PreservationIssues-schema.json", + "classname": "preservation_issues", + "question_id": null + }, + { + "path": "Project-schema.json", + "classname": "project", + "question_id": null + }, + { + "path": "QualityAssuranceMethod-schema.json", + "classname": "quality_assurance_method", + "question_id": null + }, + { + "path": "ReusedData-schema.json", + "classname": "reused_data", + "question_id": null + }, + { + "path": "Sharing-schema.json", + "classname": "sharing", + "question_id": null + }, + { + "path": "StaffMember-schema.json", + "classname": "staff_member", + "question_id": null + }, + { + "path": "TechnicalResource-schema.json", + "classname": "technical_resource", + "question_id": null + }, + { + "path": "TechnicalResourceUsage-schema_GENCI.json", + "classname": "technical_resource_usage", + "question_id": null + } +] \ No newline at end of file diff --git a/config/schemas/occ_simple.json b/config/schemas/occ_simple.json deleted file mode 100644 index 0815ba8..0000000 --- a/config/schemas/occ_simple.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "object", - "$id": "http://dmp.opidor.fr/schema.json", - "@context": "https://json-ld.org/contexts/person.jsonld", - "$schema": "http://json-schema.org/draft-07/schema#", - "required": [ - "foaf:person", - "pageNumber" - ], - "properties": { - "name": { - "type": "string", - "label": "Name" - }, - "surname": { - "type": "string", - "label": "Surname" - }, - "age": { - "type": "integer", - "label": "Age" - }, - "active": { - "type": "boolean", - "label": "Active?" - }, - "contacts": { - "type": "array", - "label": "Infos de contact", - "items": { - "type": "string" - } - } - } -} diff --git a/config/schemas/occ_struct.json b/config/schemas/occ_struct.json deleted file mode 100644 index 350baf1..0000000 --- a/config/schemas/occ_struct.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "type": "object", - "$id": "http://dmp.opidor.fr/schema.json", - "@context": "https://json-ld.org/contexts/person.jsonld", - "$schema": "http://json-schema.org/draft-07/schema#", - "required": [ - "foaf:person", - "pageNumber" - ], - "properties": { - "name": { - "type": "string", - "label": "Name", - "desc": "Ceci est le nom de la personne" - }, - "surname": { - "type": "string", - "label": "Surname" - }, - "age": { - "type": "integer", - "label": "Age" - }, - "active": { - "type": "boolean", - "label": "Active?" - }, - "struct": { - "type": "array", - "label": "Réponse occurente structurée", - "items": { - "type": "schema", - "schema_id": 6 - } - } - } -} diff --git a/config/schemas/simple.json b/config/schemas/simple.json deleted file mode 100644 index b440079..0000000 --- a/config/schemas/simple.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "object", - "$id": "http://dmp.opidor.fr/schema.json", - "@context": "https://json-ld.org/contexts/person.jsonld", - "$schema": "http://json-schema.org/draft-07/schema#", - "required": [ - "foaf:person", - "pageNumber" - ], - "properties": { - "name": { - "type": "string", - "label": "Name" - }, - "surname": { - "type": "string", - "label": "Surname" - }, - "age": { - "type": "integer", - "label": "Age" - }, - "active": { - "type": "boolean", - "label": "Active?" - } - } -} diff --git a/config/schemas/test/occ_simple.json b/config/schemas/test/occ_simple.json new file mode 100644 index 0000000..0815ba8 --- /dev/null +++ b/config/schemas/test/occ_simple.json @@ -0,0 +1,35 @@ +{ + "type": "object", + "$id": "http://dmp.opidor.fr/schema.json", + "@context": "https://json-ld.org/contexts/person.jsonld", + "$schema": "http://json-schema.org/draft-07/schema#", + "required": [ + "foaf:person", + "pageNumber" + ], + "properties": { + "name": { + "type": "string", + "label": "Name" + }, + "surname": { + "type": "string", + "label": "Surname" + }, + "age": { + "type": "integer", + "label": "Age" + }, + "active": { + "type": "boolean", + "label": "Active?" + }, + "contacts": { + "type": "array", + "label": "Infos de contact", + "items": { + "type": "string" + } + } + } +} diff --git a/config/schemas/test/occ_struct.json b/config/schemas/test/occ_struct.json new file mode 100644 index 0000000..350baf1 --- /dev/null +++ b/config/schemas/test/occ_struct.json @@ -0,0 +1,37 @@ +{ + "type": "object", + "$id": "http://dmp.opidor.fr/schema.json", + "@context": "https://json-ld.org/contexts/person.jsonld", + "$schema": "http://json-schema.org/draft-07/schema#", + "required": [ + "foaf:person", + "pageNumber" + ], + "properties": { + "name": { + "type": "string", + "label": "Name", + "desc": "Ceci est le nom de la personne" + }, + "surname": { + "type": "string", + "label": "Surname" + }, + "age": { + "type": "integer", + "label": "Age" + }, + "active": { + "type": "boolean", + "label": "Active?" + }, + "struct": { + "type": "array", + "label": "Réponse occurente structurée", + "items": { + "type": "schema", + "schema_id": 6 + } + } + } +} diff --git a/config/schemas/test/simple.json b/config/schemas/test/simple.json new file mode 100644 index 0000000..b440079 --- /dev/null +++ b/config/schemas/test/simple.json @@ -0,0 +1,28 @@ +{ + "type": "object", + "$id": "http://dmp.opidor.fr/schema.json", + "@context": "https://json-ld.org/contexts/person.jsonld", + "$schema": "http://json-schema.org/draft-07/schema#", + "required": [ + "foaf:person", + "pageNumber" + ], + "properties": { + "name": { + "type": "string", + "label": "Name" + }, + "surname": { + "type": "string", + "label": "Surname" + }, + "age": { + "type": "integer", + "label": "Age" + }, + "active": { + "type": "boolean", + "label": "Active?" + } + } +}