Criterion
A criterion: one rule that must be checked. It compares a metric, summed up by a statistic over a period, with a limit, for the features it applies to.
https://opendevelopmentstandards.org/schema/1.0.0-rc.2/core/Criterion.json
Fields
idtextnot emptyThe record's id: unique within the document.
nameRequiredtextThe name people use for the record.
descriptiontextWhat the record is, in words.
citationThe part of the published framework that states the rule, such as its section, its table or its numbered requirement.
metricCode fromcore/quantities or acoustics/quantitiesWhat is measured or calculated, as a code from a quantities vocabulary, such as
a_weighted_sound_pressure_level.statisticHow the metric sums up the data, such as the energy mean.
averagingduration (ISO 8601)The time each value of the metric covers, such as PT1H.
periodThe window that repeats which the metric covers, such as night-time.
comparisonOne ofthe codes belowHow the metric is compared with the limit.
less- The metric must be less than the limit.
less_or_equal- The metric must be at most the limit.
greater- The metric must be more than the limit.
greater_or_equal- The metric must be at least the limit.
equal- The metric must equal the limit.
limitappliesTowhenWhen the criterion applies. Leave it out when it always applies.
modeOne ofthe codes belowHow the criterion combines with the other criteria that apply.
additive- Its controls add to the governing set.
exclusive- It replaces the controls of the other criteria that apply.
restrictive- Only its stricter controls add to the governing set.
mandatory- It always applies.
prioritynumberIts order among criteria that apply together: higher first.
dependenciesList ofId ofCriterionThe criteria that must be checked first.
controlsList ofId ofControlThe controls that hold when the criterion applies.
AppliesTo
What the criterion applies to. A feature must match every list given.
featureTypesList ofCode fromcore/feature_typesThe feature types the criterion applies to.
receptorClassesThe receptor classes the criterion applies to.
featuresList ofId ofFeatureThe features the criterion applies to, by id.
Links
Points at Records whose ids this record holds, with the field that holds each.
- PeriodPartperiodA recurring window in local time that a rule judges by, such as night-time from 22:00 to 07:00. A window whose end is not after its start runs past midnight.
- ControlPartcontrolsA check on how an evaluation is done, which a framework sets, such as "a person approves each decision" or "measurements use a Class 1 meter". A mitigation is not a control: a barrier is a Structure, and a site's own limit is a criterion of its Permit.
- FeatureEntityAppliesTo.featuresA natural or built object with a place and properties, such as a wellsite, a dwelling or a road. As in ISO 19101. A feature where a framework judges effects is a receptor and has a receptor class.
Held by Records that embed this one, with their field that holds it.
Pointed at by Records that hold this one's id, with their field that holds it.
- AssessmentEntityConclusion.criterionAn evaluation of a development and its result, such as a noise impact assessment. It names its authors, scope and framework, the traces and evidence it rests on, and its conclusions. A trace is one run; an assessment can rest on many.
- StepPartcriterionOne unit of work in a flow, such as a calculation, a question, a decision or a run of an algorithm. A sealed step names its inputs, its outputs and the algorithm it claims to follow, but not how it works.
Examples
An id that another example defines opens that record.
Example 2
{
"id": "criterion-night",
"name": "Night-time permissible sound level",
"metric": "a_weighted_sound_pressure_level",
"statistic": {
"type": "energy_mean"
},
"period": "period-night",
"comparison": "less_or_equal",
"limit": {
"variable": "variable-night-psl"
},
"appliesTo": {
"receptorClasses": [
"dwelling"
]
},
"mode": "mandatory"
}Show 1 more exampleHide the other example
Example 1
{
"id": "criterion-1",
"name": "Night-time permissible sound level"
}Changes and file
Changes
- 0.1.0 First version.
Schema file
Show the JSON SchemaHide the JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://opendevelopmentstandards.org/schema/1.0.0-rc.2/core/Criterion.json",
"title": "Criterion",
"description": "A criterion: one rule that must be checked. It compares a metric, summed up by a statistic over a period, with a limit, for the features it applies to.",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The record's id: unique within the document."
},
"name": {
"type": "string",
"description": "The name people use for the record."
},
"description": {
"type": "string",
"description": "What the record is, in words."
},
"citation": {
"$ref": "Citation.json",
"description": "The part of the published framework that states the rule, such as its section, its table or its numbered requirement."
},
"metric": {
"type": "string",
"pattern": "^[a-z0-9]+(_[a-z0-9]+)*(\\.[a-z0-9]+(_[a-z0-9]+)*)*$",
"x-ods-vocabulary": "*/quantities",
"description": "What is measured or calculated, as a code from a quantities vocabulary, such as `a_weighted_sound_pressure_level`."
},
"statistic": {
"$ref": "Statistic.json",
"description": "How the metric sums up the data, such as the energy mean."
},
"averaging": {
"type": "string",
"pattern": "^-?P(?!$)(\\d+(\\.\\d+)?Y)?(\\d+(\\.\\d+)?M)?(\\d+(\\.\\d+)?W)?(\\d+(\\.\\d+)?D)?(T(?=\\d)(\\d+(\\.\\d+)?H)?(\\d+(\\.\\d+)?M)?(\\d+(\\.\\d+)?S)?)?$",
"description": "The time each value of the metric covers, such as PT1H."
},
"period": {
"type": "string",
"minLength": 1,
"x-ods-ref": "Period",
"description": "The window that repeats which the metric covers, such as night-time."
},
"comparison": {
"type": "string",
"enum": [
"less",
"less_or_equal",
"greater",
"greater_or_equal",
"equal"
],
"description": "How the metric is compared with the limit.",
"x-ods-options": [
{
"value": "less",
"title": "Less",
"description": "The metric must be less than the limit."
},
{
"value": "less_or_equal",
"title": "Less or equal",
"description": "The metric must be at most the limit."
},
{
"value": "greater",
"title": "Greater",
"description": "The metric must be more than the limit."
},
{
"value": "greater_or_equal",
"title": "Greater or equal",
"description": "The metric must be at least the limit."
},
{
"value": "equal",
"title": "Equal",
"description": "The metric must equal the limit."
}
]
},
"limit": {
"$ref": "Expression.json",
"description": "The limit: a Value, a variable, or a formula, such as the ambient level plus 5 dB."
},
"appliesTo": {
"$ref": "#/$defs/AppliesTo"
},
"when": {
"$ref": "Expression.json",
"description": "When the criterion applies. Leave it out when it always applies."
},
"mode": {
"type": "string",
"enum": [
"additive",
"exclusive",
"restrictive",
"mandatory"
],
"description": "How the criterion combines with the other criteria that apply.",
"x-ods-options": [
{
"value": "additive",
"title": "Additive",
"description": "Its controls add to the governing set."
},
{
"value": "exclusive",
"title": "Exclusive",
"description": "It replaces the controls of the other criteria that apply."
},
{
"value": "restrictive",
"title": "Restrictive",
"description": "Only its stricter controls add to the governing set."
},
{
"value": "mandatory",
"title": "Mandatory",
"description": "It always applies."
}
]
},
"priority": {
"type": "number",
"description": "Its order among criteria that apply together: higher first."
},
"dependencies": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"x-ods-ref": "Criterion"
},
"description": "The criteria that must be checked first."
},
"controls": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"x-ods-ref": "Control"
},
"description": "The controls that hold when the criterion applies."
}
},
"required": [
"name"
],
"patternProperties": {
"^x-": {}
},
"unevaluatedProperties": false,
"$defs": {
"AppliesTo": {
"type": "object",
"properties": {
"featureTypes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(_[a-z0-9]+)*(\\.[a-z0-9]+(_[a-z0-9]+)*)*$",
"x-ods-vocabulary": "core/feature_types",
"description": "A feature type."
},
"description": "The feature types the criterion applies to."
},
"receptorClasses": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(_[a-z0-9]+)*(\\.[a-z0-9]+(_[a-z0-9]+)*)*$",
"x-ods-vocabulary": "core/receptor_classes",
"description": "A receptor class."
},
"description": "The receptor classes the criterion applies to."
},
"features": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"x-ods-ref": "Feature"
},
"description": "The features the criterion applies to, by id."
}
},
"description": "What the criterion applies to. A feature must match every list given.",
"patternProperties": {
"^x-": {}
},
"unevaluatedProperties": false
}
},
"examples": [
{
"id": "criterion-1",
"name": "Night-time permissible sound level"
},
{
"id": "criterion-night",
"name": "Night-time permissible sound level",
"metric": "a_weighted_sound_pressure_level",
"statistic": {
"type": "energy_mean"
},
"period": "period-night",
"comparison": "less_or_equal",
"limit": {
"variable": "variable-night-psl"
},
"appliesTo": {
"receptorClasses": [
"dwelling"
]
},
"mode": "mandatory"
}
],
"x-ods-status": "draft",
"x-ods-kind": "part",
"x-ods-module": "core",
"x-ods-changes": {
"0.1.0": "First version."
}
}