diff --git a/Specification/BrAPI-Schema/BrAPI-Common/ExternalReference.json b/Specification/BrAPI-Schema/BrAPI-Common/ExternalReference.json
index 44f00b41..3332d5ec 100644
--- a/Specification/BrAPI-Schema/BrAPI-Common/ExternalReference.json
+++ b/Specification/BrAPI-Schema/BrAPI-Common/ExternalReference.json
@@ -2,7 +2,7 @@
"$defs": {
"ExternalReference": {
"properties": {
- "externalReferenceDbId": {
+ "referenceId": {
"description": "The external reference ID. Could be a simple string or a URI.",
"type": [
"null",
diff --git a/Specification/BrAPI-Schema/BrAPI-Common/GeoJSON.json b/Specification/BrAPI-Schema/BrAPI-Common/GeoJSON.json
index 8a496791..64387253 100644
--- a/Specification/BrAPI-Schema/BrAPI-Common/GeoJSON.json
+++ b/Specification/BrAPI-Schema/BrAPI-Common/GeoJSON.json
@@ -5,13 +5,6 @@
"type": "object",
"description": "One geometry as defined by GeoJSON (RFC 7946). All coordinates are decimal values on the WGS84 geographic coordinate reference system.\n\nCopied from RFC 7946 Section 3.1.1\n\nA position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or\neasting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element.",
"properties": {
- "geoJSONDbId": {
- "description": "Unique identifier for the geometry",
- "type": [
- "null",
- "string"
- ]
- },
"geometry": {
"description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed.",
"$ref": "GeoJSONGeometry.json#/$defs/GeoJSONGeometry"
@@ -46,10 +39,7 @@
"relationshipType": "many-to-one",
"referencedAttribute": "coordinates"
}
- },
- "required": [
- "geoJSONDbId"
- ]
+ }
}
},
"$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Common/GeoJSON.json",
diff --git a/Specification/BrAPI-Schema/BrAPI-Common/ObservationUnitHierarchyLevel.json b/Specification/BrAPI-Schema/BrAPI-Common/ObservationUnitHierarchyLevel.json
new file mode 100644
index 00000000..12b5f51f
--- /dev/null
+++ b/Specification/BrAPI-Schema/BrAPI-Common/ObservationUnitHierarchyLevel.json
@@ -0,0 +1,31 @@
+{
+ "$defs": {
+ "ObservationUnitHierarchyLevel": {
+ "description": "The exact level and level code of an observation unit. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\nMIAPPE V1.1 DM-71 Observation unit type \"Type of observation unit in textual form, usually one of the following: study, block, sub-block, plot, sub-plot, pot, plant. Use of other observation unit types is possible but not recommended. \nThe observation unit type can not be used to indicate sub-plant levels. However, observations can still be made on the sub-plant level, as long as the details are indicated in the associated observed variable (see observed variables). \nAlternatively, it is possible to use samples for more detailed tracing of sub-plant units, attaching the observations to them instead.\" ",
+ "properties": {
+ "levelName": {
+ "description": "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "levelOrder": {
+ "description": "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "required": [],
+ "title": "ObservationUnitHierarchyLevel",
+ "type": "object",
+ "brapi-metadata": {
+ "interface": true
+ }
+ }
+ },
+ "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Common/ObservationUnitHierarchyLevel.json",
+ "$schema": "http://json-schema.org/draft/2020-12/schema"
+}
\ No newline at end of file
diff --git a/Specification/BrAPI-Schema/BrAPI-Common/Species.json b/Specification/BrAPI-Schema/BrAPI-Common/OntologyTerm.json
similarity index 82%
rename from Specification/BrAPI-Schema/BrAPI-Common/Species.json
rename to Specification/BrAPI-Schema/BrAPI-Common/OntologyTerm.json
index 38cab2f7..124a69e9 100644
--- a/Specification/BrAPI-Schema/BrAPI-Common/Species.json
+++ b/Specification/BrAPI-Schema/BrAPI-Common/OntologyTerm.json
@@ -1,14 +1,7 @@
{
"$defs": {
- "Species": {
+ "OntologyTerm": {
"properties": {
- "speciesDbId": {
- "description": "An ontology term describing an attribute.",
- "type": [
- "null",
- "string"
- ]
- },
"term": {
"description": "Ontology term - the label of the ontology term the termId is pointing to.",
"type": [
@@ -36,9 +29,6 @@
"referencedAttribute": "species"
}
},
- "required": [
- "specieDbId"
- ],
"title": "OntologyTerm",
"type": "object",
"brapi-metadata": {
@@ -46,6 +36,6 @@
}
}
},
- "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Common/Species.json",
+ "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Common/OntologyTerm.json",
"$schema": "http://json-schema.org/draft/2020-12/schema"
}
\ No newline at end of file
diff --git a/Specification/BrAPI-Schema/BrAPI-Common/SourceGermplasm.json b/Specification/BrAPI-Schema/BrAPI-Common/SourceGermplasm.json
deleted file mode 100644
index 36aa1572..00000000
--- a/Specification/BrAPI-Schema/BrAPI-Common/SourceGermplasm.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "$defs": {
- "SourceGermplasm": {
- "properties": {
- "germplasmName": {
- "description": "The human readable name of a `Germplasm`",
- "type": [
- "null",
- "string"
- ]
- },
- "reference": {
- "description": "Germplasm associated with a reference",
- "$ref": "../BrAPI-Genotyping/Reference.json#/$defs/Reference",
- "relationshipType": "many-to-one",
- "referencedAttribute": "sourceGermplasm"
- },
- "referenceSet": {
- "description": "Germplasm associated with a reference",
- "$ref": "../BrAPI-Genotyping/ReferenceSet.json#/$defs/ReferenceSet",
- "relationshipType": "many-to-one",
- "referencedAttribute": "sourceGermplasm"
- }
- },
- "title": "sourceGermplasm",
- "type": "object",
- "brapi-metadata": {
- "primaryModel": false
- }
- }
- },
- "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Common/SourceGermplasm.json",
- "$schema": "http://json-schema.org/draft/2020-12/schema"
-}
\ No newline at end of file
diff --git a/Specification/BrAPI-Schema/BrAPI-Common/Variable.json b/Specification/BrAPI-Schema/BrAPI-Common/Variable.json
index 76726591..98a8264e 100644
--- a/Specification/BrAPI-Schema/BrAPI-Common/Variable.json
+++ b/Specification/BrAPI-Schema/BrAPI-Common/Variable.json
@@ -2,13 +2,6 @@
"$defs": {
"Variable": {
"properties": {
- "variableDbId": {
- "description": "Unique identifier for the Variable",
- "type": [
- "null",
- "string"
- ]
- },
"additionalInfo": {
"description": "A free space containing any additional information related to a particular object. A data source may provide any JSON object, unrestricted by the BrAPI specification.",
"$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo",
diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Study.json b/Specification/BrAPI-Schema/BrAPI-Core/Study.json
index 7154840a..68c83b51 100644
--- a/Specification/BrAPI-Schema/BrAPI-Core/Study.json
+++ b/Specification/BrAPI-Schema/BrAPI-Core/Study.json
@@ -100,12 +100,9 @@
},
"growthFacility": {
"description": "Short description of the facility in which the study was carried out.",
- "relationshipType": "one-to-many",
+ "relationshipType": "many-to-one",
"referencedAttribute": "study",
- "items": {
- "$ref": "../BrAPI-Core/Study.json#/$defs/GrowthFacility",
- "description": "GrowthFacility"
- }
+ "$ref": "../BrAPI-Core/Study.json#/$defs/GrowthFacility"
},
"lastUpdate": {
"description": "The date and time when this study was last modified",
@@ -129,9 +126,8 @@
"observationLevels": {
"description": "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
"relationshipType": "one-to-many",
- "referencedAttribute": "study",
"items": {
- "$ref": "../BrAPI-Core/Study.json#/$defs/ObservationLevels",
+ "$ref": "../BrAPI-Common/ObservationUnitHierarchyLevel.json#/$defs/ObservationUnitHierarchyLevel",
"description": "ObservationLevels"
},
"title": "ObservationLevels",
@@ -394,10 +390,6 @@
},
"ExperimentalDesign": {
"properties": {
- "experimentalDesignDbId": {
- "description": "The experimental and statistical design full description plus a category PUI taken from crop research ontology or agronomy ontology",
- "type": "string"
- },
"PUI": {
"description": "MIAPPE V1.1 (DM-23) Type of experimental design - Type of experimental design of the study, in the form of an accession number from the Crop Ontology.",
"type": [
@@ -419,9 +411,6 @@
"referencedAttribute": "experimentalDesign"
}
},
- "required": [
- "experimentalDesignDbId"
- ],
"title": "ExperimentalDesign",
"type": "object",
"brapi-metadata": {
@@ -430,10 +419,6 @@
},
"GrowthFacility": {
"properties": {
- "growthFacilityDbId": {
- "description": "Short description of the facility in which the study was carried out.",
- "type": "string"
- },
"PUI": {
"description": "MIAPPE V1.1 (DM-27) Type of growth facility - Type of growth facility in which the study was carried out, in the form of an accession number from the Crop Ontology.",
"type": [
@@ -455,9 +440,6 @@
"referencedAttribute": "growthFacility"
}
},
- "required": [
- "growthFacilityDbId"
- ],
"title": "GrowthFacility",
"type": "object",
"brapi-metadata": {
@@ -498,42 +480,6 @@
"brapi-metadata": {
"primaryModel": false
}
- },
- "ObservationLevels": {
- "properties": {
- "observationLevelsDbId": {
- "description": "Observation levels indicate the granularity level at which the measurements are taken. `levelName` defines the level, `levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are at the bottom of the hierarchy (ie plant > 6). ",
- "type": "string"
- },
- "levelName": {
- "description": "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
- "type": [
- "null",
- "string"
- ]
- },
- "levelOrder": {
- "description": "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
- "type": [
- "null",
- "integer"
- ]
- },
- "study": {
- "description": "Observation levels associated with a study",
- "$ref": "../BrAPI-Core/Study.json#/$defs/Study",
- "relationshipType": "many-to-one",
- "referencedAttribute": "observationLevels"
- }
- },
- "required": [
- "observationLevelsDbId"
- ],
- "title": "ObservationUnitHierarchyLevel",
- "type": "object",
- "brapi-metadata": {
- "primaryModel": false
- }
}
},
"$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Core/Study.json",
diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Trial.json b/Specification/BrAPI-Schema/BrAPI-Core/Trial.json
index 9db766c2..d4cc0259 100644
--- a/Specification/BrAPI-Schema/BrAPI-Core/Trial.json
+++ b/Specification/BrAPI-Schema/BrAPI-Core/Trial.json
@@ -99,7 +99,7 @@
"relationshipType": "one-to-many",
"referencedAttribute": "trial",
"items": {
- "$ref": "../BrAPI-Core/Trial.json#/$defs/Publications",
+ "$ref": "../BrAPI-Core/Trial.json#/$defs/Publication",
"description": "Publications"
},
"title": "Publications",
@@ -192,10 +192,6 @@
},
"DatasetAuthorships": {
"properties": {
- "datasetAuthorshipsDbId": {
- "description": "License and citation information for the data in this trial",
- "type": "string"
- },
"datasetPUI": {
"description": "The DOI or other permanent unique identifier for this published dataset",
"type": [
@@ -231,21 +227,14 @@
"referencedAttribute": "datasetAuthorships"
}
},
- "required": [
- "datasetAuthorshipsDbId"
- ],
"title": "DatasetAuthorships",
"type": "object",
"brapi-metadata": {
"primaryModel": false
}
},
- "Publications": {
+ "Publication": {
"properties": {
- "publicationsDbId": {
- "description": "MIAPPE V1.1 (DM-9) Associated publication - An identifier for a literature publication where the investigation is described. Use of DOIs is recommended.",
- "type": "string"
- },
"publicationPUI": {
"type": [
"null",
@@ -265,10 +254,7 @@
"referencedAttribute": "publications"
}
},
- "required": [
- "publicationsDbId"
- ],
- "title": "Publications",
+ "title": "Publication",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json
index 2c3064f3..fe22bfef 100644
--- a/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json
+++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json
@@ -16,7 +16,7 @@
"relationshipType": "one-to-many",
"referencedAttribute": "alleleMatrix",
"items": {
- "$ref": "../BrAPI-Genotyping/AlleleMatrix.json#/$defs/DataMatrices",
+ "$ref": "../BrAPI-Genotyping/AlleleMatrix.json#/$defs/DataMatrix",
"description": "DataMatrices"
},
"title": "DataMatrices",
@@ -96,12 +96,8 @@
"primaryModel": true
}
},
- "DataMatrices": {
+ "DataMatrix": {
"properties": {
- "dataMatricesDbId": {
- "description": "This is a single data matrix. It could be the allele matrix or an additional layer of metadata associated with each genotype value.",
- "type": "string"
- },
"dataMatrix": {
"description": "The two dimensional array of data, providing the allele matrix or an additional layer of metadata associated with each genotype value. Each matrix should be the same size and orientation, aligned with the \"callSetDbIds\" as columns and the \"variantDbIds\" as rows.",
"items": {
@@ -152,9 +148,6 @@
"referencedAttribute": "dataMatrices"
}
},
- "required": [
- "dataMatricesDbId"
- ],
"title": "DataMatrix",
"type": "object",
"brapi-metadata": {
@@ -163,10 +156,6 @@
},
"Pagination": {
"properties": {
- "paginationDbId": {
- "description": "Pagination for the matrix",
- "type": "string"
- },
"dimension": {
"description": "The dimension of the matrix being paginated",
"enum": [
@@ -208,15 +197,12 @@
]
},
"alleleMatrix": {
- "description": "Pgination associated with an alleleMatrix",
+ "description": "Pagination associated with an alleleMatrix",
"$ref": "../BrAPI-Genotyping/AlleleMatrix.json#/$defs/AlleleMatrix",
"relationshipType": "many-to-one",
"referencedAttribute": "pagination"
}
},
- "required": [
- "paginationDbId"
- ],
"title": "Pagination",
"type": "object",
"brapi-metadata": {
diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json
index 1343da47..fdb5002a 100644
--- a/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json
+++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json
@@ -67,10 +67,6 @@
},
"GenotypeMetadata": {
"properties": {
- "genotypeMetadataDbId": {
- "description": "MIAPPE V1.1 (DM-9) Associated publication - An identifier for a literature publication where the investigation is described. Use of DOIs is recommended.",
- "type": "string"
- },
"dataType": {
"description": "The type of field represented in this Genotype Field. This is intended to help parse the data out of JSON.",
"enum": [
@@ -113,9 +109,6 @@
"referencedAttribute": "genotypeMetadata"
}
},
- "required": [
- "genotypeMetadataDbId"
- ],
"title": "GenotypeMetadata",
"type": "object",
"brapi-metadata": {
diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json
index 951759ff..912dce94 100644
--- a/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json
+++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json
@@ -84,7 +84,7 @@
"relationshipType": "one-to-many",
"referencedAttribute": "reference",
"items": {
- "$ref": "../BrAPI-Common/SourceGermplasm.json#/$defs/SourceGermplasm",
+ "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm",
"description": "SourceGermplasm"
},
"title": "SourceGermplasm",
@@ -104,7 +104,7 @@
"description": "An ontology term describing an attribute.",
"relationshipType": "one-to-one",
"referencedAttribute": "reference",
- "$ref": "../BrAPI-Common/Species.json#/$defs/Species"
+ "$ref": "../BrAPI-Common/OntologyTerm.json#/$defs/OntologyTerm"
},
"variants": {
"title": "variants",
diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json
index bbfe7ab4..8cede9b8 100644
--- a/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json
+++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json
@@ -78,7 +78,7 @@
"relationshipType": "one-to-many",
"referencedAttribute": "referenceSet",
"items": {
- "$ref": "../BrAPI-Common/SourceGermplasm.json#/$defs/SourceGermplasm",
+ "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm",
"description": "SourceGermplasm"
},
"title": "SourceGermplasm",
@@ -98,7 +98,7 @@
"description": "An ontology term describing an attribute.",
"relationshipType": "one-to-one",
"referencedAttribute": "referenceSet",
- "$ref": "../BrAPI-Common/Species.json#/$defs/Species"
+ "$ref": "../BrAPI-Common/OntologyTerm.json#/$defs/OntologyTerm"
},
"references": {
"title": "references",
diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json
index f6316099..7947a929 100644
--- a/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json
+++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json
@@ -63,11 +63,17 @@
"array"
]
},
- "availableFormat": {
+ "availableFormats": {
"description": "When the data for a VariantSet is retrieved, it can be retrieved in a variety of data formats and file formats. \n
'dataFormat' defines the structure of the data within a file (ie DartSeq, VCF, Hapmap, tabular, etc)\n
'fileFormat' defines the MIME type of the file (ie text/csv, application/excel, application/zip). This should also be reflected in the Accept and ContentType HTTP headers for every relevant request and response.",
- "relationshipType": "one-to-one",
- "referencedAttribute": "variantSet",
- "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/AvailableFormat"
+ "relationshipType": "many-to-many",
+ "items": {
+ "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/AvailableFormat"
+ },
+ "type": [
+ "null",
+ "array"
+ ],
+ "referencedAttribute": "variantSet"
},
"callSetCount": {
"description": "The number of CallSets included in this VariantSet",
@@ -89,11 +95,17 @@
"array"
]
},
- "metadataField": {
+ "metadataFields": {
"description": "The 'metadataField' indicates which types of genotyping data and metadata are available in the VariantSet. \n
When possible, these field names and abbreviations should follow the VCF standard ",
- "relationshipType": "one-to-one",
+ "relationshipType": "one-to-many",
"referencedAttribute": "variantSet",
- "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/MetadataField"
+ "items": {
+ "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/MetadataField"
+ },
+ "type": [
+ "null",
+ "array"
+ ]
},
"referenceSet": {
"$ref": "ReferenceSet.json#/$defs/ReferenceSet",
@@ -296,7 +308,7 @@
"referencedAttribute": "availableFormats"
}
},
- "title": "AvailableFormats",
+ "title": "AvailableFormat",
"type": "object",
"brapi-metadata": {
"primaryModel": false
@@ -304,13 +316,6 @@
},
"MetadataField": {
"properties": {
- "metadataFieldDbId": {
- "description": "This represents a type of genotyping data or metadata available in this VariantSet",
- "type": [
- "null",
- "string"
- ]
- },
"dataType": {
"description": "The type of field represented in this Genotype Field. This is intended to help parse the data out of JSON.",
"enum": [
@@ -346,10 +351,7 @@
"referencedAttribute": "metadataFields"
}
},
- "required": [
- "metadataFieldDbId"
- ],
- "title": "MetadataFields",
+ "title": "MetadataField",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json
index 2ff37b76..cac97eda 100644
--- a/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json
+++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json
@@ -130,7 +130,7 @@
"referencedAttribute": "crossAttributes"
}
},
- "title": "CrossAttributes",
+ "title": "CrossAttribute",
"type": "object",
"brapi-metadata": {
"primaryModel": true
@@ -161,13 +161,13 @@
]
},
"cross": {
- "description": "polunation events associated with a cross",
+ "description": "Pollination events associated with a cross",
"$ref": "../BrAPI-Germplasm/Cross.json#/$defs/Cross",
"relationshipType": "many-to-one",
"referencedAttribute": "pollinationEvents"
}
},
- "title": "PollinationEvents",
+ "title": "PollinationEvent",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json
index 181ba952..bbc383a4 100644
--- a/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json
+++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json
@@ -2,13 +2,6 @@
"$defs": {
"CrossParent": {
"properties": {
- "crossParentDbId": {
- "description": "The ID which uniquely identifies a cross parent",
- "type": [
- "null",
- "string"
- ]
- },
"germplasm": {
"description": "the germplasm of the cross parent",
"relationshipType": "one-to-one",
@@ -20,7 +13,7 @@
},
"observationUnit": {
"description": "the Observation Unit of the cross parent",
- "relationshipType": "one-to-one",
+ "relationshipType": "many-to-one",
"$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/ObservationUnit",
"type": [
"null",
diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json
index cc1d0e53..fad2002f 100644
--- a/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json
+++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json
@@ -65,12 +65,6 @@
"referencedAttribute": "germplasm",
"relationshipType": "many-to-one"
},
- "pedigreeNode": {
- "$ref": "PedigreeNode.json#/$defs/PedigreeNode",
- "description": "The unique identifier for the node in the pedigree tree associated with a germplasm",
- "referencedAttribute": "germplasm",
- "relationshipType": "one-to-one"
- },
"collection": {
"description": "A specific panel/collection/population name this germplasm belongs to.",
"type": [
@@ -370,6 +364,18 @@
"null",
"array"
]
+ },
+ "reference": {
+ "description": "Germplasm associated with a reference",
+ "$ref": "../BrAPI-Genotyping/Reference.json#/$defs/Reference",
+ "relationshipType": "many-to-one",
+ "referencedAttribute": "sourceGermplasm"
+ },
+ "referenceSet": {
+ "description": "Germplasm associated with a reference",
+ "$ref": "../BrAPI-Genotyping/ReferenceSet.json#/$defs/ReferenceSet",
+ "relationshipType": "many-to-one",
+ "referencedAttribute": "sourceGermplasm"
}
},
"required": [
@@ -386,10 +392,6 @@
},
"Donor": {
"properties": {
- "donorDbId": {
- "description": "the unique identifier for a donor",
- "type": "string"
- },
"donorAccessionNumber": {
"description": "The accession number assigned by the donor\n\nMCPD (v2.1) (DONORNUMB) 23. Identifier assigned to an accession by the donor. Follows ACCENUMB standard.",
"type": [
@@ -414,7 +416,7 @@
"required": [
"donorDbId"
],
- "title": "Donors",
+ "title": "Donor",
"type": "object",
"brapi-metadata": {
"primaryModel": false
@@ -475,7 +477,8 @@
"type": [
"null",
"string"
- ]
+ ],
+ "title": "StorageTypeCode"
},
"description": {
"description": "A supplemental text description of the storage type",
@@ -491,7 +494,7 @@
"referencedAttribute": "storageTypes"
}
},
- "title": "StorageTypes",
+ "title": "StorageType",
"type": "object",
"brapi-metadata": {
"primaryModel": false
@@ -499,10 +502,6 @@
},
"Synonym": {
"properties": {
- "synonymDbId": {
- "description": "the unique identifier for a synonym",
- "type": "string"
- },
"synonym": {
"description": "Alternative name or ID used to reference this germplasm",
"type": [
@@ -524,10 +523,7 @@
"referencedAttribute": "synonyms"
}
},
- "required": [
- "synonymDbId"
- ],
- "title": "Synonyms",
+ "title": "Synonym",
"type": "object",
"brapi-metadata": {
"primaryModel": false
@@ -535,10 +531,6 @@
},
"TaxonId": {
"properties": {
- "taxonDbId": {
- "description": "The identifier (name, ID, URI) of a particular taxonomy within the source provider",
- "type": "string"
- },
"taxonId": {
"description": "The identifier (name, ID, URI) of a particular taxonomy within the source provider",
"type": "string"
@@ -559,7 +551,7 @@
"taxonDbId",
"taxonId"
],
- "title": "TaxonIds",
+ "title": "TaxonId",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/GermplasmAttribute.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/GermplasmAttribute.json
index 91214cd2..fb37543c 100644
--- a/Specification/BrAPI-Schema/BrAPI-Germplasm/GermplasmAttribute.json
+++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/GermplasmAttribute.json
@@ -8,13 +8,6 @@
{
"type": "object",
"properties": {
- "germplasmAttributeDbId": {
- "description": "The ID which uniquely identifies a germplasm attribute",
- "type": [
- "null",
- "string"
- ]
- },
"attributeValues": {
"title": "attributeValues",
"description": "attributeValues",
diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json
index a38e7dc1..62395243 100644
--- a/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json
+++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json
@@ -126,13 +126,9 @@
},
"GermplasmParent": {
"properties": {
- "germplasmParentDbId": {
- "description": "a unique identifiere for a parent",
- "type": "string"
- },
"parentGermplasm": {
"$ref": "Germplasm.json#/$defs/Germplasm",
- "description": "The ID which uniquely identifies a parent germplasm",
+ "description": "The parent germplasm",
"referencedAttribute": "progenyPedigreeNodes",
"relationshipType": "many-to-one"
},
@@ -148,11 +144,10 @@
}
},
"required": [
- "parentDbId",
"parentGermplasm",
"parentType"
],
- "title": "Parents",
+ "title": "GermplasmParent",
"type": "object",
"brapi-metadata": {
"primaryModel": false
@@ -160,13 +155,9 @@
},
"GermplasmChild": {
"properties": {
- "germplasmChildDbId": {
- "description": "a unique identifiere for a progeny",
- "type": "string"
- },
- "progenyGermplasm": {
+ "childGermplasm": {
"$ref": "Germplasm.json#/$defs/Germplasm",
- "description": "The ID which uniquely identifies a parent germplasm",
+ "description": "The child germplasm",
"referencedAttribute": "parentPedigreeNodes",
"relationshipType": "many-to-one"
},
@@ -182,11 +173,10 @@
}
},
"required": [
- "germplasmChildDbId",
- "progenyGermplasm",
+ "childGermplasm",
"parentType"
],
- "title": "Progeny",
+ "title": "GermplasmChild",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json
index 34dd2460..57d26cde 100644
--- a/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json
+++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json
@@ -60,7 +60,8 @@
"type": [
"null",
"string"
- ]
+ ],
+ "title": "PlannedCrossStatus"
},
"crosses": {
"title": "crosses",
diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json
index dc7f3a54..0ab0c67f 100644
--- a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json
+++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json
@@ -160,26 +160,15 @@
},
"ContentMixture": {
"properties": {
- "crossName": {
- "description": "The human readable name for a cross contained in this seed lot",
- "type": [
- "null",
- "string"
- ]
- },
- "germplasmDbId": {
- "description": "The unique DbId of the Germplasm contained in this Seed Lot",
- "type": [
- "null",
- "string"
- ]
+ "cross": {
+ "$ref": "Cross.json#/$defs/Cross",
+ "description": "The cross for the germplasm using in this content mixture",
+ "relationshipType": "many-to-one"
},
- "germplasmName": {
- "description": "The human readable name of the Germplasm contained in this Seed Lot",
- "type": [
- "null",
- "string"
- ]
+ "germplasm": {
+ "$ref": "Germplasm.json#/$defs/Germplasm",
+ "description": "The germplasm using in this content mixture",
+ "relationshipType": "many-to-one"
},
"mixturePercentage": {
"description": "The percentage of the given germplasm in the seed lot mixture.",
diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json
index 47aa724a..2b840ee4 100644
--- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json
+++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json
@@ -189,7 +189,7 @@
"referencedAttribute": "eventParameters"
}
},
- "title": "EventParameters",
+ "title": "EventParameter",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json
index 7b312820..9a7247b0 100644
--- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json
+++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json
@@ -210,7 +210,7 @@
},
"observationLevelRelationships": {
"description": "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ",
- "relationshipType": "one-to-one",
+ "relationshipType": "one-to-many",
"items": {
"$ref": "../BrAPI-Phenotyping/ObservationUnitLevelRelationship.json#/$defs/ObservationUnitLevelRelationship"
},
@@ -284,10 +284,6 @@
},
"Treatment": {
"properties": {
- "treatmentDbId": {
- "description": "the unique identifier for a treatment",
- "type": "string"
- },
"factor": {
"description": "The type of treatment/factor. ex. 'fertilizer', 'inoculation', 'irrigation', etc\n\nMIAPPE V1.1 (DM-61) Experimental Factor type - Name/Acronym of the experimental factor.",
"type": [
@@ -309,10 +305,7 @@
"referencedAttribute": "treatments"
}
},
- "required": [
- "treatmentDbId"
- ],
- "title": "Treatments",
+ "title": "Treatment",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json
index 95f669cf..9bc6fc5e 100644
--- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json
+++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json
@@ -2,39 +2,23 @@
"$defs": {
"ObservationUnitLevel": {
"description": "The exact level and level code of an observation unit. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\nMIAPPE V1.1 DM-71 Observation unit type \"Type of observation unit in textual form, usually one of the following: study, block, sub-block, plot, sub-plot, pot, plant. Use of other observation unit types is possible but not recommended. \nThe observation unit type can not be used to indicate sub-plant levels. However, observations can still be made on the sub-plant level, as long as the details are indicated in the associated observed variable (see observed variables). \nAlternatively, it is possible to use samples for more detailed tracing of sub-plant units, attaching the observations to them instead.\" ",
- "properties": {
- "levelCode": {
- "description": "An ID code or number to represent a real thing that may or may not be an an observation unit.\n
For example, if the 'levelName' is 'plot', then the 'levelCode' would be the plot number or plot barcode. If this plot is also considered an ObservationUnit, then the appropriate observationUnitDbId should also be recorded.\n
If the 'levelName' is 'field', then the 'levelCode' might be something like '3' or 'F3' to indicate the third field at a research station. ",
- "type": [
- "null",
- "string"
- ]
+ "allOf": [
+ {
+ "$ref": "../BrAPI-Common/ObservationUnitHierarchyLevel.json#/$defs/ObservationUnitHierarchyLevel"
},
- "levelName": {
- "description": "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
- "type": [
- "null",
- "string"
- ]
- },
- "levelOrder": {
- "description": "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
- "type": [
- "null",
- "integer"
- ]
- },
- "observationUnitLevelDbId": {
- "description": "The ID which uniquely identifies a observation unit level",
- "type": [
- "null",
- "string"
- ]
+ {
+ "type": "object",
+ "properties": {
+ "levelCode": {
+ "description": "An ID code or number to represent a real thing that may or may not be an an observation unit.\n
For example, if the 'levelName' is 'plot', then the 'levelCode' would be the plot number or plot barcode. If this plot is also considered an ObservationUnit, then the appropriate observationUnitDbId should also be recorded.\n
If the 'levelName' is 'field', then the 'levelCode' might be something like '3' or 'F3' to indicate the third field at a research station. ",
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ }
}
- },
- "required": [],
- "title": "ObservationUnitLevel",
- "type": "object"
+ ]
}
},
"$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json",
diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json
index 4ebf7161..fb63808f 100644
--- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json
+++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json
@@ -2,45 +2,21 @@
"$defs": {
"ObservationUnitLevelRelationship": {
"description": "Observation levels indicate the granularity level at which the measurements are taken. `levelName` \ndefines the level, `levelOrder` defines where that level exists in the hierarchy of levels. \n`levelOrder`s lower numbers are at the top of the hierarchy (ie field > 0) and higher numbers are \nat the bottom of the hierarchy (ie plant > 6). `levelCode` is an ID code for this level tag. Identify \nthis observation unit by each level of the hierarchy where it exists. \n\nFor more information on Observation Levels, please review the Observation Levels documentation. \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** ",
- "properties": {
- "levelCode": {
- "description": "An ID code or number to represent a real thing that may or may not be an an observation unit.\n
For example, if the 'levelName' is 'plot', then the 'levelCode' would be the plot number or plot barcode. If this plot is also considered an ObservationUnit, then the appropriate observationUnitDbId should also be recorded.\n
If the 'levelName' is 'field', then the 'levelCode' might be something like '3' or 'F3' to indicate the third field at a research station. ",
- "type": [
- "null",
- "string"
- ]
+ "allOf": [
+ {
+ "$ref": "../BrAPI-Phenotyping/ObservationUnitLevel.json#/$defs/ObservationUnitLevel"
},
- "levelName": {
- "description": "A name for this level \n\n**Standard Level Names: study, field, entry, rep, block, sub-block, plot, sub-plot, plant, pot, sample** \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
- "type": [
- "null",
- "string"
- ]
- },
- "levelOrder": {
- "description": "`levelOrder` defines where that level exists in the hierarchy of levels. `levelOrder`'s lower numbers \nare at the top of the hierarchy (ie field -> 1) and higher numbers are at the bottom of the hierarchy (ie plant -> 9). \n\nFor more information on Observation Levels, please review the Observation Levels documentation. ",
- "type": [
- "null",
- "integer"
- ]
- },
- "observationUnitDbId": {
- "description": "The ID which uniquely identifies an observation unit\n
If this level has on ObservationUnit associated with it, record the observationUnitDbId here. This is intended to construct a strict hierarchy of observationUnits. \n
If there is no ObservationUnit associated with this level, this field can set to NULL or omitted from the response.",
- "type": [
- "null",
- "string"
- ]
- },
- "observationUnitLevelRelationshipDbId": {
- "description": "The ID which uniquely identifies a observaton unit level relationship",
- "type": [
- "null",
- "string"
- ]
+ {
+ "type": "object",
+ "properties": {
+ "observationUnit": {
+ "description": "The an observation unit\n
If this level has on ObservationUnit associated with it, record the observationUnitDbId here. This is intended to construct a strict hierarchy of observationUnits. \n
If there is no ObservationUnit associated with this level, this field can set to NULL or omitted from the response.",
+ "$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/ObservationUnit",
+ "relationshipType": "one-to-one"
+ }
+ }
}
- },
- "title": "ObservationUnitLevelRelationship",
- "type": "object"
+ ]
}
},
"$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json",
diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json
index 73131985..a2050bca 100644
--- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json
+++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json
@@ -73,7 +73,7 @@
"referencedAttribute": "documentationLinks"
}
},
- "title": "DocumentationLinks",
+ "title": "DocumentationLink",
"type": "object",
"brapi-metadata": {
"primaryModel": false
diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json
index 55a6b9eb..436304b0 100644
--- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json
+++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json
@@ -72,12 +72,9 @@
]
},
"validValues": {
- "relationshipType": "one-to-many",
+ "relationshipType": "one-to-one",
"referencedAttribute": "scale",
- "items": {
- "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/ValidValue",
- "description": "ValidValues"
- },
+ "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/ValidValues",
"title": "ValidValues",
"type": [
"null",
@@ -102,7 +99,7 @@
"relationshipType": "one-to-many",
"referencedAttribute": "validValues",
"items": {
- "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/Category",
+ "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/ValidValuesCategory",
"description": "Categories"
},
"title": "Categories",
@@ -138,7 +135,7 @@
"primaryModel": false
}
},
- "Category": {
+ "ValidValuesCategory": {
"properties": {
"label": {
"description": "A text label for a category",
@@ -161,7 +158,7 @@
"referencedAttribute": "categories"
}
},
- "title": "Categories",
+ "title": "ValidValuesCategory",
"type": "object",
"brapi-metadata": {
"primaryModel": false