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..f4ff5c1f 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" @@ -21,35 +14,8 @@ "default": "Feature", "example": "Feature", "description": "The literal string \"Feature\"" - }, - "image": { - "description": "Geometry associated with an image", - "$ref": "../BrAPI-Phenotyping/Image.json#/$defs/Image", - "relationshipType": "many-to-one", - "referencedAttribute": "imageLocation" - }, - "observation": { - "description": "Geometry associated with an image", - "$ref": "../BrAPI-Phenotyping/Observation.json#/$defs/Observation", - "relationshipType": "many-to-one", - "referencedAttribute": "geoCoordinates" - }, - "observationUnit": { - "description": "Geometry associated with an image", - "$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/ObservationUnitPosition", - "relationshipType": "many-to-one", - "referencedAttribute": "geoCoordinates" - }, - "germplasmOrigin": { - "description": "Geometry associated with an image", - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/GermplasmOrigin", - "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/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/Species.json b/Specification/BrAPI-Schema/BrAPI-Common/Species.json deleted file mode 100644 index 38cab2f7..00000000 --- a/Specification/BrAPI-Schema/BrAPI-Common/Species.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "$defs": { - "Species": { - "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": [ - "null", - "string" - ] - }, - "termURI": { - "description": "Ontology term identifier - the CURIE for an ontology term. It differs from the standard GA4GH schema's :ref:`id ` in that it is a CURIE pointing to an information resource outside of the scope of the schema or its resource implementation.", - "type": [ - "null", - "string" - ] - }, - "reference": { - "description": "Species associated with a reference", - "$ref": "../BrAPI-Genotyping/Reference.json#/$defs/Reference", - "relationshipType": "many-to-one", - "referencedAttribute": "species" - }, - "referenceSet": { - "description": "Species associated with a referenceSet", - "$ref": "../BrAPI-Genotyping/ReferenceSet.json#/$defs/ReferenceSet", - "relationshipType": "many-to-one", - "referencedAttribute": "species" - } - }, - "required": [ - "specieDbId" - ], - "title": "OntologyTerm", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - } - }, - "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Common/Species.json", - "$schema": "http://json-schema.org/draft/2020-12/schema" -} \ No newline at end of file diff --git a/Specification/BrAPI-Schema/BrAPI-Common/TraitDataType.json b/Specification/BrAPI-Schema/BrAPI-Common/TraitDataType.json index 0c59c314..04f29987 100644 --- a/Specification/BrAPI-Schema/BrAPI-Common/TraitDataType.json +++ b/Specification/BrAPI-Schema/BrAPI-Common/TraitDataType.json @@ -15,6 +15,6 @@ "example": "Numerical" } }, - "$id": "https://brapi.org/Specification/BrAPI-Schema/Components/Common/TraitDataType.json", + "$id": "https://brapi.org/Specification/BrAPI-Schema/Components/Common/AdditionalInfo.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..48997adb 100644 --- a/Specification/BrAPI-Schema/BrAPI-Common/Variable.json +++ b/Specification/BrAPI-Schema/BrAPI-Common/Variable.json @@ -2,17 +2,9 @@ "$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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "commonCropName": { "description": "Crop name (examples: \"Maize\", \"Wheat\")", @@ -48,10 +40,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -82,17 +72,14 @@ }, "method": { "description": "A description of the way an Observation should be collected. \n
For example, an ObservationVariable might be defined with a Trait of \"plant height\", a Scale of \"meters\", and a Method of \"tape measure\". This variable would be distinct from a variable with the Method \"estimation\" or \"drone image processing\". ", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/Method.json#/$defs/Method" }, "ontologyReference": { "description": "MIAPPE V1.1\n\n(DM-85) Variable accession number - Accession number of the variable in the Crop Ontology\n\n(DM-87) Trait accession number - Accession number of the trait in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-89) Method accession number - Accession number of the method in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-93) Scale accession number - Accession number of the scale in a suitable controlled vocabulary (Crop Ontology).", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/OntologyReference.json#/$defs/OntologyReference" }, "scale": { "description": "A Scale describes the units and acceptable values for an ObservationVariable. \n
For example, an ObservationVariable might be defined with a Trait of \"plant height\", a Scale of \"meters\", and a Method of \"tape measure\". This variable would be distinct from a variable with the Scale \"inches\" or \"pixels\".", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/Scale" }, "scientist": { @@ -129,7 +116,6 @@ }, "trait": { "description": "A Trait describes what property is being observed. \n
For example, an ObservationVariable might be defined with a Trait of \"plant height\", a Scale of \"meters\", and a Method of \"tape measure\". This variable would be distinct from a variable with the Trait \"Leaf length\" or \"Flower height\". ", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/Trait.json#/$defs/Trait" } }, diff --git a/Specification/BrAPI-Schema/BrAPI-Core/List.json b/Specification/BrAPI-Schema/BrAPI-Core/List.json index c37cc22d..d6f8d9b7 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/List.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/List.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "data": { "description": "The array of DbIds of the BrAPI objects contained in a List", @@ -36,10 +35,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Location.json b/Specification/BrAPI-Schema/BrAPI-Core/Location.json index bde16ec1..1f0af58b 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/Location.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/Location.json @@ -11,8 +11,7 @@ }, "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "coordinateDescription": { "description": "Describes the precision and landmarks of the coordinate values used for a Location. (ex. the site, the nearest town, a 10 kilometers radius circle, +/- 20 meters, etc)", @@ -30,7 +29,6 @@ }, "coordinates": { "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.", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Common/GeoJSON.json#/$defs/GeoJSON" }, "countryCode": { @@ -71,10 +69,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Person.json b/Specification/BrAPI-Schema/BrAPI-Core/Person.json index cbd8569d..75fb693d 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/Person.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/Person.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "description": { "description": "description of this person", @@ -23,10 +22,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Program.json b/Specification/BrAPI-Schema/BrAPI-Core/Program.json index de38f391..dcfdcee6 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/Program.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/Program.json @@ -11,8 +11,7 @@ }, "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "commonCropName": { "description": "Common name for the crop which this program is for", @@ -31,10 +30,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Core/Study.json b/Specification/BrAPI-Schema/BrAPI-Core/Study.json index 7154840a..450c55ff 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/Study.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/Study.json @@ -11,8 +11,7 @@ }, "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "commonCropName": { "description": "Common name for the crop associated with this study", @@ -67,13 +66,58 @@ }, "environmentParameters": { "description": "Environmental parameters that were kept constant throughout the study and did not change between observation units.\n\nMIAPPE V1.1 (DM-57) Environment - Environmental parameters that were kept constant throughout the study and did not change between observation units or assays. Environment characteristics that vary over time, i.e. environmental variables, should be recorded as Observed Variables (see below).", - "relationshipType": "one-to-many", - "referencedAttribute": "study", "items": { - "$ref": "../BrAPI-Core/Study.json#/$defs/EnvironmentParameters", - "description": "EnvironmentParameters" + "properties": { + "description": { + "description": "Human-readable value of the environment parameter (defined above) constant within the experiment", + "type": "string" + }, + "parameterName": { + "description": "Name of the environment parameter constant within the experiment\n\nMIAPPE V1.1 (DM-58) Environment parameter - Name of the environment parameter constant within the experiment. ", + "type": "string" + }, + "parameterPUI": { + "description": "URI pointing to an ontology class for the parameter", + "type": [ + "null", + "string" + ] + }, + "unit": { + "description": "Unit of the value for this parameter", + "type": [ + "null", + "string" + ] + }, + "unitPUI": { + "description": "URI pointing to an ontology class for the unit", + "type": [ + "null", + "string" + ] + }, + "value": { + "description": "Numerical or categorical value\n\nMIAPPE V1.1 (DM-59) Environment parameter value - Value of the environment parameter (defined above) constant within the experiment.", + "type": [ + "null", + "string" + ] + }, + "valuePUI": { + "description": "URI pointing to an ontology class for the parameter value", + "type": [ + "null", + "string" + ] + } + }, + "required": [ + "parameterName", + "description" + ], + "type": "object" }, - "title": "EnvironmentParameters", "type": [ "null", "array" @@ -81,16 +125,31 @@ }, "experimentalDesign": { "description": "The experimental and statistical design full description plus a category PUI taken from crop research ontology or agronomy ontology", - "relationshipType": "one-to-one", - "referencedAttribute": "study", - "$ref": "../BrAPI-Core/Study.json#/$defs/ExperimentalDesign" + "properties": { + "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": [ + "null", + "string" + ] + }, + "description": { + "description": "MIAPPE V1.1 (DM-22) Description of the experimental design - Short description of the experimental design, possibly including statistical design. In specific cases, e.g. legacy datasets or data computed from several studies, the experimental design can be \"unknown\"/\"NA\", \"aggregated/reduced data\", or simply 'none'.", + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -100,18 +159,48 @@ }, "growthFacility": { "description": "Short description of the facility in which the study was carried out.", - "relationshipType": "one-to-many", - "referencedAttribute": "study", - "items": { - "$ref": "../BrAPI-Core/Study.json#/$defs/GrowthFacility", - "description": "GrowthFacility" - } + "properties": { + "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": [ + "null", + "string" + ] + }, + "description": { + "description": "MIAPPE V1.1 (DM-26) Description of growth facility - Short description of the facility in which the study was carried out.", + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] }, "lastUpdate": { "description": "The date and time when this study was last modified", - "relationshipType": "one-to-one", - "referencedAttribute": "study", - "$ref": "../BrAPI-Core/Study.json#/$defs/LastUpdate" + "properties": { + "timestamp": { + "format": "date-time", + "type": [ + "null", + "string" + ] + }, + "version": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] }, "license": { "description": "The usage license associated with the study data", @@ -127,14 +216,28 @@ "relationshipType": "many-to-one" }, "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", + "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). ", "items": { - "$ref": "../BrAPI-Core/Study.json#/$defs/ObservationLevels", - "description": "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. ", + "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" + ] + } + }, + "title": "ObservationUnitHierarchyLevel", + "type": "object" }, - "title": "ObservationLevels", "type": [ "null", "array" @@ -324,216 +427,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "EnvironmentParameters": { - "properties": { - "description": { - "description": "Human-readable value of the environment parameter (defined above) constant within the experiment", - "type": "string" - }, - "environmentParametersDbId": { - "description": "Human-readable value of the environment parameter (defined above) constant within the experiment", - "type": "string" - }, - "parameterName": { - "description": "Name of the environment parameter constant within the experiment\n\nMIAPPE V1.1 (DM-58) Environment parameter - Name of the environment parameter constant within the experiment. ", - "type": "string" - }, - "parameterPUI": { - "description": "URI pointing to an ontology class for the parameter", - "type": [ - "null", - "string" - ] - }, - "unit": { - "description": "Unit of the value for this parameter", - "type": [ - "null", - "string" - ] - }, - "unitPUI": { - "description": "URI pointing to an ontology class for the unit", - "type": [ - "null", - "string" - ] - }, - "value": { - "description": "Numerical or categorical value\n\nMIAPPE V1.1 (DM-59) Environment parameter value - Value of the environment parameter (defined above) constant within the experiment.", - "type": [ - "null", - "string" - ] - }, - "valuePUI": { - "description": "URI pointing to an ontology class for the parameter value", - "type": [ - "null", - "string" - ] - }, - "study": { - "description": "Environment parameters associated with a study", - "$ref": "../BrAPI-Core/Study.json#/$defs/Study", - "relationshipType": "many-to-one", - "referencedAttribute": "environmentParameters" - } - }, - "required": [ - "environmentParametersDbId", - "parameterName", - "description" - ], - "title": "EnvironmentParameters", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "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": [ - "null", - "string" - ] - }, - "description": { - "description": "MIAPPE V1.1 (DM-22) Description of the experimental design - Short description of the experimental design, possibly including statistical design. In specific cases, e.g. legacy datasets or data computed from several studies, the experimental design can be \"unknown\"/\"NA\", \"aggregated/reduced data\", or simply 'none'.", - "type": [ - "null", - "string" - ] - }, - "study": { - "description": "Experimental design associated with a study", - "$ref": "../BrAPI-Core/Study.json#/$defs/Study", - "relationshipType": "many-to-one", - "referencedAttribute": "experimentalDesign" - } - }, - "required": [ - "experimentalDesignDbId" - ], - "title": "ExperimentalDesign", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "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": [ - "null", - "string" - ] - }, - "description": { - "description": "MIAPPE V1.1 (DM-26) Description of growth facility - Short description of the facility in which the study was carried out.", - "type": [ - "null", - "string" - ] - }, - "study": { - "description": "Growth facility associated with a study", - "$ref": "../BrAPI-Core/Study.json#/$defs/Study", - "relationshipType": "many-to-one", - "referencedAttribute": "growthFacility" - } - }, - "required": [ - "growthFacilityDbId" - ], - "title": "GrowthFacility", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "LastUpdate": { - "properties": { - "lastUpdateDbId": { - "description": "The date and time when this study was last modified", - "type": "string" - }, - "timestamp": { - "format": "date-time", - "type": [ - "null", - "string" - ] - }, - "version": { - "type": [ - "null", - "string" - ] - }, - "study": { - "description": "Last update associated with a study", - "$ref": "../BrAPI-Core/Study.json#/$defs/Study", - "relationshipType": "many-to-one", - "referencedAttribute": "lastUpdate" - } - }, - "required": [ - "lastUpdateDbId" - ], - "title": "LastUpdate", - "type": "object", - "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..5d46c0be 100644 --- a/Specification/BrAPI-Schema/BrAPI-Core/Trial.json +++ b/Specification/BrAPI-Schema/BrAPI-Core/Trial.json @@ -11,8 +11,7 @@ }, "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "commonCropName": { "description": "Common name for the crop associated with this trial", @@ -34,13 +33,39 @@ }, "datasetAuthorships": { "description": "License and citation information for the data in this trial", - "relationshipType": "one-to-many", - "referencedAttribute": "trial", "items": { - "$ref": "../BrAPI-Core/Trial.json#/$defs/DatasetAuthorships", - "description": "DatasetAuthorships" + "properties": { + "datasetPUI": { + "description": "The DOI or other permanent unique identifier for this published dataset", + "type": [ + "null", + "string" + ] + }, + "license": { + "description": "MIAPPE V1.1 (DM-7) License - License for the reuse of the data associated with this investigation. The Creative Commons licenses cover most use cases and are recommended.", + "type": [ + "null", + "string" + ] + }, + "publicReleaseDate": { + "description": "MIAPPE V1.1 (DM-6) Public release date - Date of first public release of the dataset presently being described.", + "type": [ + "null", + "string" + ] + }, + "submissionDate": { + "description": "MIAPPE V1.1 (DM-5) Submission date - Date of submission of the dataset presently being described to a host repository.", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "DatasetAuthorships", "type": [ "null", "array" @@ -63,10 +88,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -96,13 +119,23 @@ }, "publications": { "description": "MIAPPE V1.1 (DM-9) Associated publication - An identifier for a literature publication where the investigation is described. Use of DOIs is recommended.", - "relationshipType": "one-to-many", - "referencedAttribute": "trial", "items": { - "$ref": "../BrAPI-Core/Trial.json#/$defs/Publications", - "description": "Publications" + "properties": { + "publicationPUI": { + "type": [ + "null", + "string" + ] + }, + "publicationReference": { + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "Publications", "type": [ "null", "array" @@ -189,90 +222,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "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": [ - "null", - "string" - ] - }, - "license": { - "description": "MIAPPE V1.1 (DM-7) License - License for the reuse of the data associated with this investigation. The Creative Commons licenses cover most use cases and are recommended.", - "type": [ - "null", - "string" - ] - }, - "publicReleaseDate": { - "description": "MIAPPE V1.1 (DM-6) Public release date - Date of first public release of the dataset presently being described.", - "type": [ - "null", - "string" - ] - }, - "submissionDate": { - "description": "MIAPPE V1.1 (DM-5) Submission date - Date of submission of the dataset presently being described to a host repository.", - "type": [ - "null", - "string" - ] - }, - "trial": { - "description": "Dataset authorships associated with a trial", - "$ref": "../BrAPI-Core/Trial.json#/$defs/Trial", - "relationshipType": "many-to-one", - "referencedAttribute": "datasetAuthorships" - } - }, - "required": [ - "datasetAuthorshipsDbId" - ], - "title": "DatasetAuthorships", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "Publications": { - "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", - "string" - ] - }, - "publicationReference": { - "type": [ - "null", - "string" - ] - }, - "trial": { - "description": "Publications associated with a trial", - "$ref": "../BrAPI-Core/Trial.json#/$defs/Trial", - "relationshipType": "many-to-one", - "referencedAttribute": "publications" - } - }, - "required": [ - "publicationsDbId" - ], - "title": "Publications", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Core/Trial.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json index 2c3064f3..4d3cd904 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json @@ -13,13 +13,56 @@ }, "dataMatrices": { "description": "The 'dataMatrices' are an array of matrix objects that hold the allele data and associated metadata. Each matrix should be the same size and orientation, aligned with the \"callSetDbIds\" as columns and the \"variantDbIds\" as rows.", - "relationshipType": "one-to-many", - "referencedAttribute": "alleleMatrix", "items": { - "$ref": "../BrAPI-Genotyping/AlleleMatrix.json#/$defs/DataMatrices", - "description": "DataMatrices" + "description": "This is a single data matrix. It could be the allele matrix or an additional layer of metadata associated with each genotype value.", + "title": "DataMatrix", + "properties": { + "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": { + "description": "An array of rows in the data matrix", + "items": { + "description": "All the values per row (columns) in the data matrix", + "type": "string" + }, + "type": "array" + }, + "type": [ + "null", + "array" + ] + }, + "dataMatrixAbbreviation": { + "description": "The abbreviated code of the field represented in this data matrix. These codes should match the VCF standard when possible and the key word \"GT\" is reserved for the allele matrix. Examples of other metadata matrices include: \"GQ\", \"RD\", and \"HQ\"\n
This maps to a FORMAT field in the VCF file standard.", + "type": [ + "null", + "string" + ] + }, + "dataMatrixName": { + "description": "The name of the field represented in this data matrix. The key word \"Genotype\" is reserved for the allele matrix. Examples of other metadata matrices include: \"Genotype Quality\", \"Read Depth\", and \"Haplotype Quality\"\n
This maps to a FORMAT field in the VCF file standard.", + "type": [ + "null", + "string" + ] + }, + "dataType": { + "description": "The type of field represented in this data matrix. This is intended to help parse the data out of JSON.", + "enum": [ + "string", + "integer", + "float", + "boolean", + null + ], + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "DataMatrices", "type": [ "null", "array" @@ -34,13 +77,52 @@ }, "pagination": { "description": "Pagination for the matrix", - "relationshipType": "one-to-many", - "referencedAttribute": "alleleMatrix", + "title": "MatrixPage", "items": { - "$ref": "../BrAPI-Genotyping/AlleleMatrix.json#/$defs/Pagination", - "description": "Pagination" + "properties": { + "dimension": { + "description": "The dimension of the matrix being paginated", + "enum": [ + "CALLSETS", + "VARIANTS", + null + ], + "type": [ + "null", + "string" + ] + }, + "page": { + "description": "the requested page number (zero indexed)", + "type": [ + "null", + "integer" + ] + }, + "pageSize": { + "description": "the maximum number of elements per page in this dimension of the matrix", + "type": [ + "null", + "integer" + ] + }, + "totalCount": { + "description": "The total number of elements that are available on the server and match the requested query parameters.", + "type": [ + "null", + "integer" + ] + }, + "totalPages": { + "description": "The total number of pages of elements available on the server. This should be calculated with the following formula. \n
totalPages = CEILING( totalCount / requested_page_size)", + "type": [ + "null", + "integer" + ] + } + }, + "type": "object" }, - "title": "Pagination", "type": [ "null", "array" @@ -95,133 +177,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "DataMatrices": { - "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": { - "description": "An array of rows in the data matrix", - "items": { - "description": "All the values per row (columns) in the data matrix", - "type": "string" - }, - "type": "array" - }, - "type": [ - "null", - "array" - ] - }, - "dataMatrixAbbreviation": { - "description": "The abbreviated code of the field represented in this data matrix. These codes should match the VCF standard when possible and the key word \"GT\" is reserved for the allele matrix. Examples of other metadata matrices include: \"GQ\", \"RD\", and \"HQ\"\n
This maps to a FORMAT field in the VCF file standard.", - "type": [ - "null", - "string" - ] - }, - "dataMatrixName": { - "description": "The name of the field represented in this data matrix. The key word \"Genotype\" is reserved for the allele matrix. Examples of other metadata matrices include: \"Genotype Quality\", \"Read Depth\", and \"Haplotype Quality\"\n
This maps to a FORMAT field in the VCF file standard.", - "type": [ - "null", - "string" - ] - }, - "dataType": { - "description": "The type of field represented in this data matrix. This is intended to help parse the data out of JSON.", - "enum": [ - "string", - "integer", - "float", - "boolean", - null - ], - "type": [ - "null", - "string" - ] - }, - "alleleMatrix": { - "description": "Data matrices associated with an alleleMatrix", - "$ref": "../BrAPI-Genotyping/AlleleMatrix.json#/$defs/AlleleMatrix", - "relationshipType": "many-to-one", - "referencedAttribute": "dataMatrices" - } - }, - "required": [ - "dataMatricesDbId" - ], - "title": "DataMatrix", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "Pagination": { - "properties": { - "paginationDbId": { - "description": "Pagination for the matrix", - "type": "string" - }, - "dimension": { - "description": "The dimension of the matrix being paginated", - "enum": [ - "CALLSETS", - "VARIANTS", - null - ], - "type": [ - "null", - "string" - ] - }, - "page": { - "description": "the requested page number (zero indexed)", - "type": [ - "null", - "integer" - ] - }, - "pageSize": { - "description": "the maximum number of elements per page in this dimension of the matrix", - "type": [ - "null", - "integer" - ] - }, - "totalCount": { - "description": "The total number of elements that are available on the server and match the requested query parameters.", - "type": [ - "null", - "integer" - ] - }, - "totalPages": { - "description": "The total number of pages of elements available on the server. This should be calculated with the following formula. \n
totalPages = CEILING( totalCount / requested_page_size)", - "type": [ - "null", - "integer" - ] - }, - "alleleMatrix": { - "description": "Pgination 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": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Genotyping/AlleleMatrix.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json index 1343da47..3ce9d9ef 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json @@ -4,7 +4,6 @@ "properties": { "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.", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "callSet": { @@ -15,13 +14,46 @@ }, "genotypeMetadata": { "description": "Genotype Metadata are additional layers of metadata associated with each genotype.", - "relationshipType": "one-to-many", - "referencedAttribute": "call", "items": { - "$ref": "../BrAPI-Genotyping/Call.json#/$defs/GenotypeMetadata", - "description": "GenotypeMetadata" + "properties": { + "dataType": { + "description": "The type of field represented in this Genotype Field. This is intended to help parse the data out of JSON.", + "enum": [ + "string", + "integer", + "float", + "boolean", + null + ], + "type": [ + "null", + "string" + ] + }, + "fieldAbbreviation": { + "description": "The abbreviated code of the field represented in this Genotype Field. These codes should match the VCF standard when possible. Examples include: \"GQ\", \"RD\", and \"HQ\"\n
This maps to a FORMAT field in the VCF file standard.", + "type": [ + "null", + "string" + ] + }, + "fieldName": { + "description": "The name of the field represented in this Genotype Field. Examples include: \"Genotype Quality\", \"Read Depth\", and \"Haplotype Quality\"\n
This maps to a FORMAT field in the VCF file standard.", + "type": [ + "null", + "string" + ] + }, + "fieldValue": { + "description": "The additional metadata value associated with this genotype call", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "GenotypeMetadata", "type": [ "null", "array" @@ -64,63 +96,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "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": [ - "string", - "integer", - "float", - "boolean", - null - ], - "type": [ - "null", - "string" - ] - }, - "fieldAbbreviation": { - "description": "The abbreviated code of the field represented in this Genotype Field. These codes should match the VCF standard when possible. Examples include: \"GQ\", \"RD\", and \"HQ\"\n
This maps to a FORMAT field in the VCF file standard.", - "type": [ - "null", - "string" - ] - }, - "fieldName": { - "description": "The name of the field represented in this Genotype Field. Examples include: \"Genotype Quality\", \"Read Depth\", and \"Haplotype Quality\"\n
This maps to a FORMAT field in the VCF file standard.", - "type": [ - "null", - "string" - ] - }, - "fieldValue": { - "description": "The additional metadata value associated with this genotype call", - "type": [ - "null", - "string" - ] - }, - "call": { - "description": "Genotype metadata associated with a call", - "$ref": "../BrAPI-Genotyping/Call.json#/$defs/Call", - "relationshipType": "many-to-one", - "referencedAttribute": "genotypeMetadata" - } - }, - "required": [ - "genotypeMetadataDbId" - ], - "title": "GenotypeMetadata", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Genotyping/Call.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/CallSet.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/CallSet.json index f8010ebd..4a360360 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/CallSet.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/CallSet.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "alleleMatrices": { "title": "AlleleMatrices", @@ -56,10 +55,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/GenomeMap.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/GenomeMap.json index a872b1fc..c21870b2 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/GenomeMap.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/GenomeMap.json @@ -4,7 +4,6 @@ "properties": { "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.", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "markerPositions": { diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/MarkerPosition.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/MarkerPosition.json index 3c622984..f9999168 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/MarkerPosition.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/MarkerPosition.json @@ -4,10 +4,9 @@ "properties": { "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.", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, - "linkageGroupName": { + "linkageGroupName": { "description": "The Uniquely Identifiable name of a `LinkageGroup`\n
This might be a chromosome identifier or the generic linkage group identifier if the chromosome is not applicable.", "type": [ "null", diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/Plate.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/Plate.json index 4ac45e48..f1587453 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/Plate.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/Plate.json @@ -4,15 +4,12 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json index 951759ff..7c0aa84e 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/Reference.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "commonCropName": { "description": "Common name for the crop", @@ -16,10 +15,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -81,13 +78,25 @@ }, "sourceGermplasm": { "description": "All known corresponding Germplasm", - "relationshipType": "one-to-many", - "referencedAttribute": "reference", "items": { - "$ref": "../BrAPI-Common/SourceGermplasm.json#/$defs/SourceGermplasm", - "description": "SourceGermplasm" + "properties": { + "germplasmDbId": { + "description": "The ID which uniquely identifies a `Germplasm` within the given database server", + "type": [ + "null", + "string" + ] + }, + "germplasmName": { + "description": "The human readable name of a `Germplasm`", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "SourceGermplasm", "type": [ "null", "array" @@ -102,9 +111,27 @@ }, "species": { "description": "An ontology term describing an attribute.", - "relationshipType": "one-to-one", - "referencedAttribute": "reference", - "$ref": "../BrAPI-Common/Species.json#/$defs/Species" + "title": "OntologyTerm", + "properties": { + "term": { + "description": "Ontology term - the label of the ontology term the termId is pointing to.", + "type": [ + "null", + "string" + ] + }, + "termURI": { + "description": "Ontology term identifier - the CURIE for an ontology term. It differs from the standard GA4GH schema's :ref:`id ` in that it is a CURIE pointing to an information resource outside of the scope of the schema or its resource implementation.", + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] }, "variants": { "title": "variants", diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json index bbfe7ab4..39db4ecf 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/ReferenceSet.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "assemblyPUI": { "description": "The remaining information is about the source of the sequences Public id of this reference set, such as `GRCH_37`.", @@ -30,10 +29,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -75,13 +72,25 @@ }, "sourceGermplasm": { "description": "All known corresponding Germplasm", - "relationshipType": "one-to-many", - "referencedAttribute": "referenceSet", "items": { - "$ref": "../BrAPI-Common/SourceGermplasm.json#/$defs/SourceGermplasm", - "description": "SourceGermplasm" + "properties": { + "germplasmDbId": { + "description": "The ID which uniquely identifies a germplasm within the given database server", + "type": [ + "null", + "string" + ] + }, + "germplasmName": { + "description": "The human readable name of a germplasm", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "SourceGermplasm", "type": [ "null", "array" @@ -94,18 +103,42 @@ "string" ] }, - "species": { + "species": { "description": "An ontology term describing an attribute.", - "relationshipType": "one-to-one", - "referencedAttribute": "referenceSet", - "$ref": "../BrAPI-Common/Species.json#/$defs/Species" + "properties": { + "term": { + "description": "Ontology term - the label of the ontology term the termId is pointing to.", + "type": [ + "null", + "string" + ] + }, + "termURI": { + "description": "Ontology term identifier - the CURIE for an ontology term. It differs from the standard GA4GH schema's :ref:`id ` in that it is a CURIE pointing to an information resource outside of the scope of the schema or its resource implementation.", + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] }, "references": { "title": "references", "description": "references", "referencedAttribute": "referenceSet", - "relationshipType": "one-to-one", - "$ref": "Reference.json#/$defs/Reference" + "relationshipType": "one-to-many", + "items": { + "$ref": "Reference.json#/$defs/Reference", + "description": "Reference" + }, + "type": [ + "null", + "array" + ] }, "variants": { "title": "variants", diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/Sample.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/Sample.json index fcd9b09e..62b9b7cb 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/Sample.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/Sample.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "callSets": { "title": "CallSets", @@ -32,10 +31,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/Variant.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/Variant.json index 8cc89e95..52bcbfcc 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/Variant.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/Variant.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "markerPositions": { "title": "markerPositions", @@ -96,10 +95,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json b/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json index f6316099..e8ac10ad 100644 --- a/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json +++ b/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "alleleMatrices": { "title": "AlleleMatrices", @@ -51,23 +50,150 @@ }, "analysis": { "description": "Set of Analysis descriptors for this VariantSet", - "relationshipType": "one-to-many", - "referencedAttribute": "variantSet", "items": { - "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/Analysis", - "description": "Analysis" + "description": "An analysis contains an interpretation of one or several experiments. (e.g. SNVs, copy number variations, methylation status) together with information about the methodology used.", + "title": "Analysis", + "properties": { + "analysisDbId": { + "description": "Unique identifier for this analysis description", + "type": [ + "null", + "string" + ] + }, + "analysisName": { + "description": "A human readable name for this analysis", + "type": [ + "null", + "string" + ] + }, + "created": { + "description": "The time at which this record was created, in ISO 8601 format.", + "format": "date-time", + "type": [ + "null", + "string" + ] + }, + "description": { + "description": "A human readable description of the analysis", + "type": [ + "null", + "string" + ] + }, + "software": { + "description": "The software run to generate this analysis.", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "type": { + "description": "The type of analysis.", + "type": [ + "null", + "string" + ] + }, + "updated": { + "description": "The time at which this record was last updated, in ISO 8601 format.", + "format": "date-time", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "Analysis", "type": [ "null", "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" + "items": { + "description": "Each 'availableFormat' object is a pairing of dataFormat and fileFormat. These must be communicated in pairs because they are not independent parameters and sometimes one influences the other.", + "properties": { + "dataFormat": { + "description": "dataFormat defines the structure of the data within a file (ie DartSeq, VCF, Hapmap, tabular, etc)", + "enum": [ + "DartSeq", + "VCF", + "Hapmap", + "tabular", + "JSON", + null + ], + "type": [ + "null", + "string" + ] + }, + "expandHomozygotes": { + "description": "Should homozygotes be expanded (true) or collapsed into a single occurrence (false)", + "type": [ + "null", + "boolean" + ] + }, + "fileFormat": { + "description": "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.", + "enum": [ + "text/csv", + "text/tsv", + "application/excel", + "application/zip", + "application/json", + null + ], + "type": [ + "null", + "string" + ] + }, + "fileURL": { + "description": "A URL which indicates the location of the file version of this VariantSet. Could be a static file URL or an API endpoint which generates the file.", + "format": "uri", + "type": [ + "null", + "string" + ] + }, + "sepPhased": { + "description": "The string used as a separator for phased allele calls.", + "type": [ + "null", + "string" + ] + }, + "sepUnphased": { + "description": "The string used as a separator for unphased allele calls.", + "type": [ + "null", + "string" + ] + }, + "unknownString": { + "description": "The string used as a representation for missing data.", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" + }, + "type": [ + "null", + "array" + ] }, "callSetCount": { "description": "The number of CallSets included in this VariantSet", @@ -78,10 +204,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -89,11 +213,46 @@ "array" ] }, - "metadataField": { - "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", - "referencedAttribute": "variantSet", - "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/MetadataField" + "metadataFields": { + "description": "The 'metadataFields' array 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 ", + "items": { + "description": "This represents a type of genotyping data or metadata available in this VariantSet", + "properties": { + "dataType": { + "description": "The type of field represented in this Genotype Field. This is intended to help parse the data out of JSON.", + "enum": [ + "string", + "integer", + "float", + "boolean", + null + ], + "type": [ + "null", + "string" + ] + }, + "fieldAbbreviation": { + "description": "The abbreviated code of the field represented in this Genotype Field. These codes should match the VCF standard when possible. Examples include: \"GQ\", \"RD\", and \"HQ\"", + "type": [ + "null", + "string" + ] + }, + "fieldName": { + "description": "The name of the field represented in this Genotype Field. Examples include: \"Genotype Quality\", \"Read Depth\", and \"Haplotype Quality\"", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" + }, + "type": [ + "null", + "array" + ] }, "referenceSet": { "$ref": "ReferenceSet.json#/$defs/ReferenceSet", @@ -148,212 +307,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "Analysis": { - "properties": { - "analysisDbId": { - "description": "Unique identifier for this analysis description", - "type": [ - "null", - "string" - ] - }, - "analysisName": { - "description": "A human readable name for this analysis", - "type": [ - "null", - "string" - ] - }, - "created": { - "description": "The time at which this record was created, in ISO 8601 format.", - "format": "date-time", - "type": [ - "null", - "string" - ] - }, - "description": { - "description": "A human readable description of the analysis", - "type": [ - "null", - "string" - ] - }, - "software": { - "description": "The software run to generate this analysis.", - "items": { - "type": "string" - }, - "type": [ - "null", - "array" - ] - }, - "type": { - "description": "The type of analysis.", - "type": [ - "null", - "string" - ] - }, - "updated": { - "description": "The time at which this record was last updated, in ISO 8601 format.", - "format": "date-time", - "type": [ - "null", - "string" - ] - }, - "variantSet": { - "description": "Analysis associated with a variant set", - "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/VariantSet", - "relationshipType": "many-to-one", - "referencedAttribute": "analysis" - } - }, - "required": [ - "analysisDbId" - ], - "title": "Analysis", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "AvailableFormat": { - "properties": { - "dataFormat": { - "description": "dataFormat defines the structure of the data within a file (ie DartSeq, VCF, Hapmap, tabular, etc)", - "enum": [ - "DartSeq", - "VCF", - "Hapmap", - "tabular", - "JSON", - null - ], - "type": [ - "null", - "string" - ] - }, - "expandHomozygotes": { - "description": "Should homozygotes be expanded (true) or collapsed into a single occurrence (false)", - "type": [ - "null", - "boolean" - ] - }, - "fileFormat": { - "description": "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.", - "enum": [ - "text/csv", - "text/tsv", - "application/excel", - "application/zip", - "application/json", - null - ], - "type": [ - "null", - "string" - ] - }, - "fileURL": { - "description": "A URL which indicates the location of the file version of this VariantSet. Could be a static file URL or an API endpoint which generates the file.", - "format": "uri", - "type": [ - "null", - "string" - ] - }, - "sepPhased": { - "description": "The string used as a separator for phased allele calls.", - "type": [ - "null", - "string" - ] - }, - "sepUnphased": { - "description": "The string used as a separator for unphased allele calls.", - "type": [ - "null", - "string" - ] - }, - "unknownString": { - "description": "The string used as a representation for missing data.", - "type": [ - "null", - "string" - ] - }, - "variantSet": { - "description": "Formats associated with a variant set", - "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/VariantSet", - "relationshipType": "many-to-one", - "referencedAttribute": "availableFormats" - } - }, - "title": "AvailableFormats", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "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": [ - "string", - "integer", - "float", - "boolean", - null - ], - "type": [ - "null", - "string" - ] - }, - "fieldAbbreviation": { - "description": "The abbreviated code of the field represented in this Genotype Field. These codes should match the VCF standard when possible. Examples include: \"GQ\", \"RD\", and \"HQ\"", - "type": [ - "null", - "string" - ] - }, - "fieldName": { - "description": "The name of the field represented in this Genotype Field. Examples include: \"Genotype Quality\", \"Read Depth\", and \"Haplotype Quality\"", - "type": [ - "null", - "string" - ] - }, - "variantSet": { - "description": "Formats associated with a variant set", - "$ref": "../BrAPI-Genotyping/VariantSet.json#/$defs/VariantSet", - "relationshipType": "many-to-one", - "referencedAttribute": "metadataFields" - } - }, - "required": [ - "metadataFieldDbId" - ], - "title": "MetadataFields", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json index 2ff37b76..5d22c8f6 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json @@ -4,18 +4,30 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "crossAttributes": { "description": "Set of custom attributes associated with a cross", - "relationshipType": "one-to-many", - "referencedAttribute": "cross", "items": { - "$ref": "../BrAPI-Germplasm/Cross.json#/$defs/CrossAttribute", - "description": "CrossAttributes" + "description": "a custom attributes associated with a cross", + "properties": { + "crossAttributeName": { + "description": "the human readable name of a cross attribute", + "type": [ + "null", + "string" + ] + }, + "crossAttributeValue": { + "description": "the value of a cross attribute", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "CrossAttributes", "type": [ "null", "array" @@ -44,10 +56,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -71,13 +81,33 @@ }, "pollinationEvents": { "description": "The list of pollination events that occurred for this cross", - "relationshipType": "one-to-many", - "referencedAttribute": "cross", "items": { - "$ref": "../BrAPI-Germplasm/Cross.json#/$defs/PollinationEvent", - "description": "PollinationEvent" + "properties": { + "pollinationNumber": { + "description": "The unique identifier for this pollination event", + "type": [ + "null", + "string" + ] + }, + "pollinationSuccessful": { + "description": "True if the pollination was successful", + "type": [ + "null", + "boolean" + ] + }, + "pollinationTimeStamp": { + "description": "The timestamp when the pollination took place", + "format": "date-time", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "PollinationEvents", "type": [ "null", "array" @@ -106,72 +136,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "CrossAttribute": { - "properties": { - "crossAttributeName": { - "description": "the human readable name of a cross attribute", - "type": [ - "null", - "string" - ] - }, - "crossAttributeValue": { - "description": "the value of a cross attribute", - "type": [ - "null", - "string" - ] - }, - "cross": { - "description": "a custom attributes associated with a cross", - "$ref": "../BrAPI-Germplasm/Cross.json#/$defs/Cross", - "relationshipType": "many-to-one", - "referencedAttribute": "crossAttributes" - } - }, - "title": "CrossAttributes", - "type": "object", - "brapi-metadata": { - "primaryModel": true - } - }, - "PollinationEvent": { - "properties": { - "pollinationNumber": { - "description": "The unique identifier for this pollination event", - "type": [ - "null", - "string" - ] - }, - "pollinationSuccessful": { - "description": "True if the pollination was successful", - "type": [ - "null", - "boolean" - ] - }, - "pollinationTimeStamp": { - "description": "The timestamp when the pollination took place", - "format": "date-time", - "type": [ - "null", - "string" - ] - }, - "cross": { - "description": "polunation events associated with a cross", - "$ref": "../BrAPI-Germplasm/Cross.json#/$defs/Cross", - "relationshipType": "many-to-one", - "referencedAttribute": "pollinationEvents" - } - }, - "title": "PollinationEvents", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Germplasm/Cross.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json index 181ba952..6ebb7fbe 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossParent.json @@ -2,16 +2,8 @@ "$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", "$ref": "Germplasm.json#/$defs/Germplasm", "type": [ "null", @@ -20,7 +12,6 @@ }, "observationUnit": { "description": "the Observation Unit of the cross parent", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/ObservationUnit", "type": [ "null", diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossingProject.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossingProject.json index b3ee17b9..c8132121 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossingProject.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/CrossingProject.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "commonCropName": { "description": "the common name of a crop (for multi-crop systems)", @@ -31,10 +30,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json index cc1d0e53..4fa02b25 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json @@ -18,8 +18,7 @@ }, "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "biologicalStatusOfAccessionCode": { "description": "MCPD (v2.1) (SAMPSTAT) 19. The coding scheme proposed can be used at 3 different levels of detail: either by using the general codes such as 100, 200, 300, 400, or by using the more specific codes such as 110, 120, etc. \n\n100) Wild \n110) Natural \n120) Semi-natural/wild \n130) Semi-natural/sown \n200) Weedy \n300) Traditional cultivar/landrace \n400) Breeding/research material \n410) Breeders line \n411) Synthetic population \n412) Hybrid \n413) Founder stock/base population \n414) Inbred line (parent of hybrid cultivar) \n415) Segregating population \n416) Clonal selection \n420) Genetic stock \n421) Mutant (e.g. induced/insertion mutants, tilling populations) \n422) Cytogenetic stocks (e.g. chromosome addition/substitution, aneuploids, amphiploids) \n423) Other genetic stocks (e.g. mapping populations) \n500) Advanced or improved cultivar (conventional breeding methods) \n600) GMO (by genetic engineering) \n999) Other (Elaborate in REMARKS field)", @@ -106,13 +105,25 @@ }, "donors": { "description": "List of donor institutes", - "relationshipType": "one-to-many", - "referencedAttribute": "germplasm", "items": { - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Donor", - "description": "Donors" + "properties": { + "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": [ + "null", + "string" + ] + }, + "donorInstituteCode": { + "description": "The institute code for the donor institute\n
MCPD (v2.1) (DONORCODE) 22. FAO WIEWS code of the donor institute. Follows INSTCODE standard.", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "Donors", "type": [ "null", "array" @@ -120,10 +131,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -148,13 +157,41 @@ }, "germplasmOrigin": { "description": "Information for material (orchard, natural sites, ...). Geographic identification of the plants from which seeds or cutting have been taken to produce that germplasm.", - "relationshipType": "one-to-many", - "referencedAttribute": "germplasm", "items": { - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/GermplasmOrigin", - "description": "GermplasmOrigin" + "description": "MIAPPE V1.1 (DM-52) \n\nMIAPPE V1.1 (DM-53) \n\nMIAPPE V1.1 (DM-54) \n\nMIAPPE V1.1 (DM-55)\n\nMCPD (v2.1) (COORDUNCERT) 15.5 \n\nMCPD (v2.1) (ELEVATION) 16. \n\nMCPD (v2.1) (GEOREFMETH) 15.7 \n\nMCPD (v2.1) (DECLATITUDE) 15.1 \n\nMCPD (v2.1) (DECLONGITUDE) 15.3 ", + "properties": { + "coordinateUncertainty": { + "description": "Uncertainty associated with the coordinates in meters. Leave the value empty if the uncertainty is unknown.", + "type": [ + "null", + "string" + ] + }, + "coordinates": { + "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": { + "geometry": { + "description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed.", + "$ref": "../BrAPI-Common/GeoJSONGeometry.json#/$defs/GeoJSONGeometry" + }, + "type": { + "default": "Feature", + "description": "The literal string \"Feature\"", + "type": [ + "null", + "string" + ] + } + }, + "title": "GeoJSON", + "type": [ + "null", + "object" + ] + } + }, + "type": "object" }, - "title": "GermplasmOrigin", "type": [ "null", "array" @@ -222,13 +259,37 @@ }, "storageTypes": { "description": "The type of storage this germplasm is kept in at a genebank.", - "relationshipType": "one-to-many", - "referencedAttribute": "germplasm", "items": { - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/StorageType", - "description": "StorageTypes" + "properties": { + "code": { + "description": "The 2 digit code representing the type of storage this germplasm is kept in at a genebank. \n\nMCPD (v2.1) (STORAGE) 26. If germplasm is maintained under different types of storage, multiple choices are allowed, separated by a semicolon (e.g. 20;30). (Refer to FAO/IPGRI Genebank Standards 1994 for details on storage type.) \n\n10) Seed collection \n11) Short term \n12) Medium term \n13) Long term \n20) Field collection \n30) In vitro collection \n40) Cryo-preserved collection \n50) DNA collection \n99) Other (elaborate in REMARKS field)", + "enum": [ + "10", + "11", + "12", + "13", + "20", + "30", + "40", + "50", + "99", + null + ], + "type": [ + "null", + "string" + ] + }, + "description": { + "description": "A supplemental text description of the storage type", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "StorageTypes", "type": [ "null", "array" @@ -250,13 +311,25 @@ }, "synonyms": { "description": "List of alternative names or IDs used to reference this germplasm\n\nMCPD (v2.1) (OTHERNUMB) 24. Any other identifiers known to exist in other collections for this accession. Use the following format: INSTCODE:ACCENUMB;INSTCODE:identifier;INSTCODE and identifier are separated by a colon without space. Pairs of INSTCODE and identifier are separated by a semicolon without space. When the institute is not known, the identifier should be preceded by a colon.", - "relationshipType": "one-to-many", - "referencedAttribute": "germplasm", "items": { - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Synonym", - "description": "Synonyms" + "properties": { + "synonym": { + "description": "Alternative name or ID used to reference this germplasm", + "type": [ + "null", + "string" + ] + }, + "type": { + "description": "A descriptive classification for this synonym", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "Synonyms", "type": [ "null", "array" @@ -264,13 +337,23 @@ }, "taxonIds": { "description": "The list of IDs for this SPECIES from different sources. If present, NCBI Taxon should be always listed as \"ncbiTaxon\" preferably with a purl. The rank of this ID should be species.\n\nMIAPPE V1.1 (DM-42) Organism - An identifier for the organism at the species level. Use of the NCBI taxon ID is recommended.", - "relationshipType": "one-to-many", - "referencedAttribute": "germplasm", "items": { - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/TaxonId", - "description": "TaxonIds" + "properties": { + "sourceName": { + "description": "The human readable name of the taxonomy provider", + "type": "string" + }, + "taxonId": { + "description": "The identifier (name, ID, URI) of a particular taxonomy within the source provider", + "type": "string" + } + }, + "required": [ + "sourceName", + "taxonId" + ], + "type": "object" }, - "title": "TaxonIds", "type": [ "null", "array" @@ -383,187 +466,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "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": [ - "null", - "string" - ] - }, - "donorInstituteCode": { - "description": "The institute code for the donor institute\n
MCPD (v2.1) (DONORCODE) 22. FAO WIEWS code of the donor institute. Follows INSTCODE standard.", - "type": [ - "null", - "string" - ] - }, - "germplasm": { - "description": "donoers associated with a germplasm", - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm", - "relationshipType": "many-to-one", - "referencedAttribute": "donors" - } - }, - "required": [ - "donorDbId" - ], - "title": "Donors", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "GermplasmOrigin": { - "properties": { - "coordinateUncertainty": { - "description": "Uncertainty associated with the coordinates in meters. Leave the value empty if the uncertainty is unknown.", - "type": [ - "null", - "string" - ] - }, - "coordinates": { - "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.", - "relationshipType": "one-to-many", - "referencedAttribute": "germplasmOrigin", - "items": { - "$ref": "../BrAPI-Common/GeoJSON.json#/$defs/GeoJSON", - "description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed." - }, - "title": "GeoJSON", - "type": [ - "null", - "array" - ] - }, - "germplasm": { - "description": "associated germplasm", - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm", - "relationshipType": "many-to-one", - "referencedAttribute": "germplasmOrigin" - } - }, - "title": "GermplasmOrigin", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "StorageType": { - "properties": { - "code": { - "description": "The 2 digit code representing the type of storage this germplasm is kept in at a genebank. \n\nMCPD (v2.1) (STORAGE) 26. If germplasm is maintained under different types of storage, multiple choices are allowed, separated by a semicolon (e.g. 20;30). (Refer to FAO/IPGRI Genebank Standards 1994 for details on storage type.) \n\n10) Seed collection \n11) Short term \n12) Medium term \n13) Long term \n20) Field collection \n30) In vitro collection \n40) Cryo-preserved collection \n50) DNA collection \n99) Other (elaborate in REMARKS field)", - "enum": [ - "10", - "11", - "12", - "13", - "20", - "30", - "40", - "50", - "99", - null - ], - "type": [ - "null", - "string" - ] - }, - "description": { - "description": "A supplemental text description of the storage type", - "type": [ - "null", - "string" - ] - }, - "germplasm": { - "description": "associated germplasm", - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm", - "relationshipType": "many-to-one", - "referencedAttribute": "storageTypes" - } - }, - "title": "StorageTypes", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "Synonym": { - "properties": { - "synonymDbId": { - "description": "the unique identifier for a synonym", - "type": "string" - }, - "synonym": { - "description": "Alternative name or ID used to reference this germplasm", - "type": [ - "null", - "string" - ] - }, - "type": { - "description": "A descriptive classification for this synonym", - "type": [ - "null", - "string" - ] - }, - "germplasm": { - "description": "associated germplasm", - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm", - "relationshipType": "many-to-one", - "referencedAttribute": "synonyms" - } - }, - "required": [ - "synonymDbId" - ], - "title": "Synonyms", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "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" - }, - "sourceName": { - "description": "The human readable name of the taxonomy provider", - "type": "string" - }, - "germplasm": { - "description": "associated germplasm", - "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm", - "relationshipType": "many-to-one", - "referencedAttribute": "taxonIds" - } - }, - "required": [ - "sourceName", - "taxonDbId", - "taxonId" - ], - "title": "TaxonIds", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Germplasm/Germplasm.json", 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/GermplasmAttributeValue.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/GermplasmAttributeValue.json index 1aa344fb..c16fb32e 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/GermplasmAttributeValue.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/GermplasmAttributeValue.json @@ -4,7 +4,6 @@ "properties": { "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.", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "attribute": { @@ -27,10 +26,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json index a38e7dc1..6fcb1c72 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json @@ -4,7 +4,6 @@ "properties": { "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.", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "breedingMethod": { @@ -35,10 +34,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -61,24 +58,30 @@ }, "parents": { "description": "A list of parent germplasm references in the pedigree tree for this germplasm. These represent edges in the tree, connecting to other nodes.\n
Typically, this array should only have one parent (clonal or self) or two parents (cross). In some special cases, there may be more parents, usually when the exact parent is not known. \n
If the parameter 'includeParents' is set to false, then this array should be empty, null, or not present in the response.", - "relationshipType": "one-to-many", - "referencedAttribute": "pedigreeNode", "items": { - "$ref": "../BrAPI-Germplasm/PedigreeNode.json#/$defs/GermplasmParent", - "description": "GermplasmParents" + "title": "GermplasmParent", + "properties": { + "parentGermplasm": { + "$ref": "Germplasm.json#/$defs/Germplasm", + "description": "The ID which uniquely identifies a parent germplasm", + "referencedAttribute": "progenyPedigreeNodes", + "relationshipType": "many-to-one" + }, + "parentType": { + "description": "The type of parent used during crossing. Accepted values for this field are 'MALE', 'FEMALE', 'SELF', 'POPULATION', and 'CLONAL'. \n\nIn a pedigree record, the 'parentType' describes each parent of a particular germplasm. \n\nIn a progeny record, the 'parentType' is used to describe how this germplasm was crossed to generate a particular progeny. \nFor example, given a record for germplasm A, having a progeny B and C. The 'parentType' field for progeny B item refers \nto the 'parentType' of A toward B. The 'parentType' field for progeny C item refers to the 'parentType' of A toward C.\nIn this way, A could be a male parent to B, but a female parent to C. ", + "$ref": "ParentType.json#/$defs/ParentType" + } + }, + "required": [ + "parentGermplasm", + "parentType" + ], + "type": "object" }, - "title": "GermplasmParents", "type": [ "null", "array" ] - }, - "pedigreeNodeDbId": { - "description": "The ID which uniquely identifies a pedigree node", - "type": [ - "null", - "string" - ] }, "pedigreeString": { "description": "The string representation of the pedigree for this germplasm in PURDY notation", @@ -89,13 +92,26 @@ }, "progeny": { "description": "A list of germplasm references that are direct children of this germplasm. These represent edges in the tree, connecting to other nodes.\n
The given germplasm could have a large number of progeny, across a number of different breeding methods. The 'parentType' shows \n the type of parent this germplasm is to each of the child germplasm references.\n
If the parameter 'includeProgeny' is set to false, then this array should be empty, null, or not present in the response.", - "relationshipType": "one-to-many", - "referencedAttribute": "pedigreeNode", "items": { - "$ref": "../BrAPI-Germplasm/PedigreeNode.json#/$defs/GermplasmChild", - "description": "Progeny" + "title": "GermplasmChild", + "properties": { + "progenyGermplasm": { + "$ref": "Germplasm.json#/$defs/Germplasm", + "description": "The ID which uniquely identifies a parent germplasm", + "referencedAttribute": "parentPedigreeNodes", + "relationshipType": "many-to-one" + }, + "parentType": { + "description": "The type of parent used during crossing. Accepted values for this field are 'MALE', 'FEMALE', 'SELF', 'POPULATION', and 'CLONAL'. \n\nIn a pedigree record, the 'parentType' describes each parent of a particular germplasm. \n\nIn a progeny record, the 'parentType' is used to describe how this germplasm was crossed to generate a particular progeny. \nFor example, given a record for germplasm A, having a progeny B and C. The 'parentType' field for progeny B item refers \nto the 'parentType' of A toward B. The 'parentType' field for progeny C item refers to the 'parentType' of A toward C.\nIn this way, A could be a male parent to B, but a female parent to C. ", + "$ref": "ParentType.json#/$defs/ParentType" + } + }, + "required": [ + "progenyGermplasm", + "parentType" + ], + "type": "object" }, - "title": "Progeny", "type": [ "null", "array" @@ -123,74 +139,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "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", - "referencedAttribute": "progenyPedigreeNodes", - "relationshipType": "many-to-one" - }, - "parentType": { - "description": "The type of parent used during crossing. Accepted values for this field are 'MALE', 'FEMALE', 'SELF', 'POPULATION', and 'CLONAL'. \n\nIn a pedigree record, the 'parentType' describes each parent of a particular germplasm. \n\nIn a progeny record, the 'parentType' is used to describe how this germplasm was crossed to generate a particular progeny. \nFor example, given a record for germplasm A, having a progeny B and C. The 'parentType' field for progeny B item refers \nto the 'parentType' of A toward B. The 'parentType' field for progeny C item refers to the 'parentType' of A toward C.\nIn this way, A could be a male parent to B, but a female parent to C. ", - "$ref": "ParentType.json#/$defs/ParentType" - }, - "pedigreeNode": { - "description": "associated pedigreeNode", - "$ref": "../BrAPI-Germplasm/PedigreeNode.json#/$defs/PedigreeNode", - "relationshipType": "many-to-one", - "referencedAttribute": "parents" - } - }, - "required": [ - "parentDbId", - "parentGermplasm", - "parentType" - ], - "title": "Parents", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "GermplasmChild": { - "properties": { - "germplasmChildDbId": { - "description": "a unique identifiere for a progeny", - "type": "string" - }, - "progenyGermplasm": { - "$ref": "Germplasm.json#/$defs/Germplasm", - "description": "The ID which uniquely identifies a parent germplasm", - "referencedAttribute": "parentPedigreeNodes", - "relationshipType": "many-to-one" - }, - "parentType": { - "description": "The type of parent used during crossing. Accepted values for this field are 'MALE', 'FEMALE', 'SELF', 'POPULATION', and 'CLONAL'. \n\nIn a pedigree record, the 'parentType' describes each parent of a particular germplasm. \n\nIn a progeny record, the 'parentType' is used to describe how this germplasm was crossed to generate a particular progeny. \nFor example, given a record for germplasm A, having a progeny B and C. The 'parentType' field for progeny B item refers \nto the 'parentType' of A toward B. The 'parentType' field for progeny C item refers to the 'parentType' of A toward C.\nIn this way, A could be a male parent to B, but a female parent to C. ", - "$ref": "ParentType.json#/$defs/ParentType" - }, - "pedigreeNode": { - "description": "associated pedigreeNode", - "$ref": "../BrAPI-Germplasm/PedigreeNode.json#/$defs/PedigreeNode", - "relationshipType": "many-to-one", - "referencedAttribute": "parents" - } - }, - "required": [ - "germplasmChildDbId", - "progenyGermplasm", - "parentType" - ], - "title": "Progeny", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Germplasm/PedigreeNode.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json index 34dd2460..1bbf1317 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/PlannedCross.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "crossType": { "description": "the type of cross", @@ -19,10 +18,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json index dc7f3a54..8d28d056 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "amount": { "description": "The current balance of the amount of material in a SeedLot. Could be a count (seeds, bulbs, etc) or a weight (kg of seed).", @@ -16,13 +15,46 @@ }, "contentMixture": { "description": "The mixture of germplasm present in the seed lot.\n
\nIf this seed lot only contains a single germplasm, the response should contain the name \nand DbId of that germplasm with a mixturePercentage value of 100\n
\nIf the seed lot contains a mixture of different germplasm, the response should contain \nthe name and DbId every germplasm present. The mixturePercentage field should contain \nthe ratio of each germplasm in the total mixture. All of the mixturePercentage values \nin this array should sum to equal 100.", - "relationshipType": "one-to-many", - "referencedAttribute": "seedLot", "items": { - "$ref": "../BrAPI-Germplasm/SeedLot.json#/$defs/ContentMixture", - "description": "ContentMixture" + "properties": { + "crossDbId": { + "description": "The unique DbId for a cross contained in this seed lot", + "type": [ + "null", + "string" + ] + }, + "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" + ] + }, + "germplasmName": { + "description": "The human readable name of the Germplasm contained in this Seed Lot", + "type": [ + "null", + "string" + ] + }, + "mixturePercentage": { + "description": "The percentage of the given germplasm in the seed lot mixture.", + "type": [ + "null", + "integer" + ] + } + }, + "type": "object" }, - "title": "ContentMixture", "type": [ "null", "array" @@ -38,10 +70,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -157,49 +187,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "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" - ] - }, - "germplasmName": { - "description": "The human readable name of the Germplasm contained in this Seed Lot", - "type": [ - "null", - "string" - ] - }, - "mixturePercentage": { - "description": "The percentage of the given germplasm in the seed lot mixture.", - "type": [ - "null", - "integer" - ] - }, - "seedLot": { - "description": "associated seedLot", - "$ref": "../BrAPI-Germplasm/SeedLot.json#/$defs/SeedLot", - "relationshipType": "many-to-one", - "referencedAttribute": "contentMixture" - } - }, - "title": "ContentMixture", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLot.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json index 8e7ac8a6..0db6c479 100644 --- a/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json +++ b/Specification/BrAPI-Schema/BrAPI-Germplasm/SeedLotTransaction.json @@ -4,7 +4,6 @@ "properties": { "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.", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "amount": { @@ -16,10 +15,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json index 47aa724a..c4c008c1 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json @@ -4,21 +4,42 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "eventDateRange": { "description": "An object describing when a particular Event has taken place. An Event can occur at one or more discrete time points (`discreteDates`) or an event can happen continuously over a longer period of time (`startDate`, `endDate`)", - "relationshipType": "one-to-many", - "referencedAttribute": "event", - "items": { - "$ref": "../BrAPI-Phenotyping/Event.json#/$defs/EventDateRange", - "description": "EventDateRange" + "properties": { + "discreteDates": { + "description": "A list of dates when the event occurred\n
MIAPPE V1.1 (DM-68) Event date - Date and time of the event.", + "items": { + "format": "date-time", + "type": "string" + }, + "type": [ + "null", + "array" + ] + }, + "endDate": { + "description": "The end of a continuous or regularly repetitive event\n
MIAPPE V1.1 (DM-68) Event date - Date and time of the event.", + "format": "date-time", + "type": [ + "null", + "string" + ] + }, + "startDate": { + "description": "The beginning of a continuous or regularly repetitive event\n
MIAPPE V1.1 (DM-68) Event date - Date and time of the event.", + "format": "date-time", + "type": [ + "null", + "string" + ] + } }, - "title": "EventDateRange", "type": [ "null", - "array" + "object" ] }, "eventDbId": { @@ -34,13 +55,63 @@ }, "eventParameters": { "description": "A list of objects describing additional event parameters. Each of the following accepts a human-readable value or URI", - "relationshipType": "one-to-many", - "referencedAttribute": "event", "items": { - "$ref": "../BrAPI-Phenotyping/Event.json#/$defs/EventParameter", - "description": "EventParameters" + "properties": { + "code": { + "description": "The shortened code name of an event parameter\n
ICASA \"Code_Display\"", + "type": [ + "null", + "string" + ] + }, + "description": { + "description": "A human readable description of this event parameter. This description is usually associated with the 'name' and 'code' of an event parameter.", + "type": [ + "null", + "string" + ] + }, + "name": { + "description": "The full name of an event parameter\n
ICASA \"Variable_Name\"", + "type": [ + "null", + "string" + ] + }, + "units": { + "description": "The units or data type of the 'value'. \n
If the 'value' comes from a standardized vocabulary or an encoded list of values, then 'unit' should be 'code'. \n
If the 'value' IS NOT a number, then 'unit' should specify a data type eg. 'text', 'boolean', 'date', etc. \n
If the value IS a number, then 'unit' should specify the units used eg. 'ml', 'cm', etc\n
ICASA \"Unit_or_type\"", + "type": [ + "null", + "string" + ] + }, + "value": { + "description": "The single value of this event parameter. This single value is accurate for all the dates in the date range. If 'value' is populated then 'valuesByDate' should NOT be populated.", + "type": [ + "null", + "string" + ] + }, + "valueDescription": { + "description": "If the event parameter 'unit' field is 'code', then use 'valueDescription' to add a human readable description to the value.", + "type": [ + "null", + "string" + ] + }, + "valuesByDate": { + "description": "An array of values corresponding to each timestamp in the 'discreteDates' array of this event. The 'valuesByDate' array should exactly match the size of the 'discreteDates' array. If 'valuesByDate' is populated then 'value' should NOT be populated.", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] + } + }, + "type": "object" }, - "title": "EventParameters", "type": [ "null", "array" @@ -85,115 +156,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "EventDateRange": { - "properties": { - "discreteDates": { - "description": "A list of dates when the event occurred\n
MIAPPE V1.1 (DM-68) Event date - Date and time of the event.", - "items": { - "format": "date-time", - "type": "string" - }, - "type": [ - "null", - "array" - ] - }, - "endDate": { - "description": "The end of a continuous or regularly repetitive event\n
MIAPPE V1.1 (DM-68) Event date - Date and time of the event.", - "format": "date-time", - "type": [ - "null", - "string" - ] - }, - "startDate": { - "description": "The beginning of a continuous or regularly repetitive event\n
MIAPPE V1.1 (DM-68) Event date - Date and time of the event.", - "format": "date-time", - "type": [ - "null", - "string" - ] - }, - "event": { - "description": "associated event", - "$ref": "../BrAPI-Phenotyping/Event.json#/$defs/Event", - "relationshipType": "many-to-one", - "referencedAttribute": "eventDateRange" - } - }, - "title": "EventDateRange", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "EventParameter": { - "properties": { - "code": { - "description": "The shortened code name of an event parameter\n
ICASA \"Code_Display\"", - "type": [ - "null", - "string" - ] - }, - "description": { - "description": "A human readable description of this event parameter. This description is usually associated with the 'name' and 'code' of an event parameter.", - "type": [ - "null", - "string" - ] - }, - "name": { - "description": "The full name of an event parameter\n
ICASA \"Variable_Name\"", - "type": [ - "null", - "string" - ] - }, - "units": { - "description": "The units or data type of the 'value'. \n
If the 'value' comes from a standardized vocabulary or an encoded list of values, then 'unit' should be 'code'. \n
If the 'value' IS NOT a number, then 'unit' should specify a data type eg. 'text', 'boolean', 'date', etc. \n
If the value IS a number, then 'unit' should specify the units used eg. 'ml', 'cm', etc\n
ICASA \"Unit_or_type\"", - "type": [ - "null", - "string" - ] - }, - "value": { - "description": "The single value of this event parameter. This single value is accurate for all the dates in the date range. If 'value' is populated then 'valuesByDate' should NOT be populated.", - "type": [ - "null", - "string" - ] - }, - "valueDescription": { - "description": "If the event parameter 'unit' field is 'code', then use 'valueDescription' to add a human readable description to the value.", - "type": [ - "null", - "string" - ] - }, - "valuesByDate": { - "description": "An array of values corresponding to each timestamp in the 'discreteDates' array of this event. The 'valuesByDate' array should exactly match the size of the 'discreteDates' array. If 'valuesByDate' is populated then 'value' should NOT be populated.", - "items": { - "type": "string" - }, - "type": [ - "null", - "array" - ] - }, - "event": { - "description": "associated event", - "$ref": "../BrAPI-Phenotyping/Event.json#/$defs/Event", - "relationshipType": "many-to-one", - "referencedAttribute": "eventParameters" - } - }, - "title": "EventParameters", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/Event.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json index 93e43b5b..5a503666 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "copyright": { "description": "The copyright information of this image. Example 'Copyright 2018 Bob Robertson'", @@ -33,10 +32,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -71,9 +68,25 @@ }, "imageLocation": { "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.", - "relationshipType": "one-to-one", - "referencedAttribute": "image", - "$ref": "../BrAPI-Common/GeoJSON.json#/$defs/GeoJSON" + "properties": { + "geometry": { + "description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed.", + "$ref": "../BrAPI-Common/GeoJSONGeometry.json#/$defs/GeoJSONGeometry" + }, + "type": { + "default": "Feature", + "description": "The literal string \"Feature\"", + "type": [ + "null", + "string" + ] + } + }, + "title": "GeoJSON", + "type": [ + "null", + "object" + ] }, "imageName": { "description": "The human readable name of an image. Might be the same as 'imageFileName', but could be different.", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Method.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Method.json index 5aaae643..a77b9f41 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Method.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Method.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "bibliographicalReference": { "description": "Bibliographical reference describing the method.\n
MIAPPE V1.1 (DM-91) Reference associated to the method - URI/DOI of reference describing the method.", @@ -23,10 +22,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -68,7 +65,6 @@ }, "ontologyReference": { "description": "MIAPPE V1.1\n\n(DM-85) Variable accession number - Accession number of the variable in the Crop Ontology\n\n(DM-87) Trait accession number - Accession number of the trait in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-89) Method accession number - Accession number of the method in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-93) Scale accession number - Accession number of the scale in a suitable controlled vocabulary (Crop Ontology).", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/OntologyReference.json#/$defs/OntologyReference" } }, diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json index 113d8d86..f35ac212 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "collector": { "description": "The name or identifier of the entity which collected the observation", @@ -16,10 +15,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -29,9 +26,25 @@ }, "geoCoordinates": { "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.", - "relationshipType": "one-to-one", - "referencedAttribute": "observation", - "$ref": "../BrAPI-Common/GeoJSON.json#/$defs/GeoJSON" + "properties": { + "geometry": { + "description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed.", + "$ref": "../BrAPI-Common/GeoJSONGeometry.json#/$defs/GeoJSONGeometry" + }, + "type": { + "default": "Feature", + "description": "The literal string \"Feature\"", + "type": [ + "null", + "string" + ] + } + }, + "title": "GeoJSON", + "type": [ + "null", + "object" + ] }, "germplasm": { "$ref": "../BrAPI-Germplasm/Germplasm.json#/$defs/Germplasm", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json index 7b312820..616adb86 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "cross": { "$ref": "../BrAPI-Germplasm/Cross.json#/$defs/Cross", @@ -15,10 +14,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -58,16 +55,110 @@ }, "observationUnitPosition": { "description": "All positional and layout information related to this Observation Unit \n\nMIAPPE V1.1 (DM-73) Spatial distribution - Type and value of a spatial coordinate (georeference or relative) \nor level of observation (plot 45, subblock 7, block 2) provided as a key-value pair of the form type:value. \nLevels of observation must be consistent with those listed in the Study section.", - "relationshipType": "one-to-many", - "referencedAttribute": "observationUnit", - "items": { - "$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/ObservationUnitPosition", - "description": "ObservationUnitPosition" + "properties": { + "entryType": { + "description": "The type of entry for this observation unit. ex. \"CHECK\", \"TEST\", \"FILLER\"", + "enum": [ + "CHECK", + "TEST", + "FILLER", + null + ], + "type": [ + "null", + "string" + ] + }, + "geoCoordinates": { + "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": { + "geometry": { + "description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed.", + "$ref": "../BrAPI-Common/GeoJSONGeometry.json#/$defs/GeoJSONGeometry" + }, + "type": { + "default": "Feature", + "description": "The literal string \"Feature\"", + "type": [ + "null", + "string" + ] + } + }, + "title": "GeoJSON", + "type": [ + "null", + "object" + ] + }, + "observationLevel": { + "$ref": "../BrAPI-Phenotyping/ObservationUnitLevel.json#/$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.\" " + }, + "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** ", + "items": { + "$ref": "../BrAPI-Phenotyping/ObservationUnitLevelRelationship.json#/$defs/ObservationUnitLevelRelationship" + }, + "type": [ + "null", + "array" + ] + }, + "positionCoordinateX": { + "description": "The X position coordinate for an observation unit. Different systems may use different coordinate systems.", + "type": [ + "null", + "string" + ] + }, + "positionCoordinateXType": { + "description": "The type of positional coordinate used. Must be one of the following values \n\nLONGITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nLATITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nPLANTED_ROW - The physical planted row number \n\nPLANTED_INDIVIDUAL - The physical counted number, could be independent or within a planted row \n\nGRID_ROW - The row index number of a square grid overlay \n\nGRID_COL - The column index number of a square grid overlay \n\nMEASURED_ROW - The distance in meters from a defined 0-th row \n\nMEASURED_COL - The distance in meters from a defined 0-th column ", + "enum": [ + "LONGITUDE", + "LATITUDE", + "PLANTED_ROW", + "PLANTED_INDIVIDUAL", + "GRID_ROW", + "GRID_COL", + "MEASURED_ROW", + "MEASURED_COL", + null + ], + "type": [ + "null", + "string" + ] + }, + "positionCoordinateY": { + "description": "The Y position coordinate for an observation unit. Different systems may use different coordinate systems.", + "type": [ + "null", + "string" + ] + }, + "positionCoordinateYType": { + "description": "The type of positional coordinate used. Must be one of the following values \n\nLONGITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nLATITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nPLANTED_ROW - The physical planted row number \n\nPLANTED_INDIVIDUAL - The physical counted number, could be independent or within a planted row \n\nGRID_ROW - The row index number of a square grid overlay \n\nGRID_COL - The column index number of a square grid overlay \n\nMEASURED_ROW - The distance in meters from a defined 0-th row \n\nMEASURED_COL - The distance in meters from a defined 0-th column ", + "enum": [ + "LONGITUDE", + "LATITUDE", + "PLANTED_ROW", + "PLANTED_INDIVIDUAL", + "GRID_ROW", + "GRID_COL", + "MEASURED_ROW", + "MEASURED_COL", + null + ], + "type": [ + "null", + "string" + ] + } }, - "title": "ObservationUnitPosition", "type": [ "null", - "array" + "object" ] }, "program": { @@ -90,13 +181,25 @@ }, "treatments": { "description": "List of treatments applied to an observation unit.\n\nMIAPPE V1.1 (DM-74) Observation Unit factor value - List of values for each factor applied to the observation unit.", - "relationshipType": "one-to-many", - "referencedAttribute": "observationUnit", "items": { - "$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/Treatment", - "description": "Treatments" + "properties": { + "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": [ + "null", + "string" + ] + }, + "modality": { + "description": "The treatment/factor description. ex. 'low fertilizer', 'yellow rust inoculation', 'high water', etc\n\nMIAPPE V1.1 (DM-62) Experimental Factor description - Free text description of the experimental factor. This includes all relevant treatments planned and protocol planned for all the plants targeted by a given experimental factor. ", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "Treatments", "type": [ "null", "array" @@ -173,150 +276,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "ObservationUnitPosition": { - "properties": { - "entryType": { - "description": "The type of entry for this observation unit. ex. \"CHECK\", \"TEST\", \"FILLER\"", - "enum": [ - "CHECK", - "TEST", - "FILLER", - null - ], - "type": [ - "null", - "string" - ] - }, - "geoCoordinates": { - "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.", - "relationshipType": "one-to-many", - "referencedAttribute": "observationUnit", - "items": { - "$ref": "../BrAPI-Common/GeoJSON.json#/$defs/GeoJSON", - "description": "A geometry as defined by GeoJSON (RFC 7946). In this context, only Point or Polygon geometry are allowed." - }, - "title": "GeoJSON", - "type": [ - "null", - "array" - ] - }, - "observationLevel": { - "$ref": "../BrAPI-Phenotyping/ObservationUnitLevel.json#/$defs/ObservationUnitLevel", - "relationshipType": "one-to-one", - "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.\" " - }, - "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", - "items": { - "$ref": "../BrAPI-Phenotyping/ObservationUnitLevelRelationship.json#/$defs/ObservationUnitLevelRelationship" - }, - "type": [ - "null", - "array" - ] - }, - "positionCoordinateX": { - "description": "The X position coordinate for an observation unit. Different systems may use different coordinate systems.", - "type": [ - "null", - "string" - ] - }, - "positionCoordinateXType": { - "description": "The type of positional coordinate used. Must be one of the following values \n\nLONGITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nLATITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nPLANTED_ROW - The physical planted row number \n\nPLANTED_INDIVIDUAL - The physical counted number, could be independent or within a planted row \n\nGRID_ROW - The row index number of a square grid overlay \n\nGRID_COL - The column index number of a square grid overlay \n\nMEASURED_ROW - The distance in meters from a defined 0-th row \n\nMEASURED_COL - The distance in meters from a defined 0-th column ", - "enum": [ - "LONGITUDE", - "LATITUDE", - "PLANTED_ROW", - "PLANTED_INDIVIDUAL", - "GRID_ROW", - "GRID_COL", - "MEASURED_ROW", - "MEASURED_COL", - null - ], - "type": [ - "null", - "string" - ] - }, - "positionCoordinateY": { - "description": "The Y position coordinate for an observation unit. Different systems may use different coordinate systems.", - "type": [ - "null", - "string" - ] - }, - "positionCoordinateYType": { - "description": "The type of positional coordinate used. Must be one of the following values \n\nLONGITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nLATITUDE - ISO 6709 standard, WGS84 geodetic datum. See 'Location Coordinate Encoding' for details \n\nPLANTED_ROW - The physical planted row number \n\nPLANTED_INDIVIDUAL - The physical counted number, could be independent or within a planted row \n\nGRID_ROW - The row index number of a square grid overlay \n\nGRID_COL - The column index number of a square grid overlay \n\nMEASURED_ROW - The distance in meters from a defined 0-th row \n\nMEASURED_COL - The distance in meters from a defined 0-th column ", - "enum": [ - "LONGITUDE", - "LATITUDE", - "PLANTED_ROW", - "PLANTED_INDIVIDUAL", - "GRID_ROW", - "GRID_COL", - "MEASURED_ROW", - "MEASURED_COL", - null - ], - "type": [ - "null", - "string" - ] - }, - "observationUnit": { - "description": "associated observation Unit", - "$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/ObservationUnit", - "relationshipType": "many-to-one", - "referencedAttribute": "observationUnitPosition" - } - }, - "title": "ObservationUnitPosition", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "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": [ - "null", - "string" - ] - }, - "modality": { - "description": "The treatment/factor description. ex. 'low fertilizer', 'yellow rust inoculation', 'high water', etc\n\nMIAPPE V1.1 (DM-62) Experimental Factor description - Free text description of the experimental factor. This includes all relevant treatments planned and protocol planned for all the plants targeted by a given experimental factor. ", - "type": [ - "null", - "string" - ] - }, - "observationUnit": { - "description": "associated observation Unit", - "$ref": "../BrAPI-Phenotyping/ObservationUnit.json#/$defs/ObservationUnit", - "relationshipType": "many-to-one", - "referencedAttribute": "treatments" - } - }, - "required": [ - "treatmentDbId" - ], - "title": "Treatments", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnit.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json index 95f669cf..2dce1bda 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevel.json @@ -23,13 +23,6 @@ "null", "integer" ] - }, - "observationUnitLevelDbId": { - "description": "The ID which uniquely identifies a observation unit level", - "type": [ - "null", - "string" - ] } }, "required": [], diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json index 4ebf7161..1334d054 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/ObservationUnitLevelRelationship.json @@ -30,13 +30,6 @@ "null", "string" ] - }, - "observationUnitLevelRelationshipDbId": { - "description": "The ID which uniquely identifies a observaton unit level relationship", - "type": [ - "null", - "string" - ] } }, "title": "ObservationUnitLevelRelationship", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Ontology.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Ontology.json index 01e6a8f2..3db0da56 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Ontology.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Ontology.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "authors": { "description": "Ontology's list of authors (no specific format)", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json index 73131985..0fea9eb3 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json @@ -4,13 +4,30 @@ "properties": { "documentationLinks": { "description": "links to various ontology documentation", - "relationshipType": "one-to-many", - "referencedAttribute": "ontologyReference", "items": { - "$ref": "../BrAPI-Phenotyping/OntologyReference.json#/$defs/DocumentationLink", - "description": "DocumentationLinks" + "properties": { + "URL": { + "format": "uri", + "type": [ + "null", + "string" + ] + }, + "type": { + "enum": [ + "OBO", + "RDF", + "WEBPAGE", + null + ], + "type": [ + "null", + "string" + ] + } + }, + "type": "object" }, - "title": "DocumentationLinks", "type": [ "null", "array" @@ -18,15 +35,7 @@ }, "ontology": { "description": "The Ontology for this reference", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/Ontology.json#/$defs/Ontology" - }, - "ontologyReferenceDbId": { - "description": "The ID which uniquely identifies a ontology reference", - "type": [ - "null", - "string" - ] }, "version": { "description": "Ontology version (no specific format)", @@ -44,40 +53,6 @@ "brapi-metadata": { "primaryModel": false } - }, - "DocumentationLink": { - "properties": { - "URL": { - "format": "uri", - "type": [ - "null", - "string" - ] - }, - "type": { - "enum": [ - "OBO", - "RDF", - "WEBPAGE", - null - ], - "type": [ - "null", - "string" - ] - }, - "ontologyReference": { - "description": "associated ontology reference", - "$ref": "../BrAPI-Phenotyping/OntologyReference.json#/$defs/OntologyReference", - "relationshipType": "many-to-one", - "referencedAttribute": "documentationLinks" - } - }, - "title": "DocumentationLinks", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/OntologyReference.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json index 55a6b9eb..eef9e433 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "dataType": { "description": "

Class of the scale, entries can be

\n

\"Code\" - This scale class is exceptionally used to express complex traits. Code is a nominal scale that combines the expressions of the different traits composing the complex trait. For example a severity trait might be expressed by a 2 digit and 2 character code. The first 2 digits are the percentage of the plant covered by a fungus and the 2 characters refer to the delay in development, e.g. \"75VD\" means \"75 %\" of the plant is infected and the plant is very delayed.

\n

\"Date\" - The date class is for events expressed in a time format, See ISO 8601

\n

\"Duration\" - The Duration class is for time elapsed between two events expressed in a time format, e.g. days, hours, months

\n

\"Nominal\" - Categorical scale that can take one of a limited and fixed number of categories. There is no intrinsic ordering to the categories

\n

\"Numerical\" - Numerical scales express the trait with real numbers. The numerical scale defines the unit e.g. centimeter, ton per hectare, branches

\n

\"Ordinal\" - Ordinal scales are scales composed of ordered categories

\n

\"Text\" - A free text is used to express the trait.

", @@ -33,10 +32,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -46,7 +43,6 @@ }, "ontologyReference": { "description": "MIAPPE V1.1\n\n(DM-85) Variable accession number - Accession number of the variable in the Crop Ontology\n\n(DM-87) Trait accession number - Accession number of the trait in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-89) Method accession number - Accession number of the method in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-93) Scale accession number - Accession number of the scale in a suitable controlled vocabulary (Crop Ontology).", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/OntologyReference.json#/$defs/OntologyReference" }, "scaleDbId": { @@ -72,16 +68,51 @@ ] }, "validValues": { - "relationshipType": "one-to-many", - "referencedAttribute": "scale", - "items": { - "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/ValidValue", - "description": "ValidValues" + "properties": { + "categories": { + "description": "List of possible values with optional labels", + "items": { + "properties": { + "label": { + "description": "A text label for a category", + "type": [ + "null", + "string" + ] + }, + "value": { + "description": "The actual value for a category", + "type": [ + "null", + "string" + ] + } + }, + "type": "object" + }, + "type": [ + "null", + "array" + ] + }, + "maximumValue": { + "description": "Maximum value for numerical, date, and time scales. Typically used for data capture control and QC.", + "type": [ + "null", + "string" + ] + }, + "minimumValue": { + "description": "Minimum value for numerical, date, and time scales. Typically used for data capture control and QC.", + "type": [ + "null", + "string" + ] + } }, - "title": "ValidValues", "type": [ "null", - "array" + "object" ] } }, @@ -94,78 +125,6 @@ "brapi-metadata": { "primaryModel": true } - }, - "ValidValues": { - "properties": { - "categories": { - "description": "List of possible values with optional labels", - "relationshipType": "one-to-many", - "referencedAttribute": "validValues", - "items": { - "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/Category", - "description": "Categories" - }, - "title": "Categories", - "type": [ - "null", - "array" - ] - }, - "maximumValue": { - "description": "Maximum value for numerical, date, and time scales. Typically used for data capture control and QC.", - "type": [ - "null", - "string" - ] - }, - "minimumValue": { - "description": "Minimum value for numerical, date, and time scales. Typically used for data capture control and QC.", - "type": [ - "null", - "string" - ] - }, - "scale": { - "description": "associated scale", - "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/Scale", - "relationshipType": "many-to-one", - "referencedAttribute": "validValues" - } - }, - "title": "ValidValues", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } - }, - "Category": { - "properties": { - "label": { - "description": "A text label for a category", - "type": [ - "null", - "string" - ] - }, - "value": { - "description": "The actual value for a category", - "type": [ - "null", - "string" - ] - }, - "validValues": { - "description": "associated valid values", - "$ref": "../BrAPI-Phenotyping/Scale.json#/$defs/ValidValues", - "relationshipType": "many-to-one", - "referencedAttribute": "categories" - } - }, - "title": "Categories", - "type": "object", - "brapi-metadata": { - "primaryModel": false - } } }, "$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/Scale.json", diff --git a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Trait.json b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Trait.json index bf996d19..d800413c 100644 --- a/Specification/BrAPI-Schema/BrAPI-Phenotyping/Trait.json +++ b/Specification/BrAPI-Schema/BrAPI-Phenotyping/Trait.json @@ -4,8 +4,7 @@ "properties": { "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", - "relationshipType": "one-to-one" + "$ref": "../BrAPI-Common/AdditionalInfo.json#/$defs/AdditionalInfo" }, "alternativeAbbreviations": { "description": "A list of shortened, human readable, names for a Trait. These abbreviations are acceptable alternatives to the mainAbbreviation and do not need to follow any formatting convention.", @@ -47,10 +46,8 @@ }, "externalReferences": { "description": "An array of external reference ids. These are references to this piece of data in an external system. Could be a simple string or a URI.", - "relationshipType": "one-to-many", "items": { - "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference", - "description": "ExternalReferences" + "$ref": "../BrAPI-Common/ExternalReference.json#/$defs/ExternalReference" }, "title": "ExternalReferences", "type": [ @@ -67,7 +64,6 @@ }, "ontologyReference": { "description": "MIAPPE V1.1\n\n(DM-85) Variable accession number - Accession number of the variable in the Crop Ontology\n\n(DM-87) Trait accession number - Accession number of the trait in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-89) Method accession number - Accession number of the method in a suitable controlled vocabulary (Crop Ontology, Trait Ontology).\n\n(DM-93) Scale accession number - Accession number of the scale in a suitable controlled vocabulary (Crop Ontology).", - "relationshipType": "one-to-one", "$ref": "../BrAPI-Phenotyping/OntologyReference.json#/$defs/OntologyReference" }, "status": { diff --git a/Specification/BrAPI-Schema/Requests/CrossingProjectRequest.json b/Specification/BrAPI-Schema/Requests/CrossingProjectRequest.json index ce9d0e4d..021be926 100644 --- a/Specification/BrAPI-Schema/Requests/CrossingProjectRequest.json +++ b/Specification/BrAPI-Schema/Requests/CrossingProjectRequest.json @@ -29,7 +29,7 @@ "description": "If the parameter 'includePotentialParents' is false, the array 'potentialParents' should be empty, null, or excluded from the response object.", "type": "boolean" } - } + } } ], "brapi-metadata": { diff --git a/Specification/BrAPI-Schema/Requests/GermplasmRequest.json b/Specification/BrAPI-Schema/Requests/GermplasmRequest.json index f2d2d6ec..2013aaee 100644 --- a/Specification/BrAPI-Schema/Requests/GermplasmRequest.json +++ b/Specification/BrAPI-Schema/Requests/GermplasmRequest.json @@ -17,6 +17,7 @@ { "$ref": "Parameters/TrialParameters.json#/$defs/TrialParameters" }, + { "type": "object", "properties": { diff --git a/Specification/BrAPI-Schema/Requests/PedigreeNodeRequest.json b/Specification/BrAPI-Schema/Requests/PedigreeNodeRequest.json index 6b2854b7..26e97265 100644 --- a/Specification/BrAPI-Schema/Requests/PedigreeNodeRequest.json +++ b/Specification/BrAPI-Schema/Requests/PedigreeNodeRequest.json @@ -17,6 +17,7 @@ { "$ref": "Parameters/TrialParameters.json#/$defs/TrialParameters" }, + { "type": "object", "properties": { diff --git a/Specification/BrAPI-Schema/Requests/SampleRequest.json b/Specification/BrAPI-Schema/Requests/SampleRequest.json index f390995e..2c7ca6f1 100644 --- a/Specification/BrAPI-Schema/Requests/SampleRequest.json +++ b/Specification/BrAPI-Schema/Requests/SampleRequest.json @@ -2,6 +2,7 @@ "$defs": { "SampleRequest": { "allOf": [ + { "$ref": "Parameters/CommonCropNamesParameters.json#/$defs/CommonCropNamesParameters" }, @@ -17,6 +18,7 @@ { "$ref": "Parameters/TrialParameters.json#/$defs/TrialParameters" }, + { "type": "object", "properties": {