{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:PropertyValue",
  "title": "PropertyValue",
  "description": "A property-value pair, e.g. representing a feature of a product or place. Use the 'name' property for the name of the property. If there is an additional human-readable version of the value, put that into the 'description' property.\\n\\n Always use specific schema.org properties when a) they exist and b) you can populate them. Using PropertyValue as a substitute will typically not trigger the same effect as using the original, specific property.\n    ",
  "type": "object",
  "allOf": [
    {
      "description": "Structured values are used when the value of a property has a more complex structure than simply being a textual value or a reference to another thing.",
      "$ref": "schema:StructuredValue"
    }
  ],
  "properties": {
    "maxValue": {
      "description": "The upper value of some characteristic or property.",
      "type": "number"
    },
    "measurementMethod": {
      "description": "A subproperty of [[measurementTechnique]] that can be used for specifying specific methods, in particular via [[MeasurementMethodEnum]].",
      "oneOf": [
        {
          "anyOf": [
            { "type": "string", "format": "uri" },
            { "type": "string" },
            { "$ref": "schema:DefinedTerm" },
            { "$ref": "schema:MeasurementMethodEnum" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string", "format": "uri" },
              { "type": "string" },
              { "$ref": "schema:DefinedTerm" },
              { "$ref": "schema:MeasurementMethodEnum" }
            ]
          }
        }
      ]
    },
    "measurementTechnique": {
      "description": "A technique, method or technology used in an [[Observation]], [[StatisticalVariable]] or [[Dataset]] (or [[DataDownload]], [[DataCatalog]]), corresponding to the method used for measuring the corresponding variable(s) (for datasets, described using [[variableMeasured]]; for [[Observation]], a [[StatisticalVariable]]). Often but not necessarily each [[variableMeasured]] will have an explicit representation as (or mapping to) an property such as those defined in Schema.org, or other RDF vocabularies and \"knowledge graphs\". In that case the subproperty of [[variableMeasured]] called [[measuredProperty]] is applicable.\n    \nThe [[measurementTechnique]] property helps when extra clarification is needed about how a [[measuredProperty]] was measured. This is oriented towards scientific and scholarly dataset publication but may have broader applicability; it is not intended as a full representation of measurement, but can often serve as a high level summary for dataset discovery. \n\nFor example, if [[variableMeasured]] is: molecule concentration, [[measurementTechnique]] could be: \"mass spectrometry\" or \"nmr spectroscopy\" or \"colorimetry\" or \"immunofluorescence\". If the [[variableMeasured]] is \"depression rating\", the [[measurementTechnique]] could be \"Zung Scale\" or \"HAM-D\" or \"Beck Depression Inventory\". \n\nIf there are several [[variableMeasured]] properties recorded for some given data object, use a [[PropertyValue]] for each [[variableMeasured]] and attach the corresponding [[measurementTechnique]]. The value can also be from an enumeration, organized as a [[MeasurementMetholdEnumeration]].",
      "oneOf": [
        {
          "anyOf": [
            { "type": "string", "format": "uri" },
            { "type": "string" },
            { "$ref": "schema:DefinedTerm" },
            { "$ref": "schema:MeasurementMethodEnum" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string", "format": "uri" },
              { "type": "string" },
              { "$ref": "schema:DefinedTerm" },
              { "$ref": "schema:MeasurementMethodEnum" }
            ]
          }
        }
      ]
    },
    "minValue": {
      "description": "The lower value of some characteristic or property.",
      "type": "number"
    },
    "propertyID": {
      "description": "A commonly used identifier for the characteristic represented by the property, e.g. a manufacturer or a standard code for a property. propertyID can be\n(1) a prefixed string, mainly meant to be used with standards for product properties; (2) a site-specific, non-prefixed string (e.g. the primary key of the property or the vendor-specific ID of the property), or (3)\na URL indicating the type of the property, either pointing to an external vocabulary, or a Web resource that describes the property (e.g. a glossary entry).\nStandards bodies should promote a standard prefix for the identifiers of properties from their standards.",
      "oneOf": [
        {
          "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string", "format": "uri" },
              { "type": "string" }
            ]
          }
        }
      ]
    },
    "unitCode": {
      "description": "The unit of measurement given using the UN/CEFACT Common Code (3 characters) or a URL. Other codes than the UN/CEFACT Common Code may be used with a prefix followed by a colon.",
      "anyOf": [{ "type": "string", "format": "uri" }, { "type": "string" }]
    },
    "unitText": {
      "description": "A string or text indicating the unit of measurement. Useful if you cannot provide a standard unit code for\nunitCode.",
      "oneOf": [
        { "type": "string" },
        { "type": "array", "items": { "type": "string" } }
      ]
    },
    "value": {
      "description": "The value of a [[QuantitativeValue]] (including [[Observation]]) or property value node.\\n\\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\\n* For [[PropertyValue]], it can be 'Text', 'Number', 'Boolean', or 'StructuredValue'.\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similar Unicode symbols.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.",
      "anyOf": [
        { "type": "boolean" },
        { "type": "number" },
        { "type": "string" },
        { "$ref": "schema:StructuredValue" }
      ]
    },
    "valueReference": {
      "description": "A secondary value that provides additional information on the original value, e.g. a reference temperature or a type of measurement.",
      "oneOf": [
        {
          "anyOf": [
            { "type": "string" },
            { "$ref": "schema:DefinedTerm" },
            { "$ref": "schema:Enumeration" },
            { "$ref": "schema:MeasurementTypeEnumeration" },
            { "$ref": "schema:PropertyValue" },
            { "$ref": "schema:QualitativeValue" },
            { "$ref": "schema:QuantitativeValue" },
            { "$ref": "schema:StructuredValue" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "string" },
              { "$ref": "schema:DefinedTerm" },
              { "$ref": "schema:Enumeration" },
              { "$ref": "schema:MeasurementTypeEnumeration" },
              { "$ref": "schema:PropertyValue" },
              { "$ref": "schema:QualitativeValue" },
              { "$ref": "schema:QuantitativeValue" },
              { "$ref": "schema:StructuredValue" }
            ]
          }
        }
      ]
    }
  }
}
