diff --git a/jsonschema/definitions/Concept.json b/jsonschema/definitions/Concept.json index 50f18ddd..0b05ba2a 100644 --- a/jsonschema/definitions/Concept.json +++ b/jsonschema/definitions/Concept.json @@ -7,14 +7,32 @@ { "type": "string", "title": "Concept", - "description": "The value of the concept, expressed as a string. This is only used when the concept is not further described by the properties of the Concept object and is not linked to a concept scheme." + "description": "The value of the concept, expressed as a string. This is only used when the concept is not further described by the properties of the Concept object and is not linked to a concept scheme.", + "examples": ["Environment", "Climate Science"] }, { "type": "object", + "examples": [ + { + "@type": "Concept", + "prefLabel": "Environment" + }, + { + "@type": "Concept", + "prefLabel": "Climate Science", + "definition": "The scientific study of climate patterns and change.", + "inScheme": { + "@id": "https://example.gov/concept-schemes/science-domains", + "@type": "ConceptScheme", + "title": "Science Domains" + } + } + ], "properties": { "@id": { "type": "string", - "format": "iri" + "format": "iri", + "examples": ["https://example.gov/concepts/environment"] }, "@type": { "type": "string", @@ -23,17 +41,36 @@ "altLabel": { "title": "alternate label", "description": "Alternative label for a concept", - "type": ["null", "string"] + "type": ["null", "string"], + "examples": ["Ecology"] }, "definition": { "title": "definition", "description": "Definition of the controlled vocabulary term", - "type": ["null", "string"] + "type": ["null", "string"], + "examples": [ + "The scientific study of climate patterns and change.", + "The natural world, including air, water, land, plants, and animals, especially as affected by human activity." + ] }, "inScheme": { "title": "in scheme", "description": "Concept scheme defining this concept", - "$ref": "/dcat-us/3.0.0/definitions/conceptscheme" + "$ref": "/dcat-us/3.0.0/definitions/conceptscheme", + "examples": [ + { + "@id": "https://example.gov/concept-schemes/science-domains", + "@type": "ConceptScheme", + "title": "Science Domains" + }, + { + "@id": "https://example.gov/concept-schemes/data-themes", + "@type": "ConceptScheme", + "version": "2.0", + "description": "DCAT-US approved themes for categorizing datasets", + "title": "Data Themes" + } + ] }, "notation": { "title": "notation", @@ -48,12 +85,14 @@ "type": "string" } } - ] + ], + "examples": [["ENV", "E01", "ENVI"]] }, "prefLabel": { "title": "preferred label", "description": "Preferred label for the term", - "type": "string" + "type": "string", + "examples": ["Environment", "Climate Science"] } }, "required": ["prefLabel"] @@ -62,5 +101,38 @@ "_oldDocs": { "rdfClass": "skos:Concept", "rationale": "The inclusion of skos:Concept in DCAT-US 3.0 enhances semantic search in catalogs, enabling more accurate discovery of Catalogs, Datasets, and Data Services. It improves user experience, promotes data discoverability, and supports better resource utilization. Additionally, it aligns with international standards like SKOS, ensuring compatibility and adherence to recognized controlled vocabulary practices." - } + }, + "examples": [ + "Environment", + "Climate Science", + { + "@type": "Concept", + "prefLabel": "Environment" + }, + { + "@type": "Concept", + "prefLabel": "Climate Science", + "definition": "The scientific study of climate patterns and change.", + "inScheme": { + "@id": "https://example.gov/concept-schemes/science-domains", + "@type": "ConceptScheme", + "title": "Science Domains" + } + }, + { + "@id": "https://example.gov/concepts/environment", + "@type": "Concept", + "prefLabel": "Environment", + "altLabel": "Ecology", + "definition": "The natural world, including air, water, land, plants, and animals, especially as affected by human activity.", + "notation": ["ENV", "E01", "ENVI"], + "inScheme": { + "@id": "https://example.gov/concept-schemes/data-themes", + "@type": "ConceptScheme", + "version": "2.0", + "description": "DCAT-US approved themes for categorizing datasets", + "title": "Data Themes" + } + } + ] } diff --git a/jsonschema/doc_templates/md/content.md b/jsonschema/doc_templates/md/content.md index 566c8897..bda421b2 100644 --- a/jsonschema/doc_templates/md/content.md +++ b/jsonschema/doc_templates/md/content.md @@ -14,7 +14,7 @@ {% set keys = schema.keywords %} {%- if not skip_headers %} -{% if schema.title and schema.title | length > 0 %} +{% if schema | should_render_title %} **Title:** {{ schema.title }} {% endif %} @@ -30,31 +30,30 @@ {% include "section_examples.md" %} {% endif %} +{# If this is a reference, do not expand inline #} {% if schema.should_be_a_link(config) %} + {# Only show the canonical link, not inline details #} {% elif schema.refers_to -%} - {# If it's referred to, we're linking to it, not including it here. #} - {%- with schema=schema.refers_to_merged, skip_headers=True, depth=depth -%} - {# include "content.md" #} - {% endwith %} + {# Only show the canonical link, not inline details #} {% else %} {# Properties, pattern properties, additional properties #} {% if schema.is_object %} - {{- schema | md_properties_table | md_generate_table -}} + {{- schema | md_properties_table | md_generate_table -}} {% endif %} {# Combining: allOf, anyOf, oneOf, not #} {% if schema.kw_all_of %} - {% with operator="allOf", title="All of(Requirement)", current_node=schema.kw_all_of, skip_required=True %} + {% with operator="allOf", title="All of", current_node=schema.kw_all_of, skip_required=True %} {% include "tabbed_section.md" %} {% endwith %} {% endif %} {% if schema.kw_any_of %} - {% with operator="anyOf", title="Any of(Option)", current_node=schema.kw_any_of, skip_required=True %} + {% with operator="anyOf", title="Any of", current_node=schema.kw_any_of, skip_required=True %} {% include "tabbed_section.md" %} {% endwith %} {% endif %} {% if schema.kw_one_of %} - {% with operator="oneOf", title="One of(Option)",current_node=schema.kw_one_of, skip_required=True %} + {% with operator="oneOf", title="One of", current_node=schema.kw_one_of, skip_required=True %} {% include "tabbed_section.md" %} {% endwith %} {% endif %} @@ -90,6 +89,12 @@ {# details of Properties, pattern properties, additional properties #} {% if schema.is_object %} - {% include "section_properties_details.md" %} + {% include "section_properties_details.md" %} {% endif %} {% endif %} + +{# Placeholder for See Also section for main classes #} +{% if schema.title in ["Catalog", "Dataset", "Dataset Series", "Distribution"] %} +--- +**See Also:** (related supporting classes) +{% endif %} diff --git a/jsonschema/doc_templates/md/section_array.md b/jsonschema/doc_templates/md/section_array.md index 2c4d6bff..37a77ebb 100644 --- a/jsonschema/doc_templates/md/section_array.md +++ b/jsonschema/doc_templates/md/section_array.md @@ -1,39 +1,50 @@ + {{ schema | md_array_restrictions | md_generate_table }} +{# Only show array items table; suppress inline details if canonical link exists #} {% if schema.array_items_def or schema.tuple_validation_items %} {{ schema | md_array_items_restrictions | md_generate_table }} {% endif %} +{# Only expand inline details for array items if not a reference/canonical link #} {% if schema.array_items_def %} -{% filter md_heading(depth+1, schema.array_items_def.html_id) %} -{% with schema=schema.array_items_def %}{%- include "breadcrumbs.md" %}{% endwith %} -{% endfilter %} -{% with schema=schema.array_items_def, skip_headers=False, depth=depth+1, skip_required=True %} - {% include "content.md" %} -{% endwith %} + {% set is_linked_array_item = schema.array_items_def.should_be_a_link(config) or schema.array_items_def.refers_to %} + {% if not is_linked_array_item %} + {% filter md_heading(depth+1, schema.array_items_def.html_id) %} + {{ schema.array_items_def.title or 'Array Item' }} + {% endfilter %} + {% with schema=schema.array_items_def, skip_headers=False, depth=depth+1, skip_required=True %} + {% include "content.md" %} + {% endwith %} + {% endif %} {% endif %} +{# Tuple validation items: only expand if not a reference #} {% if schema.tuple_validation_items %} -{% for item in schema.tuple_validation_items %} - {% filter md_heading(depth+1) %} - {% with schema=item %}{%- include "breadcrumbs.md" %}{% endwith %} - {% endfilter %} - {% with schema=item, skip_headers=False, depth=depth+1, skip_required=True %} - {% include "content.md" %} - {% endwith %} -{% endfor %} + {% for item in schema.tuple_validation_items %} + {% set is_linked_tuple_item = item.should_be_a_link(config) or item.refers_to %} + {% if not is_linked_tuple_item %} + {% filter md_heading(depth+1) %} + {{ item.title or 'Tuple Item' }} + {% endfilter %} + {% with schema=item, skip_headers=False, depth=depth+1, skip_required=True %} + {% include "content.md" %} + {% endwith %} + {% endif %} + {% endfor %} {% endif %} +{# Contains/Additional items unchanged for now #} {% if schema.kw_contains and schema.kw_contains.literal != {} %} -{{ "At least one of the items must be" | md_heading(depth+1) }} -{% with schema=schema.kw_contains, skip_headers=False, depth=depth+1, skip_required=True %} - {% include "content.md" %} -{% endwith %} + {{ "At least one of the items must be" | md_heading(depth+1) }} + {% with schema=schema.kw_contains, skip_headers=False, depth=depth+1, skip_required=True %} + {% include "content.md" %} + {% endwith %} {% endif %} {% if schema.array_additional_items_def %} -{{ "Additional items must be" | md_heading(depth+1) }} -{% with schema=schema.array_additional_items_def, skip_headers=False, depth=depth+1, skip_required=True %} - {% include "content.md" %} -{% endwith %} + {{ "Additional items must be" | md_heading(depth+1) }} + {% with schema=schema.array_additional_items_def, skip_headers=False, depth=depth+1, skip_required=True %} + {% include "content.md" %} + {% endwith %} {% endif %} diff --git a/jsonschema/doc_templates/md/section_examples.md b/jsonschema/doc_templates/md/section_examples.md index 206602a7..3c1e024b 100644 --- a/jsonschema/doc_templates/md/section_examples.md +++ b/jsonschema/doc_templates/md/section_examples.md @@ -1,16 +1,16 @@ **Example{% if examples|length > 1 %}s{% endif %}:**{{- "" -}} {% for example in examples %} - {%- if loop.first %}{{ "\n\n" }}{% endif -%} - {% set example_id = schema.html_id ~ "_ex" ~ loop.index %} - {%- if not examples_as_yaml -%} - {{- "" }}```json - {{- "\n" }}{{ example }} - {{- "\n" }}``` - {%- else -%} - {{- "" }}```yaml - {{- "\n" }}{{ example | yaml_example }} - {{- "\n" }}``` - {%- endif -%} - {{ "\n" }} + {%- if loop.first %}{{ "\n\n" }}{% endif -%} + {% set example_id = schema.html_id ~ "_ex" ~ loop.index %} + {%- if not examples_as_yaml -%} + {{- "" }}```json + {{- "\n" }}{{ example }} + {{- "\n" }}``` + {%- else -%} + {{- "" }}```yaml + {{- "\n" }}{{ example | yaml_example }} + {{- "\n" }}``` + {%- endif -%} + {{ "\n" }} {% endfor %} diff --git a/jsonschema/doc_templates/md/section_one_of.md b/jsonschema/doc_templates/md/section_one_of.md index a7c1ad27..cd86cb63 100644 --- a/jsonschema/doc_templates/md/section_one_of.md +++ b/jsonschema/doc_templates/md/section_one_of.md @@ -1,4 +1,13 @@ Must be one of: {% for enum_choice in schema.kw_enum.array_items %} * {{ enum_choice.literal | python_to_json }} -{% endfor %} \ No newline at end of file +{% endfor %} + +{# If there are subschemas with details, show them compactly #} +{% if schema.kw_one_of or schema.kw_any_of %} + {% for subschema in (schema.kw_one_of or schema.kw_any_of) %} + {% if subschema.title or subschema.description %} + - **{{ subschema.title or 'Option' }}**: {{ subschema.description or '' }} + {% endif %} + {% endfor %} +{% endif %} \ No newline at end of file diff --git a/jsonschema/doc_templates/md/section_properties_details.md b/jsonschema/doc_templates/md/section_properties_details.md index 7dbae033..0da4c5f7 100644 --- a/jsonschema/doc_templates/md/section_properties_details.md +++ b/jsonschema/doc_templates/md/section_properties_details.md @@ -4,18 +4,13 @@ {% endif %} {% set html_id = sub_property.html_id %} - {% set description = sub_property | get_description %} + {# Keep property headings minimal; requirement appears in the body below. #} {% filter md_heading(depth + 1, html_id) -%} - {%- filter replace('\n', '') -%} - {%- if not skip_required and sub_property.property_name -%} - {{ sub_property | requirement_badge -}}{{ ' ' }} - {%- endif -%} - {%- if sub_property is deprecated -%}~~ {%- endif -%} - {%- if sub_property.is_pattern_property %}Pattern {% endif %}Property `{% with schema=sub_property %}{%- include "breadcrumbs.md" %}{% endwith %}` - {%- if sub_property is deprecated -%}~~{%- endif -%} - {%- endfilter %} + {%- if sub_property is deprecated -%}~~ {%- endif -%} + `{% with schema=sub_property %}{%- include "breadcrumbs.md" %}{% endwith %}` + {%- if sub_property is deprecated -%}~~{%- endif -%} {%- endfilter %} {% if sub_property.is_pattern_property %} @@ -24,7 +19,6 @@ must respect the following conditions {% endif %} - {% with schema=sub_property, skip_headers=False, depth=depth+1 %} {% include "content.md" %} {% endwith %} diff --git a/jsonschema/doc_templates/md/tabbed_section.md b/jsonschema/doc_templates/md/tabbed_section.md index 3f43eb4e..17cb29b3 100644 --- a/jsonschema/doc_templates/md/tabbed_section.md +++ b/jsonschema/doc_templates/md/tabbed_section.md @@ -3,7 +3,7 @@ {% for node in current_node.array_items %} {% filter md_heading(depth+1, node.html_id) -%} - {% if node.is_pattern_property %}Pattern{% endif %} Property `{% with schema=node %}{%- include "breadcrumbs.md" %}{% endwith %}` + {% if node.is_pattern_property %}Pattern {% endif %}`{% with schema=node %}{%- include "breadcrumbs.md" %}{% endwith %}` {%- endfilter %} {% with schema=node, skip_headers=False, depth=depth+1 %} {% include "content.md" %} diff --git a/jsonschema/docs/AccessRestriction.md b/jsonschema/docs/AccessRestriction.md deleted file mode 100644 index 333d326d..00000000 --- a/jsonschema/docs/AccessRestriction.md +++ /dev/null @@ -1,131 +0,0 @@ - - -**Title:** AccessRestriction - -Rules or indicators that describe who can access a resource - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "AccessRestriction", - "restrictionStatus": "Restricted - Fully", - "specificRestriction": "PRMPA - National Security Classified (B)", - "restrictionNote": "Access restricted to authorized personnel only." -} -``` - -| Property | Type | Title/Description | -| ---------------------------------------------- | ------------------ | -------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [restrictionNote](#restrictionNote ) | null or string | restriction note | -| + [restrictionStatus](#restrictionStatus ) | object | restriction status | -| - [specificRestriction](#specificRestriction ) | More than one type | specific restriction | - -## [Optional] Property `AccessRestriction > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `AccessRestriction > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | --------------------- | -| **Default** | `"AccessRestriction"` | - -## [Optional] Property `AccessRestriction > restrictionNote` - -**Title:** restriction note - -**Requirement:** Optional - -A note related to the access restriction - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"Access restricted to authorized personnel only." -``` - -## [Optional] Property `AccessRestriction > restrictionStatus` - -**Title:** restriction status - -**Requirement:** Optional - -The indication of whether or not there are access restrictions on the item, consider using a controlled vocabulary such as https://www.archives.gov/research/catalog/lcdrg/authority-lists/access-restriction-status - -| **Type** | More than one type | -| ------------------------- | ----------------------- | -| **Required** | Yes | -| **Additional properties** | Any type allowed | -| **Defined in** | [Concept](./Concept.md) | - -**Examples:** - -```json -"Restricted - Fully" -``` - -```json -"Unrestricted" -``` - -## [Optional] Property `AccessRestriction > specificRestriction` - -**Title:** specific restriction - -**Requirement:** Optional - -Authority, code list entry, or policy reference that defines the specific access restriction; consider using a controlled vocabulary such as the NARA https://www.archives.gov/research/catalog/lcdrg/authority-lists/specific-access-restriction - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"CRCCRCA 4(1)(A)" -``` - -```json -"PRMPA - National Security Classified (B)" -``` - -| Any of(Option) | -| --------------------------------------------------------------- | -| [Null allowed when not required](#specificRestriction_anyOf_i0) | -| [Concept](#specificRestriction_anyOf_i1) | - -### Property `AccessRestriction > specificRestriction > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `AccessRestriction > specificRestriction > anyOf > Concept` - -**Title:** Concept - -inline description of the specific restriction - -| **Type** | More than one type | -| ------------------------- | --------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [restrictionStatus](#restrictionStatus) | - diff --git a/jsonschema/docs/Activity.md b/jsonschema/docs/Activity.md deleted file mode 100644 index 77bab59f..00000000 --- a/jsonschema/docs/Activity.md +++ /dev/null @@ -1,99 +0,0 @@ - - -**Title:** Activity - -An activity related to creating, changing, or using a resource - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Activity", - "label": "Data Collection", - "category": [ - "https://example.gov/concepts/data-collection" - ] -} -``` - -| Property | Type | Title/Description | -| ------------------------ | ------------- | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [category](#category ) | null or array | category | -| + [label](#label ) | string | label | - -## [Optional] Property `Activity > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/activities/data-processing-001" -``` - -## [Optional] Property `Activity > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ------------ | -| **Default** | `"Activity"` | - -## [Optional] Property `Activity > category` - -**Title:** category - -**Requirement:** Optional - -List of categories for the Activity - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#category_items) | A controlled term or label, optionally drawn from a concept scheme | - -### Activity > category > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Concept](./Concept.md) | - -## [Optional] Property `Activity > label` - -**Title:** label - -**Requirement:** Optional - -A human-readable label for the activity - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"Data Collection" -``` - -```json -"Data Processing and Quality Assurance" -``` - diff --git a/jsonschema/docs/Address.md b/jsonschema/docs/Address.md deleted file mode 100644 index 6b9bd7fb..00000000 --- a/jsonschema/docs/Address.md +++ /dev/null @@ -1,156 +0,0 @@ - - -**Title:** Address - -A single physical address - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Address", - "street-address": "151 Patton Avenue", - "locality": "Asheville", - "region": "NC", - "postal-code": "28801", - "country-name": "United States" -} -``` - -| Property | Type | Title/Description | -| ------------------------------------ | -------------- | ------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [country-name](#country-name ) | null or string | country | -| - [locality](#locality ) | null or string | locality | -| - [postal-code](#postal-code ) | null or string | postal code | -| - [region](#region ) | null or string | administrative area | -| - [street-address](#street-address ) | null or string | street address | - -## [Optional] Property `Address > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/addresses/hq-001" -``` - -## [Optional] Property `Address > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ----------- | -| **Default** | `"Address"` | - -## [Optional] Property `Address > country-name` - -**Title:** country - -**Requirement:** Optional - -The country of the Address - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"United States" -``` - -## [Optional] Property `Address > locality` - -**Title:** locality - -**Requirement:** Optional - -The city of the Address - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"Asheville" -``` - -```json -"Washington" -``` - -## [Optional] Property `Address > postal-code` - -**Title:** postal code - -**Requirement:** Optional - -The postal code of the Address - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"28801" -``` - -```json -"20230" -``` - -## [Optional] Property `Address > region` - -**Title:** administrative area - -**Requirement:** Optional - -The administrative area of the Address. Depending on the country, this corresponds to a province, a county, a region, or a state - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"NC" -``` - -```json -"DC" -``` - -## [Optional] Property `Address > street-address` - -**Title:** street address - -**Requirement:** Optional - -The street name and civic number of an Address - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"151 Patton Avenue" -``` - -```json -"1401 Constitution Ave NW" -``` - diff --git a/jsonschema/docs/Agent.md b/jsonschema/docs/Agent.md deleted file mode 100644 index 12eb9ce7..00000000 --- a/jsonschema/docs/Agent.md +++ /dev/null @@ -1,99 +0,0 @@ - - -**Title:** Agent - -A person, organization, software agent, or other entity involved with a resource - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Agent", - "name": "National Climate Data Center", - "category": [ - "https://example.gov/concepts/federal-agency" - ] -} -``` - -| Property | Type | Title/Description | -| ------------------------ | ------------- | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [category](#category ) | null or array | category | -| + [name](#name ) | string | name | - -## [Optional] Property `Agent > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/agents/data-steward-001" -``` - -## [Optional] Property `Agent > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | --------- | -| **Default** | `"Agent"` | - -## [Optional] Property `Agent > category` - -**Title:** category - -**Requirement:** Optional - -The type of the agent that makes the item available - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#category_items) | A controlled term or label, optionally drawn from a concept scheme | - -### Agent > category > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Concept](./Concept.md) | - -## [Optional] Property `Agent > name` - -**Title:** name - -**Requirement:** Optional - -The name of the agent - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"National Climate Data Center" -``` - -```json -"U.S. Department of Commerce Data Stewardship Office" -``` - diff --git a/jsonschema/docs/Attribution.md b/jsonschema/docs/Attribution.md deleted file mode 100644 index 9650ea6a..00000000 --- a/jsonschema/docs/Attribution.md +++ /dev/null @@ -1,83 +0,0 @@ - - -**Title:** Attribution - -A responsibility that an agent has for a resource - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Attribution", - "hadRole": "Data Steward", - "agent": { - "name": "Environmental Data Management Office" - } -} -``` - -| Property | Type | Title/Description | -| ---------------------- | ------ | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [hadRole](#hadRole ) | string | role | -| + [agent](#agent ) | object | agent | - -## [Optional] Property `Attribution > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/attributions/dataset-steward-001" -``` - -## [Optional] Property `Attribution > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | --------------- | -| **Default** | `"Attribution"` | - -## [Optional] Property `Attribution > hadRole` - -**Title:** role - -**Requirement:** Optional - -The function of an entity or agent with respect to another entity or resource - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Example:** - -```json -"Data Steward" -``` - -## [Optional] Property `Attribution > agent` - -**Title:** agent - -**Requirement:** Optional - -The agent that plays a role in the resource - -| **Type** | `object` | -| ------------------------- | ------------------- | -| **Required** | Yes | -| **Additional properties** | Any type allowed | -| **Defined in** | [Agent](./Agent.md) | - diff --git a/jsonschema/docs/CUIRestriction.md b/jsonschema/docs/CUIRestriction.md deleted file mode 100644 index 9949d825..00000000 --- a/jsonschema/docs/CUIRestriction.md +++ /dev/null @@ -1,125 +0,0 @@ - - -**Title:** CUIRestriction - -Information describing Controlled Unclassified Information (CUI) restrictions for a resource - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "CUIRestriction", - "cuiBannerMarking": "CUI//SP-CTI", - "designationIndicator": "Controlled by: Agency XYZ" -} -``` - -| Property | Type | Title/Description | -| ------------------------------------------------------------------ | ----------------------- | -------------------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [cuiBannerMarking](#cuiBannerMarking ) | string | CUI banner marking | -| + [designationIndicator](#designationIndicator ) | string | CUI designation indicator | -| - [requiredIndicatorPerAuthority](#requiredIndicatorPerAuthority ) | null or array of string | required indicator per authority | - -## [Optional] Property `CUIRestriction > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/cui-restrictions/dataset-001" -``` - -## [Optional] Property `CUIRestriction > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ------------------ | -| **Default** | `"CUIRestriction"` | - -## [Optional] Property `CUIRestriction > cuiBannerMarking` - -**Title:** CUI banner marking - -**Requirement:** Optional - -CUI (Controlled Unclassified Information) banner marking is required for any unclassified information that is deemed sensitive and requires protection; see information at https://www.archives.gov/cui/registry/category-marking-list - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"CUI//SP-CTI" -``` - -```json -"CUI//SP-PRVCY//SP-LEGAL" -``` - -## [Optional] Property `CUIRestriction > designationIndicator` - -**Title:** CUI designation indicator - -**Requirement:** Optional - -Agency that designated the information as CUI; include at least "Controlled by:" and, when possible, contact information - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"Controlled by: Agency XYZ" -``` - -```json -"Controlled by: DOC; POC: Jane Smith, mailto:jane.smith@example.gov, XXX-XXX-XXXX" -``` - -## [Optional] Property `CUIRestriction > requiredIndicatorPerAuthority` - -**Title:** required indicator per authority - -**Requirement:** Optional - -List of free-text required indicators from the applicable authority (for example, category descriptions or distribution statements) - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "Privacy Act of 1974", - "Federal Records Act" -] -``` - -| Each item of this array must be | Description | -| -------------------------------------------------------- | ----------- | -| [Indicator string](#requiredIndicatorPerAuthority_items) | - | - -### CUIRestriction > requiredIndicatorPerAuthority > Indicator string - -**Title:** Indicator string - -| **Type** | `string` | -| -------- | -------- | - diff --git a/jsonschema/docs/Catalog.md b/jsonschema/docs/Catalog.md deleted file mode 100644 index 34362a62..00000000 --- a/jsonschema/docs/Catalog.md +++ /dev/null @@ -1,1125 +0,0 @@ - - -**Title:** DCAT-US 3 Catalog - -A curated collection of metadata about datasets, data services, or other resources - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Catalog", - "title": "National Climate Data Catalog", - "description": "A comprehensive catalog of climate and weather datasets from federal monitoring stations across the United States.", - "publisher": { - "@type": "Agent", - "name": "National Climate Data Center" - }, - "license": "https://creativecommons.org/publicdomain/zero/1.0/", - "dataset": [ - { - "@type": "Dataset", - "title": "Daily Climate Observations 2024", - "description": "Daily temperature, precipitation, and wind measurements.", - "contactPoint": { - "fn": "Climate Data Support", - "hasEmail": "mailto:climate@example.gov" - }, - "publisher": { - "name": "National Climate Data Center" - }, - "identifier": "https://example.gov/datasets/climate-observations-1" - } - ], - "homepage": { - "@type": "Document", - "title": "National Climate Data Catalog Homepage", - "accessURL": "https://example.gov/climate-data" - }, - "language": [ - "en" - ], - "issued": "2020-01-15", - "modified": "2024-06-01", - "rights": [ - "This catalog is maintained by the National Climate Data Center." - ], - "spatial": [ - { - "@type": "Location", - "prefLabel": "United States" - } - ], - "themeTaxonomy": [ - { - "@type": "ConceptScheme", - "title": "Climate Science Topics" - } - ], - "conformsTo": { - "@type": "Standard", - "title": "DCAT-US 3.0" - } -} -``` - -| Property | Type | Title/Description | -| ------------------------------------------------ | ----------------------- | --------------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [catalog](#catalog ) | null or array | Related catalogs | -| - [contactPoint](#contactPoint ) | null or array | Contact points | -| + [dataset](#dataset ) | array | dataset | -| - [keyword](#keyword ) | null or array of string | keyword/tag | -| - [record](#record ) | null or array | catalog record | -| - [service](#service ) | null or array | service | -| - [theme](#theme ) | null or array | theme/category | -| - [themeTaxonomy](#themeTaxonomy ) | null or array | themes | -| - [accessRights](#accessRights ) | More than one type | access rights | -| - [conformsTo](#conformsTo ) | More than one type | schema version | -| - [creator](#creator ) | null or array | creator | -| - [description](#description ) | null or string | description | -| - [hasPart](#hasPart ) | null or array | has part | -| - [identifier](#identifier ) | More than one type | identifier | -| - [otherIdentifier](#otherIdentifier ) | null or array | other identifier | -| - [issued](#issued ) | More than one type | release date | -| - [language](#language ) | More than one type | language | -| - [license](#license ) | More than one type | license | -| - [modified](#modified ) | More than one type | update/modification date | -| - [publisher](#publisher ) | More than one type | publisher | -| - [rights](#rights ) | null or array of string | rights | -| - [rightsHolder](#rightsHolder ) | null or array | rights holder | -| - [spatial](#spatial ) | null or array | spatial/geographic coverage | -| - [subject](#subject ) | null or array | subject | -| - [temporal](#temporal ) | null or array | temporal coverage | -| - [title](#title ) | null or string | title | -| - [category](#category ) | null or array | category | -| - [homepage](#homepage ) | More than one type | homepage | -| - [qualifiedAttribution](#qualifiedAttribution ) | null or array | qualified attribution | - -## [Optional] Property `DCAT-US 3 Catalog > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/catalogs/federal-data-catalog" -``` - -## [Optional] Property `DCAT-US 3 Catalog > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ----------- | -| **Default** | `"Catalog"` | - -## [Optional] Property `DCAT-US 3 Catalog > catalog` - -**Title:** Related catalogs - -**Requirement:** Optional - -List of related catalogs that are useful in the context of this catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ----------------------------------- | ---------------------------------------------------------------------------------- | -| [DCAT-US 3 Catalog](#catalog_items) | A curated collection of metadata about datasets, data services, or other resources | - -### DCAT-US 3 Catalog > catalog > DCAT-US 3 Catalog - -**Title:** DCAT-US 3 Catalog - -A curated collection of metadata about datasets, data services, or other resources - -| **Type** | `object` | -| ------------------------- | -------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [DCAT-US 3 Catalog](#root) | - -## [Optional] Property `DCAT-US 3 Catalog > contactPoint` - -**Title:** Contact points - -**Requirement:** Optional - -Contact information people can use to ask questions or send feedback about the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ----------------------------------------------- | -| [Kind](#contactPoint_items) | Contact information for an individual or entity | - -### DCAT-US 3 Catalog > contactPoint > Kind - -**Title:** Kind - -Contact information for an individual or entity - -| **Type** | `object` | -| ------------------------- | ----------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Kind](./Kind.md) | - -## [Optional] Property `DCAT-US 3 Catalog > dataset` - -**Title:** dataset - -**Requirement:** Optional - -List of datasets included in the catalog. Use this together with service so the catalog is not empty. - -| **Type** | `array` | -| ------------ | ------- | -| **Required** | Yes | - -| Each item of this array must be | Description | -| ------------------------------- | --------------------------------------------------------- | -| [Dataset](#dataset_items) | A collection of data published or curated by one provider | - -### DCAT-US 3 Catalog > dataset > Dataset - -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Dataset](./Dataset.md) | - -## [Optional] Property `DCAT-US 3 Catalog > keyword` - -**Title:** keyword/tag - -**Requirement:** Optional - -List of keywords or tags describing the catalog - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "federal data", - "government", - "open data", - "public records" -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ----------- | -| [keyword items](#keyword_items) | - | - -### DCAT-US 3 Catalog > keyword > keyword items - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Min length** | 1 | - -## [Optional] Property `DCAT-US 3 Catalog > record` - -**Title:** catalog record - -**Requirement:** Optional - -A catalog record describing how a single resource (such as a dataset or data service) is registered in the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ----------------------------------------------------------------------- | -| [CatalogRecord](#record_items) | A record in a catalog, describing the registration of a single resource | - -### DCAT-US 3 Catalog > record > CatalogRecord - -**Title:** CatalogRecord - -A record in a catalog, describing the registration of a single resource - -| **Type** | `object` | -| ------------------------- | ----------------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Catalogrecord](./Catalogrecord.md) | - -## [Optional] Property `DCAT-US 3 Catalog > service` - -**Title:** service - -**Requirement:** Optional - -List of data services included in the catalog. Use this together with dataset so the catalog is not empty. - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------- | -| [DataService](#service_items) | A service that provides access to data or data processing functions | - -### DCAT-US 3 Catalog > service > DataService - -**Title:** DataService - -A service that provides access to data or data processing functions - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [DataService](#dataset_items_sample_items_accessService_items) | - -## [Optional] Property `DCAT-US 3 Catalog > theme` - -**Title:** theme/category - -**Requirement:** Optional - -List of themes or categories for the catalog. A catalog can have more than one theme. - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#theme_items) | A controlled term or label, optionally drawn from a concept scheme | - -### DCAT-US 3 Catalog > theme > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#dataset_items_sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `DCAT-US 3 Catalog > themeTaxonomy` - -**Title:** themes - -**Requirement:** Optional - -Controlled vocabulary or taxonomy used to classify catalog resources, such as datasets and services - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------- | --------------------------------------------------------------------- | -| [ConceptScheme](#themeTaxonomy_items) | A controlled vocabulary or other list of approved terms for a concept | - -### DCAT-US 3 Catalog > themeTaxonomy > ConceptScheme - -**Title:** ConceptScheme - -A controlled vocabulary or other list of approved terms for a concept - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [inScheme](#dataset_items_sample_items_representationTechnique_anyOf_i1_anyOf_i1_inScheme) | - -## [Optional] Property `DCAT-US 3 Catalog > accessRights` - -**Title:** access rights - -**Requirement:** Optional - -Information about whether the catalog is publicly accessible, restricted, or not public - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"Public access with no restrictions" -``` - -| Any of(Option) | -| -------------------------------------------------------- | -| [Null allowed when not required](#accessRights_anyOf_i0) | -| [item 1](#accessRights_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > accessRights > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > accessRights > anyOf > item 1` - -Text description of the access rights - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `DCAT-US 3 Catalog > conformsTo` - -**Title:** schema version - -**Requirement:** Optional - -Standard, schema, profile, or model that this catalog follows - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------ | -| [Null allowed when not required](#conformsTo_anyOf_i0) | -| [Standard](#conformsTo_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > conformsTo > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > conformsTo > anyOf > Standard` - -**Title:** Standard - -A standard or specification that another resource conforms to - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Standard](#dataset_items_sample_items_accessService_items_conformsTo_items) | - -## [Optional] Property `DCAT-US 3 Catalog > creator` - -**Title:** creator - -**Requirement:** Optional - -Person or organization responsible for creating the catalog metadata - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------------------------------------------------------- | -| [Agent](#creator_items) | A person, organization, software agent, or other entity involved with a resource | - -### DCAT-US 3 Catalog > creator > Agent - -**Title:** Agent - -A person, organization, software agent, or other entity involved with a resource - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Agent](#dataset_items_sample_items_accessService_items_creator_items) | - -## [Optional] Property `DCAT-US 3 Catalog > description` - -**Title:** description - -**Requirement:** Optional - -Plain-language summary of the catalog - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"A comprehensive catalog of climate and weather datasets from federal monitoring stations across the United States." -``` - -```json -"A comprehensive catalog of federal government data assets spanning multiple agencies and data domains." -``` - -## [Optional] Property `DCAT-US 3 Catalog > hasPart` - -**Title:** has part - -**Requirement:** Optional - -List of catalogs that are contained within this catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ----------------------------------- | ---------------------------------------------------------------------------------- | -| [DCAT-US 3 Catalog](#hasPart_items) | A curated collection of metadata about datasets, data services, or other resources | - -### DCAT-US 3 Catalog > hasPart > DCAT-US 3 Catalog - -**Title:** DCAT-US 3 Catalog - -A curated collection of metadata about datasets, data services, or other resources - -| **Type** | `object` | -| ------------------------- | -------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [DCAT-US 3 Catalog](#root) | - -## [Optional] Property `DCAT-US 3 Catalog > identifier` - -**Title:** identifier - -**Requirement:** Optional - -Main unique identifier for the catalog, such as a URI or another persistent identifier - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------ | -| [Null allowed when not required](#identifier_anyOf_i0) | -| [Identifier](#identifier_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > identifier > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > identifier > anyOf > Identifier` - -**Title:** Identifier - -inline description of Identifier - -| **Type** | More than one type | -| ------------------------- | -------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#dataset_items_otherIdentifier_items) | - -## [Optional] Property `DCAT-US 3 Catalog > otherIdentifier` - -**Title:** other identifier - -**Requirement:** Optional - -A list of identifiers for the Catalog besides the main identifier, e.g. the URI or other unique identifiers - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------------------------------------- | -| [Identifier](#otherIdentifier_items) | A unique identifier and optionally it's scheme and other relevant information | - -### DCAT-US 3 Catalog > otherIdentifier > Identifier - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | -------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#dataset_items_otherIdentifier_items) | - -## [Optional] Property `DCAT-US 3 Catalog > issued` - -**Title:** release date - -**Requirement:** Optional - -Date when the catalog was formally issued, such as its initial publication date - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2020-01-15" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#issued_anyOf_i0) | -| [Date string](#issued_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > issued > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------- | -| [item 0](#issued_anyOf_i1_anyOf_i0) | -| [item 1](#issued_anyOf_i1_anyOf_i1) | -| [item 2](#issued_anyOf_i1_anyOf_i2) | -| [item 3](#issued_anyOf_i1_anyOf_i3) | - -#### Property `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `DCAT-US 3 Catalog > language` - -**Title:** language - -**Requirement:** Optional - -Language codes used for catalog metadata text (such as titles and descriptions), using ISO 639-1 codes like en or es - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -[ - "en" -] -``` - -```json -[ - "en", - "es" -] -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#language_anyOf_i0) | -| [Language code](#language_anyOf_i1) | -| [List of language codes](#language_anyOf_i2) | - -### Property `DCAT-US 3 Catalog > language > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > language > anyOf > Language code` - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -### Property `DCAT-US 3 Catalog > language > anyOf > List of language codes` - -**Title:** List of language codes - -| **Type** | `array of string` | -| -------- | ----------------- | - -| Each item of this array must be | Description | -| ----------------------------------------- | ----------- | -| [Language code](#language_anyOf_i2_items) | - | - -#### DCAT-US 3 Catalog > language > anyOf > List of language codes > Language code - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -## [Optional] Property `DCAT-US 3 Catalog > license` - -**Title:** license - -**Requirement:** Optional - -License that governs how the catalog can be used or reused - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"https://creativecommons.org/publicdomain/zero/1.0/" -``` - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#license_anyOf_i0) | -| [item 1](#license_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > license > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > license > anyOf > item 1` - -Full text of the license - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `DCAT-US 3 Catalog > modified` - -**Title:** update/modification date - -**Requirement:** Optional - -Most recent date when the catalog content changed, not just catalog-record metadata - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-06-01" -``` - -```json -"2024-06-01T14:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#modified_anyOf_i0) | -| [Date string](#modified_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > modified > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > modified > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------- | -| [item 0](#modified_anyOf_i1_anyOf_i0) | -| [item 1](#modified_anyOf_i1_anyOf_i1) | -| [item 2](#modified_anyOf_i1_anyOf_i2) | -| [item 3](#modified_anyOf_i1_anyOf_i3) | - -#### Property `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `DCAT-US 3 Catalog > publisher` - -**Title:** publisher - -**Requirement:** Optional - -Person or organization responsible for publishing and making the catalog available - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------------------------- | -| [Null allowed when not required](#publisher_anyOf_i0) | -| [Agent](#publisher_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > publisher > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > publisher > anyOf > Agent` - -**Title:** Agent - -inline description of the publisher - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Agent](#dataset_items_sample_items_accessService_items_creator_items) | - -## [Optional] Property `DCAT-US 3 Catalog > rights` - -**Title:** rights - -**Requirement:** Optional - -Rights statements about the catalog that are not already covered by license or accessRights, such as copyright or policy restrictions - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Examples:** - -```json -[ - "This catalog is maintained by the National Climate Data Center." -] -``` - -```json -[ - "This catalog is maintained by the Federal Data Management Office.", - "Data within this catalog may be subject to individual dataset licensing terms." -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ---------------------------------- | -| [rights items](#rights_items) | Full text of a statement of rights | - -### DCAT-US 3 Catalog > rights > rights items - -Full text of a statement of rights - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `DCAT-US 3 Catalog > rightsHolder` - -**Title:** rights holder - -**Requirement:** Optional - -Organizations that hold rights in the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ----------------------------------- | --------------------------------------------------------------------------------- | -| [Organization](#rightsHolder_items) | An organization involved with a resource, including parent or child organizations | - -### DCAT-US 3 Catalog > rightsHolder > Organization - -**Title:** Organization - -An organization involved with a resource, including parent or child organizations - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Organization](#dataset_items_otherIdentifier_items_anyOf_i1_creator_anyOf_i1) | - -## [Optional] Property `DCAT-US 3 Catalog > spatial` - -**Title:** spatial/geographic coverage - -**Requirement:** Optional - -Geographic area covered by the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------- | -| [Location](#spatial_items) | A named place or geographic area | - -### DCAT-US 3 Catalog > spatial > Location - -**Title:** Location - -A named place or geographic area - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Location](#dataset_items_sample_items_accessService_items_spatial_items) | - -## [Optional] Property `DCAT-US 3 Catalog > subject` - -**Title:** subject - -**Requirement:** Optional - -List of subjects of the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#subject_items) | A controlled term or label, optionally drawn from a concept scheme | - -### DCAT-US 3 Catalog > subject > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#dataset_items_sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `DCAT-US 3 Catalog > temporal` - -**Title:** temporal coverage - -**Requirement:** Optional - -Time periods covered by the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ---------------------------------------------------------------------- | -| [PeriodOfTime](#temporal_items) | Information about a specific time period with a start- and/or end-time | - -### DCAT-US 3 Catalog > temporal > PeriodOfTime - -**Title:** PeriodOfTime - -Information about a specific time period with a start- and/or end-time - -| **Type** | More than one type | -| ------------------------- | ------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [PeriodOfTime](#dataset_items_sample_items_accessService_items_temporal_items) | - -## [Optional] Property `DCAT-US 3 Catalog > title` - -**Title:** title - -**Requirement:** Optional - -Human-readable title of the catalog - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"National Climate Data Catalog" -``` - -```json -"Federal Data Catalog" -``` - -## [Optional] Property `DCAT-US 3 Catalog > category` - -**Title:** category - -**Requirement:** Optional - -List of high-level categories for the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#category_items) | A controlled term or label, optionally drawn from a concept scheme | - -### DCAT-US 3 Catalog > category > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#dataset_items_sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `DCAT-US 3 Catalog > homepage` - -**Title:** homepage - -**Requirement:** Optional - -Main public web page for the catalog, usually an HTML page - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#homepage_anyOf_i0) | -| [Document](#homepage_anyOf_i1) | - -### Property `DCAT-US 3 Catalog > homepage > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DCAT-US 3 Catalog > homepage > anyOf > Document` - -**Title:** Document - -inline description of the home page - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Document](#dataset_items_sample_items_page_items) | - -## [Optional] Property `DCAT-US 3 Catalog > qualifiedAttribution` - -**Title:** qualified attribution - -**Requirement:** Optional - -List of agents with specific responsibilities for the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------------ | ------------------------------------------------- | -| [Attribution](#qualifiedAttribution_items) | A responsibility that an agent has for a resource | - -### DCAT-US 3 Catalog > qualifiedAttribution > Attribution - -**Title:** Attribution - -A responsibility that an agent has for a resource - -| **Type** | `object` | -| ------------------------- | ----------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Attribution](#dataset_items_sample_items_accessService_items_qualifiedAttribution_items) | - diff --git a/jsonschema/docs/CatalogRecord.md b/jsonschema/docs/CatalogRecord.md deleted file mode 100644 index 73a9e0dd..00000000 --- a/jsonschema/docs/CatalogRecord.md +++ /dev/null @@ -1,459 +0,0 @@ - - -**Title:** CatalogRecord - -A record in a catalog, describing the registration of a single resource - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "CatalogRecord", - "modified": "2024-06-15", - "primaryTopic": "https://example.gov/datasets/climate-data-2024", - "title": "Climate Data 2024 Catalog Entry", - "issued": [ - "2024-01-15" - ], - "status": "published", - "conformsTo": { - "@type": "Standard", - "title": "DCAT-US 3.0" - } -} -``` - -| Property | Type | Title/Description | -| -------------------------------- | ----------------------- | ------------------------ | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [status](#status ) | More than one type | change type | -| - [conformsTo](#conformsTo ) | More than one type | application profile | -| - [description](#description ) | null or array of string | Descriptions | -| - [issued](#issued ) | null or array | listing date | -| - [language](#language ) | More than one type | language | -| + [modified](#modified ) | More than one type | update/modification date | -| - [source](#source ) | null or string | source metadata | -| - [title](#title ) | null or string | title | -| + [primaryTopic](#primaryTopic ) | string | primary topic | - -## [Optional] Property `CatalogRecord > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/catalog-records/climate-dataset-record-001" -``` - -## [Optional] Property `CatalogRecord > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ----------------- | -| **Default** | `"CatalogRecord"` | - -## [Optional] Property `CatalogRecord > status` - -**Title:** change type - -**Requirement:** Optional - -The status of the catalog record in the context of editorial flow of the dataset and data service descriptions - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#status_anyOf_i0) | -| [Concept](#status_anyOf_i1) | - -### Property `CatalogRecord > status > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `CatalogRecord > status > anyOf > Concept` - -**Title:** Concept - -inline description of status - -| **Type** | More than one type | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Concept](./Concept.md) | - -## [Optional] Property `CatalogRecord > conformsTo` - -**Title:** application profile - -**Requirement:** Optional - -An Application Profile that the Catalog Record's metadata conforms to - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------ | -| [Null allowed when not required](#conformsTo_anyOf_i0) | -| [Standard](#conformsTo_anyOf_i1) | - -### Property `CatalogRecord > conformsTo > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `CatalogRecord > conformsTo > anyOf > Standard` - -**Title:** Standard - -inline description of application profile - -| **Type** | `object` | -| ------------------------- | ------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Standard](./Standard.md) | - -## [Optional] Property `CatalogRecord > description` - -**Title:** Descriptions - -**Requirement:** Optional - -A list of free-text accounts of the catalog record - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "This catalog record describes the registration of the Climate Data 2023 dataset.", - "Contains metadata about when the dataset was added and last updated." -] -``` - -| Each item of this array must be | Description | -| ---------------------------------------- | ----------- | -| [Description string](#description_items) | - | - -### CatalogRecord > description > Description string - -**Title:** Description string - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `CatalogRecord > issued` - -**Title:** listing date - -**Requirement:** Optional - -List of dates on which the catalog record was included in the catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -**Examples:** - -```json -[ - "2024-01-15T10:30:00Z" -] -``` - -```json -[ - "2024-01-15" -] -``` - -```json -[ - "2024" -] -``` - -```json -[ - "2024-01" -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ----------- | -| [Date string](#issued_items) | - | - -### CatalogRecord > issued > Date string - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------------------- | -| [item 0](#issued_items_anyOf_i0) | -| [item 1](#issued_items_anyOf_i1) | -| [item 2](#issued_items_anyOf_i2) | -| [item 3](#issued_items_anyOf_i3) | - -#### Property `CatalogRecord > issued > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `CatalogRecord > issued > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `CatalogRecord > issued > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `CatalogRecord > issued > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `CatalogRecord > language` - -**Title:** language - -**Requirement:** Optional - -Language code used in catalog record metadata text, using ISO 639-1 values such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"en" -``` - -```json -[ - "en", - "es" -] -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#language_anyOf_i0) | -| [Language code](#language_anyOf_i1) | -| [Array of language codes](#language_anyOf_i2) | - -### Property `CatalogRecord > language > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `CatalogRecord > language > anyOf > Language code` - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -### Property `CatalogRecord > language > anyOf > Array of language codes` - -**Title:** Array of language codes - -| **Type** | `array of string` | -| -------- | ----------------- | - -| Each item of this array must be | Description | -| ----------------------------------------- | ----------- | -| [Language code](#language_anyOf_i2_items) | - | - -#### CatalogRecord > language > anyOf > Array of language codes > Language code - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -## [Optional] Property `CatalogRecord > modified` - -**Title:** update/modification date - -**Requirement:** Optional - -The most recent date on which the catalog record was changed or modified - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Required** | Yes | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-06-15" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ---------------------------- | -| [item 0](#modified_anyOf_i0) | -| [item 1](#modified_anyOf_i1) | -| [item 2](#modified_anyOf_i2) | -| [item 3](#modified_anyOf_i3) | - -### Property `CatalogRecord > modified > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -### Property `CatalogRecord > modified > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -### Property `CatalogRecord > modified > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -### Property `CatalogRecord > modified > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `CatalogRecord > source` - -**Title:** source metadata - -**Requirement:** Optional - -The original metadata that was used in creating metadata for the items in the catalog record, either a URL referencing the source metadata or a string of the source metadata itself - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"Original metadata harvested from NOAA data portal" -``` - -## [Optional] Property `CatalogRecord > title` - -**Title:** title - -**Requirement:** Optional - -A name given to the Catalog Record - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"Climate Data 2024 Catalog Entry" -``` - -```json -"Climate Data 2023 Catalog Record" -``` - -## [Optional] Property `CatalogRecord > primaryTopic` - -**Title:** primary topic - -**Requirement:** Optional - -A link to the Dataset, Data service or Catalog described in the Catalog Record - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"https://example.gov/datasets/climate-data-2024" -``` - -```json -"https://example.gov/datasets/climate-data-2023" -``` - diff --git a/jsonschema/docs/Checksum.md b/jsonschema/docs/Checksum.md deleted file mode 100644 index eba6b9af..00000000 --- a/jsonschema/docs/Checksum.md +++ /dev/null @@ -1,89 +0,0 @@ - - -**Title:** Checksum - -A mechanism that can be used to verify that the contents of a distribution have not changed - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Checksum", - "algorithm": "SHA-256", - "checksumValue": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456" -} -``` - -| Property | Type | Title/Description | -| ---------------------------------- | ------ | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [algorithm](#algorithm ) | string | algorithm | -| + [checksumValue](#checksumValue ) | string | checksum value | - -## [Optional] Property `Checksum > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/checksums/dataset-001-sha256" -``` - -## [Optional] Property `Checksum > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ------------ | -| **Default** | `"Checksum"` | - -## [Optional] Property `Checksum > algorithm` - -**Title:** algorithm - -**Requirement:** Optional - -The algorithm used to produce the checksum - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Example:** - -```json -"SHA-256" -``` - -## [Optional] Property `Checksum > checksumValue` - -**Title:** checksum value - -**Requirement:** Optional - -A lower case hexadecimal encoded digest value produced using a specific algorithm - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456" -``` - -```json -"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" -``` - diff --git a/jsonschema/docs/Concept.md b/jsonschema/docs/Concept.md deleted file mode 100644 index 91b6aaf1..00000000 --- a/jsonschema/docs/Concept.md +++ /dev/null @@ -1,139 +0,0 @@ - - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------- | -| [Concept](#anyOf_i0) | -| [item 1](#anyOf_i1) | - -## Property `Concept > anyOf > Concept` - -**Title:** Concept - -The value of the concept, expressed as a string. This is only used when the concept is not further described by the properties of the Concept object and is not linked to a concept scheme. - -| **Type** | `string` | -| -------- | -------- | - -## Property `Concept > anyOf > item 1` - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -| Property | Type | Title/Description | -| ------------------------------------- | ------------------ | ----------------- | -| - [@id](#anyOf_i1_@id ) | string | - | -| - [@type](#anyOf_i1_@type ) | string | - | -| - [altLabel](#anyOf_i1_altLabel ) | null or string | alternate label | -| - [definition](#anyOf_i1_definition ) | null or string | definition | -| - [inScheme](#anyOf_i1_inScheme ) | object | in scheme | -| - [notation](#anyOf_i1_notation ) | More than one type | notation | -| + [prefLabel](#anyOf_i1_prefLabel ) | string | preferred label | - -### Property `Concept > anyOf > item 1 > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -### Property `Concept > anyOf > item 1 > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ----------- | -| **Default** | `"Concept"` | - -### Property `Concept > anyOf > item 1 > altLabel` - -**Title:** alternate label - -**Requirement:** Optional - -Alternative label for a concept - -| **Type** | `null or string` | -| -------- | ---------------- | - -### Property `Concept > anyOf > item 1 > definition` - -**Title:** definition - -**Requirement:** Optional - -Definition of the controlled vocabulary term - -| **Type** | `null or string` | -| -------- | ---------------- | - -### Property `Concept > anyOf > item 1 > inScheme` - -**Title:** in scheme - -**Requirement:** Optional - -Concept scheme defining this concept - -| **Type** | `object` | -| ------------------------- | ----------------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Conceptscheme](./Conceptscheme.md) | - -### Property `Concept > anyOf > item 1 > notation` - -**Title:** notation - -**Requirement:** Optional - -List of abbreviations or codes from code lists for the Concept - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------- | -| [item 0](#anyOf_i1_notation_anyOf_i0) | -| [item 1](#anyOf_i1_notation_anyOf_i1) | - -#### Property `Concept > anyOf > item 1 > notation > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -#### Property `Concept > anyOf > item 1 > notation > anyOf > item 1` - -| **Type** | `array of string` | -| -------- | ----------------- | - -| Each item of this array must be | Description | -| ------------------------------------------------- | ----------- | -| [item 1 items](#anyOf_i1_notation_anyOf_i1_items) | - | - -##### Concept > anyOf > item 1 > notation > anyOf > item 1 > item 1 items - -| **Type** | `string` | -| -------- | -------- | - -### Property `Concept > anyOf > item 1 > prefLabel` - -**Title:** preferred label - -**Requirement:** Optional - -Preferred label for the term - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - diff --git a/jsonschema/docs/ConceptScheme.md b/jsonschema/docs/ConceptScheme.md deleted file mode 100644 index c1dc1f9b..00000000 --- a/jsonschema/docs/ConceptScheme.md +++ /dev/null @@ -1,387 +0,0 @@ - - -**Title:** ConceptScheme - -A controlled vocabulary or other list of approved terms for a concept - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "ConceptScheme", - "title": "Science Domains", - "description": "A classification scheme for scientific research domains.", - "issued": "2020-01-01" -} -``` - -| Property | Type | Title/Description | -| ------------------------------ | ------------------ | ------------------------ | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [version](#version ) | null or string | version info | -| - [created](#created ) | More than one type | creation date | -| - [description](#description ) | null or string | description | -| - [issued](#issued ) | More than one type | publication date | -| - [modified](#modified ) | More than one type | update/modification date | -| + [title](#title ) | string | title | - -## [Optional] Property `ConceptScheme > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/concept-schemes/data-classification" -``` - -## [Optional] Property `ConceptScheme > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ----------------- | -| **Default** | `"ConceptScheme"` | - -## [Optional] Property `ConceptScheme > version` - -**Title:** version info - -**Requirement:** Optional - -A version number or other version designation of the concept scheme - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"2.0.1" -``` - -## [Optional] Property `ConceptScheme > created` - -**Title:** creation date - -**Requirement:** Optional - -The date on which the Concept Scheme was first created - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2020" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024-01-15" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#created_anyOf_i0) | -| [Date string](#created_anyOf_i1) | - -### Property `ConceptScheme > created > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `ConceptScheme > created > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------ | -| [item 0](#created_anyOf_i1_anyOf_i0) | -| [item 1](#created_anyOf_i1_anyOf_i1) | -| [item 2](#created_anyOf_i1_anyOf_i2) | -| [item 3](#created_anyOf_i1_anyOf_i3) | - -#### Property `ConceptScheme > created > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `ConceptScheme > created > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `ConceptScheme > created > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `ConceptScheme > created > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `ConceptScheme > description` - -**Title:** description - -**Requirement:** Optional - -A description of the concept scheme - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"A classification scheme for scientific research domains." -``` - -```json -"A controlled vocabulary for classifying federal government data assets by sensitivity and access requirements." -``` - -## [Optional] Property `ConceptScheme > issued` - -**Title:** publication date - -**Requirement:** Optional - -The date of formal issuance (e.g., publication) of the concept scheme - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2020-01-01" -``` - -```json -"2020" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#issued_anyOf_i0) | -| [Date string](#issued_anyOf_i1) | - -### Property `ConceptScheme > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `ConceptScheme > issued > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------- | -| [item 0](#issued_anyOf_i1_anyOf_i0) | -| [item 1](#issued_anyOf_i1_anyOf_i1) | -| [item 2](#issued_anyOf_i1_anyOf_i2) | -| [item 3](#issued_anyOf_i1_anyOf_i3) | - -#### Property `ConceptScheme > issued > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `ConceptScheme > issued > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `ConceptScheme > issued > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `ConceptScheme > issued > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `ConceptScheme > modified` - -**Title:** update/modification date - -**Requirement:** Optional - -The most recent date at which the concept scheme was changed or modified - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024-01-15" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#modified_anyOf_i0) | -| [Date string](#modified_anyOf_i1) | - -### Property `ConceptScheme > modified > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `ConceptScheme > modified > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------- | -| [item 0](#modified_anyOf_i1_anyOf_i0) | -| [item 1](#modified_anyOf_i1_anyOf_i1) | -| [item 2](#modified_anyOf_i1_anyOf_i2) | -| [item 3](#modified_anyOf_i1_anyOf_i3) | - -#### Property `ConceptScheme > modified > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `ConceptScheme > modified > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `ConceptScheme > modified > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `ConceptScheme > modified > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `ConceptScheme > title` - -**Title:** title - -**Requirement:** Optional - -The title of the concept scheme - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"Science Domains" -``` - -```json -"Federal Data Classification Scheme" -``` - diff --git a/jsonschema/docs/DataService.md b/jsonschema/docs/DataService.md deleted file mode 100644 index 996a5fc5..00000000 --- a/jsonschema/docs/DataService.md +++ /dev/null @@ -1,1040 +0,0 @@ - - -**Title:** DataService - -A service that provides access to data or data processing functions - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "DataService", - "title": "Climate Data API", - "description": "RESTful API providing access to historical climate observations.", - "endpointURL": [ - "https://api.example.gov/climate/v1" - ], - "endpointDescription": [ - "https://api.example.gov/climate/v1/openapi.json" - ], - "contactPoint": [ - { - "fn": "API Support Team", - "hasEmail": "mailto:api-support@example.gov" - } - ], - "publisher": { - "name": "National Climate Data Center" - }, - "keyword": [ - "climate", - "weather", - "API" - ], - "license": "https://creativecommons.org/publicdomain/zero/1.0/", - "servesDataset": [ - { - "@id": "https://example.gov/datasets/climate-observations-2024", - "@type": "Dataset", - "title": "Climate Observations 2024", - "description": "Annual climate observation data.", - "contactPoint": { - "fn": "Climate Support", - "hasEmail": "mailto:climate@example.gov" - }, - "publisher": { - "name": "National Climate Data Center" - }, - "identifier": "https://example.gov/datasets/climate-observations-2024" - } - ], - "identifier": "https://example.gov/services/climate-api" -} -``` - -| Property | Type | Title/Description | -| ---------------------------------------------------------- | ----------------------- | ---------------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [contactPoint](#contactPoint ) | array | contact point | -| - [endpointDescription](#endpointDescription ) | null or array of string | endpoint description | -| + [endpointURL](#endpointURL ) | array of string | endpoint URL | -| - [keyword](#keyword ) | null or array of string | keyword/tag | -| - [servesDataset](#servesDataset ) | null or array | serves dataset | -| - [spatialResolutionInMeters](#spatialResolutionInMeters ) | null or string | spatial resolution in meters | -| - [temporalResolution](#temporalResolution ) | null or string | temporal resolution | -| - [theme](#theme ) | null or array | theme/category | -| - [accessRights](#accessRights ) | More than one type | access rights | -| - [conformsTo](#conformsTo ) | null or array | conforms to | -| - [created](#created ) | More than one type | creation date | -| - [creator](#creator ) | null or array | creator | -| - [description](#description ) | null or string | description | -| - [identifier](#identifier ) | More than one type | identifier | -| - [otherIdentifier](#otherIdentifier ) | null or array | other identifier | -| - [language](#language ) | More than one type | language | -| - [license](#license ) | More than one type | license | -| - [modified](#modified ) | More than one type | update/modification date | -| + [publisher](#publisher ) | object | publisher | -| - [rights](#rights ) | null or array of string | rights | -| - [rightsHolder](#rightsHolder ) | null or array | rights holder | -| - [spatial](#spatial ) | null or array | spatial/geographic coverage | -| - [temporal](#temporal ) | null or array | temporal coverage | -| + [title](#title ) | string | title | -| - [category](#category ) | null or array | category | -| - [hasQualityMeasurement](#hasQualityMeasurement ) | null or array | quality measurement | -| - [qualifiedAttribution](#qualifiedAttribution ) | null or array | qualified attribution | -| - [wasUsedBy](#wasUsedBy ) | null or array | was used by | - -## [Optional] Property `DataService > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/data-services/climate-api-001" -``` - -## [Optional] Property `DataService > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | --------------- | -| **Default** | `"DataService"` | - -## [Optional] Property `DataService > contactPoint` - -**Title:** contact point - -**Requirement:** Optional - -Contact information for questions about the Data Service. Include an email address that is continuously monitored - -| **Type** | `array` | -| ------------ | ------- | -| **Required** | Yes | - -| Each item of this array must be | Description | -| ------------------------------- | ----------------------------------------------- | -| [Kind](#contactPoint_items) | Contact information for an individual or entity | - -### DataService > contactPoint > Kind - -**Title:** Kind - -Contact information for an individual or entity - -| **Type** | `object` | -| ------------------------- | ----------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Kind](./Kind.md) | - -## [Optional] Property `DataService > endpointDescription` - -**Title:** endpoint description - -**Requirement:** Optional - -List of endpoint descriptions with operations and parameters (for example, OpenAPI or similar service documentation) - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Examples:** - -```json -[ - "https://api.example.gov/climate/v1/openapi.json" -] -``` - -```json -[ - "https://api.example.gov/climate/docs/openapi.json" -] -``` - -| Each item of this array must be | Description | -| ------------------------------------------------------- | ----------- | -| [endpointDescription items](#endpointDescription_items) | - | - -### DataService > endpointDescription > endpointDescription items - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `DataService > endpointURL` - -**Title:** endpoint URL - -**Requirement:** Optional - -A list of root locations or primary endpoints of the service (a Web-resolvable IRI) - -| **Type** | `array of string` | -| ------------ | ----------------- | -| **Required** | Yes | - -**Examples:** - -```json -[ - "https://api.example.gov/climate/v1" -] -``` - -```json -[ - "https://api.example.gov/climate/v1", - "https://api.example.gov/climate/v2" -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | --------------------------------------------------------------------------- | -| [URLs](#endpointURL_items) | The root location or primary endpoint of the service (a Web-resolvable IRI) | - -### DataService > endpointURL > URLs - -**Title:** URLs - -The root location or primary endpoint of the service (a Web-resolvable IRI) - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `DataService > keyword` - -**Title:** keyword/tag - -**Requirement:** Optional - -List of keywords or tags describing the data service - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Examples:** - -```json -[ - "climate", - "weather", - "API" -] -``` - -```json -[ - "climate", - "weather", - "temperature", - "API", - "REST" -] -``` - -| Each item of this array must be | Description | -| ----------------------------------- | ----------- | -| [Non-empty strings](#keyword_items) | - | - -### DataService > keyword > Non-empty strings - -**Title:** Non-empty strings - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Min length** | 1 | - -## [Optional] Property `DataService > servesDataset` - -**Title:** serves dataset - -**Requirement:** Optional - -List of datasets this service provides access to - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | --------------------------------------------------------- | -| [Dataset](#servesDataset_items) | A collection of data published or curated by one provider | - -### DataService > servesDataset > Dataset - -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Dataset](./Dataset.md) | - -## [Optional] Property `DataService > spatialResolutionInMeters` - -**Title:** spatial resolution in meters - -**Requirement:** Optional - -The minimum spatial separation resolvable in a Data Service, measured in meters - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"1000" -``` - -## [Optional] Property `DataService > temporalResolution` - -**Title:** temporal resolution - -**Requirement:** Optional - -The minimum time period resolvable by the Data Service - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"P1D" -``` - -## [Optional] Property `DataService > theme` - -**Title:** theme/category - -**Requirement:** Optional - -List of themes or categories for the data service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#theme_items) | A controlled term or label, optionally drawn from a concept scheme | - -### DataService > theme > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#servesDataset_items_sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `DataService > accessRights` - -**Title:** access rights - -**Requirement:** Optional - -Information about whether the data service is publicly accessible, restricted, or not public - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"Public access with no restrictions" -``` - -| Any of(Option) | -| -------------------------------- | -| [item 0](#accessRights_anyOf_i0) | -| [item 1](#accessRights_anyOf_i1) | - -### Property `DataService > accessRights > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `DataService > accessRights > anyOf > item 1` - -Text description of the access rights - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `DataService > conformsTo` - -**Title:** conforms to - -**Requirement:** Optional - -List of general standards or specifications that the Data Service endpoints implement - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------- | -| [Standard](#conformsTo_items) | A standard or specification that another resource conforms to | - -### DataService > conformsTo > Standard - -**Title:** Standard - -A standard or specification that another resource conforms to - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Standard](#servesDataset_items_sample_items_accessService_items_conformsTo_items) | - -## [Optional] Property `DataService > created` - -**Title:** creation date - -**Requirement:** Optional - -The date on which the Data Service was first created - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2020-01-15" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| -------------------------------- | -| [item 0](#created_anyOf_i0) | -| [Date string](#created_anyOf_i1) | - -### Property `DataService > created > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `DataService > created > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------ | -| [item 0](#created_anyOf_i1_anyOf_i0) | -| [item 1](#created_anyOf_i1_anyOf_i1) | -| [item 2](#created_anyOf_i1_anyOf_i2) | -| [item 3](#created_anyOf_i1_anyOf_i3) | - -#### Property `DataService > created > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `DataService > created > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `DataService > created > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `DataService > created > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `DataService > creator` - -**Title:** creator - -**Requirement:** Optional - -List of agents primarily responsible for producing the Data Service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------------------------------------------------------- | -| [Agent](#creator_items) | A person, organization, software agent, or other entity involved with a resource | - -### DataService > creator > Agent - -**Title:** Agent - -A person, organization, software agent, or other entity involved with a resource - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Agent](#servesDataset_items_sample_items_accessService_items_creator_items) | - -## [Optional] Property `DataService > description` - -**Title:** description - -**Requirement:** Optional - -Plain-language summary of the data service - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"A RESTful API providing access to historical and real-time climate data including temperature, precipitation, and atmospheric conditions." -``` - -## [Optional] Property `DataService > identifier` - -**Title:** identifier - -**Requirement:** Optional - -The unique identifier for the Data Service, e.g. the URI or other unique identifier in the context of the Catalog - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ---------------------------------- | -| [item 0](#identifier_anyOf_i0) | -| [Identifier](#identifier_anyOf_i1) | - -### Property `DataService > identifier > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `DataService > identifier > anyOf > Identifier` - -**Title:** Identifier - -inline description of Identifier - -| **Type** | More than one type | -| ------------------------- | -------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#servesDataset_items_otherIdentifier_items) | - -## [Optional] Property `DataService > otherIdentifier` - -**Title:** other identifier - -**Requirement:** Optional - -A list of identifiers for the Data Service besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------------------------------------- | -| [Identifier](#otherIdentifier_items) | A unique identifier and optionally it's scheme and other relevant information | - -### DataService > otherIdentifier > Identifier - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | -------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#servesDataset_items_otherIdentifier_items) | - -## [Optional] Property `DataService > language` - -**Title:** language - -**Requirement:** Optional - -ISO 639-1 language code values supported by the data service, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"en" -``` - -```json -[ - "en", - "es" -] -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#language_anyOf_i0) | -| [Language code](#language_anyOf_i1) | -| [List of lanuages](#language_anyOf_i2) | - -### Property `DataService > language > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DataService > language > anyOf > Language code` - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -### Property `DataService > language > anyOf > List of lanuages` - -**Title:** List of lanuages - -| **Type** | `array of string` | -| -------- | ----------------- | - -| Each item of this array must be | Description | -| ----------------------------------------- | ----------- | -| [Language code](#language_anyOf_i2_items) | - | - -#### DataService > language > anyOf > List of lanuages > Language code - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -## [Optional] Property `DataService > license` - -**Title:** license - -**Requirement:** Optional - -License that governs how the data service can be used or reused - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"https://creativecommons.org/publicdomain/zero/1.0/" -``` - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#license_anyOf_i0) | -| [item 1](#license_anyOf_i1) | - -### Property `DataService > license > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DataService > license > anyOf > item 1` - -Full text of the license - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `DataService > modified` - -**Title:** update/modification date - -**Requirement:** Optional - -The most recent date on which the Data Service was changed or modified - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-03-20" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#modified_anyOf_i0) | -| [Date string](#modified_anyOf_i1) | - -### Property `DataService > modified > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `DataService > modified > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------- | -| [item 0](#modified_anyOf_i1_anyOf_i0) | -| [item 1](#modified_anyOf_i1_anyOf_i1) | -| [item 2](#modified_anyOf_i1_anyOf_i2) | -| [item 3](#modified_anyOf_i1_anyOf_i3) | - -#### Property `DataService > modified > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `DataService > modified > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `DataService > modified > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `DataService > modified > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `DataService > publisher` - -**Title:** publisher - -**Requirement:** Optional - -Person or organization responsible for publishing and making the data service available - -| **Type** | `object` | -| ------------------------- | ------------------- | -| **Required** | Yes | -| **Additional properties** | Any type allowed | -| **Defined in** | [Agent](./Agent.md) | - -## [Optional] Property `DataService > rights` - -**Title:** rights - -**Requirement:** Optional - -Rights statements not already covered by license or accessRights, such as copyright or policy restrictions - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "Data provided by the National Climate Data Center is in the public domain." -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ----------- | -| [rights items](#rights_items) | - | - -### DataService > rights > rights items - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `DataService > rightsHolder` - -**Title:** rights holder - -**Requirement:** Optional - -A list of Agents (organizations) holding rights on the Data Service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ----------------------------------- | --------------------------------------------------------------------------------- | -| [Organization](#rightsHolder_items) | An organization involved with a resource, including parent or child organizations | - -### DataService > rightsHolder > Organization - -**Title:** Organization - -An organization involved with a resource, including parent or child organizations - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Organization](#servesDataset_items_otherIdentifier_items_anyOf_i1_creator_anyOf_i1) | - -## [Optional] Property `DataService > spatial` - -**Title:** spatial/geographic coverage - -**Requirement:** Optional - -A geographic region that is covered by the Data Service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------- | -| [Location](#spatial_items) | A named place or geographic area | - -### DataService > spatial > Location - -**Title:** Location - -A named place or geographic area - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Location](#servesDataset_items_sample_items_accessService_items_spatial_items) | - -## [Optional] Property `DataService > temporal` - -**Title:** temporal coverage - -**Requirement:** Optional - -Time periods covered by the data service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ---------------------------------------------------------------------- | -| [PeriodOfTime](#temporal_items) | Information about a specific time period with a start- and/or end-time | - -### DataService > temporal > PeriodOfTime - -**Title:** PeriodOfTime - -Information about a specific time period with a start- and/or end-time - -| **Type** | More than one type | -| ------------------------- | ------------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [PeriodOfTime](#servesDataset_items_sample_items_accessService_items_temporal_items) | - -## [Optional] Property `DataService > title` - -**Title:** title - -**Requirement:** Optional - -Human-readable title of the data service - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Example:** - -```json -"Climate Data REST API" -``` - -## [Optional] Property `DataService > category` - -**Title:** category - -**Requirement:** Optional - -List of high-level categories for the data service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#category_items) | A controlled term or label, optionally drawn from a concept scheme | - -### DataService > category > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#servesDataset_items_sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `DataService > hasQualityMeasurement` - -**Title:** quality measurement - -**Requirement:** Optional - -Quality measurements for the data service (for example, availability, response time, or reliability) - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| -------------------------------------------------- | ------------------------------------------------------------- | -| [QualityMeasurement](#hasQualityMeasurement_items) | A measurement of a resource against a specific quality metric | - -### DataService > hasQualityMeasurement > QualityMeasurement - -**Title:** QualityMeasurement - -A measurement of a resource against a specific quality metric - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [QualityMeasurement](#servesDataset_items_sample_items_accessService_items_hasQualityMeasurement_items) | - -## [Optional] Property `DataService > qualifiedAttribution` - -**Title:** qualified attribution - -**Requirement:** Optional - -List of agents with specific responsibilities for the data service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------------ | ------------------------------------------------- | -| [Attribution](#qualifiedAttribution_items) | A responsibility that an agent has for a resource | - -### DataService > qualifiedAttribution > Attribution - -**Title:** Attribution - -A responsibility that an agent has for a resource - -| **Type** | `object` | -| ------------------------- | ----------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Attribution](#servesDataset_items_sample_items_accessService_items_qualifiedAttribution_items) | - -## [Optional] Property `DataService > wasUsedBy` - -**Title:** was used by - -**Requirement:** Optional - -List of activities that used or tested the data service - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------------------------------------- | -| [Activity](#wasUsedBy_items) | An activity related to creating, changing, or using a resource | - -### DataService > wasUsedBy > Activity - -**Title:** Activity - -An activity related to creating, changing, or using a resource - -| **Type** | `object` | -| ------------------------- | --------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Activity](#servesDataset_items_sample_items_accessService_items_wasUsedBy_items) | - diff --git a/jsonschema/docs/Dataset.md b/jsonschema/docs/Dataset.md deleted file mode 100644 index 4c07cf26..00000000 --- a/jsonschema/docs/Dataset.md +++ /dev/null @@ -1,2088 +0,0 @@ - - -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Dataset", - "title": "Daily Climate Observations 2024", - "description": "Daily temperature, precipitation, and wind measurements from monitoring stations across the United States.", - "identifier": "https://example.gov/datasets/climate-observations-2024", - "contactPoint": { - "fn": "Climate Data Support", - "hasEmail": "mailto:climate@example.gov" - }, - "publisher": { - "name": "National Climate Data Center" - }, - "keyword": [ - "climate", - "weather", - "temperature", - "precipitation" - ], - "issued": "2024-01-15", - "modified": "2024-06-01", - "accrualPeriodicity": "daily", - "accessRights": "public", - "landingPage": { - "@id": "https://example.gov/climate-data", - "@type": "Document", - "title": "Climate Data Landing Page" - }, - "describedBy": { - "@id": "https://example.gov/climate-data/data-dictionary", - "@type": "Distribution", - "title": "Data Dictionary", - "mediaType": "application/pdf" - }, - "spatial": { - "@type": "Location", - "bbox": { - "type": "Polygon", - "coordinates": [ - [ - [ - -125.0, - 24.0 - ], - [ - -66.0, - 24.0 - ], - [ - -66.0, - 50.0 - ], - [ - -125.0, - 50.0 - ], - [ - -125.0, - 24.0 - ] - ] - ] - } - }, - "theme": [ - "Climate Science" - ], - "distribution": [ - { - "title": "Climate Data CSV", - "downloadURL": "https://example.gov/downloads/climate-2024.csv", - "mediaType": "text/csv" - } - ], - "rights": [ - "Data is provided as-is without warranty. Please cite the National Climate Data Center when using this data." - ], - "temporal": [ - { - "@type": "PeriodOfTime", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - } - ] -} -``` - -| Property | Type | Title/Description | -| ---------------------------------------------------------- | ----------------------- | --------------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [otherIdentifier](#otherIdentifier ) | null or array | other identifier | -| - [sample](#sample ) | null or array | sample | -| - [status](#status ) | More than one type | lifecycle status | -| - [supportedSchema](#supportedSchema ) | More than one type | supported schema | -| - [versionNotes](#versionNotes ) | null or string | version notes | -| + [contactPoint](#contactPoint ) | More than one type | contact point | -| - [distribution](#distribution ) | null or array | dataset distribution | -| - [first](#first ) | More than one type | first | -| - [hasCurrentVersion](#hasCurrentVersion ) | More than one type | current version | -| - [hasVersion](#hasVersion ) | null or array | has version | -| - [inSeries](#inSeries ) | null or array | in series | -| - [keyword](#keyword ) | null or array of string | keyword/tag | -| - [landingPage](#landingPage ) | More than one type | landing page | -| - [previousVersion](#previousVersion ) | More than one type | previous version | -| - [qualifiedRelation](#qualifiedRelation ) | null or array | qualified relation | -| - [spatialResolutionInMeters](#spatialResolutionInMeters ) | null or string | Spatial resolution (meters) | -| - [temporalResolution](#temporalResolution ) | null or string | temporal resolution | -| - [theme](#theme ) | null or array | theme/category | -| - [version](#version ) | null or string | version | -| - [describedBy](#describedBy ) | More than one type | data dictionary | -| - [liabilityStatement](#liabilityStatement ) | More than one type | liability statement | -| - [metadataDistribution](#metadataDistribution ) | null or array | metadata distribution | -| - [purpose](#purpose ) | null or string | purpose | -| - [accessRights](#accessRights ) | More than one type | access rights | -| - [accrualPeriodicity](#accrualPeriodicity ) | More than one type | frequency | -| - [conformsTo](#conformsTo ) | null or array | conforms to | -| - [contributor](#contributor ) | null or array | contributor | -| - [created](#created ) | More than one type | creation date | -| - [creator](#creator ) | More than one type | creator | -| + [description](#description ) | string | description | -| - [hasPart](#hasPart ) | null or array | has part | -| + [identifier](#identifier ) | More than one type | identifier | -| - [isReferencedBy](#isReferencedBy ) | null or array of string | is referenced by | -| - [issued](#issued ) | More than one type | release date | -| - [language](#language ) | More than one type | language | -| - [modified](#modified ) | More than one type | last modified | -| - [provenance](#provenance ) | null or array of string | provenance | -| + [publisher](#publisher ) | object | publisher | -| - [relation](#relation ) | null or array of string | related resource | -| - [replaces](#replaces ) | null or array | replaces | -| - [rights](#rights ) | null or array of string | rights | -| - [rightsHolder](#rightsHolder ) | null or array | rights holder | -| - [source](#source ) | null or array | data source | -| - [spatial](#spatial ) | More than one type | spatial/geographic coverage | -| - [subject](#subject ) | null or array | subject | -| - [temporal](#temporal ) | null or array | temporal coverage | -| + [title](#title ) | string | title | -| - [category](#category ) | null or array | category | -| - [hasQualityMeasurement](#hasQualityMeasurement ) | null or array | quality measurement | -| - [page](#page ) | null or array | documentation | -| - [qualifiedAttribution](#qualifiedAttribution ) | null or array | qualified attribution | -| - [wasAttributedTo](#wasAttributedTo ) | null or array | attribution | -| - [wasGeneratedBy](#wasGeneratedBy ) | null or array | was generated by | -| - [wasUsedBy](#wasUsedBy ) | null or array | used by | -| - [image](#image ) | More than one type | image | -| - [scopeNote](#scopeNote ) | null or string | usage note | - -## [Optional] Property `Dataset > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/datasets/national-climate-observations-2024" -``` - -## [Optional] Property `Dataset > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ----------- | -| **Default** | `"Dataset"` | - -## [Optional] Property `Dataset > otherIdentifier` - -**Title:** other identifier - -**Requirement:** Optional - -Additional identifiers for the dataset besides the main identifier, such as a DOI or other persistent ID - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------------------------------------- | -| [Identifier](#otherIdentifier_items) | A unique identifier and optionally it's scheme and other relevant information | - -### Dataset > otherIdentifier > Identifier - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | ----------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Identifier](./Identifier.md) | - -## [Optional] Property `Dataset > sample` - -**Title:** sample - -**Requirement:** Optional - -List of sample distributions for the dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ----------------------------------------------------------------------------- | -| [Distribution](#sample_items) | A specific representation of a dataset, such as a file, feed, or API response | - -### Dataset > sample > Distribution - -**Title:** Distribution - -A specific representation of a dataset, such as a file, feed, or API response - -| **Type** | `object` | -| ------------------------- | --------------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Distribution](./Distribution.md) | - -## [Optional] Property `Dataset > status` - -**Title:** lifecycle status - -**Requirement:** Optional - -Lifecycle status of the dataset, such as completed, deprecated, under development, or withdrawn - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#status_anyOf_i0) | -| [Concept](#status_anyOf_i1) | - -### Property `Dataset > status > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > status > anyOf > Concept` - -**Title:** Concept - -inline description of Concept - -| **Type** | More than one type | -| ------------------------- | --------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `Dataset > supportedSchema` - -**Title:** supported schema - -**Requirement:** Optional - -supported schema for this dataset - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------------------------------- | -| [Null allowed when not required](#supportedSchema_anyOf_i0) | -| [Dataset](#supportedSchema_anyOf_i1) | - -### Property `Dataset > supportedSchema > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > supportedSchema > anyOf > Dataset` - -**Title:** Dataset - -inline description of the supported schema - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > versionNotes` - -**Title:** version notes - -**Requirement:** Optional - -Notes describing how this version differs from earlier versions of the dataset - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"Initial release of 2024 climate observations data." -``` - -## [Optional] Property `Dataset > contactPoint` - -**Title:** contact point - -**Requirement:** Optional - -A contact point for questions about the Dataset (single contact or list). Include an email address that is continuously monitored - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Required** | Yes | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------ | -| [Kind](#contactPoint_anyOf_i0) | -| [List of contacts](#contactPoint_anyOf_i1) | - -### Property `Dataset > contactPoint > anyOf > Kind` - -**Title:** Kind - -inline description of Kind - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Kind](#sample_items_accessService_items_contactPoint_items) | - -### Property `Dataset > contactPoint > anyOf > List of contacts` - -**Title:** List of contacts - -| **Type** | `array` | -| -------- | ------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------- | -| [Kind](#contactPoint_anyOf_i1_items) | Contact information for an individual or entity | - -#### Dataset > contactPoint > anyOf > List of contacts > Kind - -**Title:** Kind - -Contact information for an individual or entity - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Kind](#sample_items_accessService_items_contactPoint_items) | - -## [Optional] Property `Dataset > distribution` - -**Title:** dataset distribution - -**Requirement:** Optional - -List of available distributions for the dataset. This can be omitted when no distribution is available yet. - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ----------------------------------- | ----------------------------------------------------------------------------- | -| [Distribution](#distribution_items) | A specific representation of a dataset, such as a file, feed, or API response | - -### Dataset > distribution > Distribution - -**Title:** Distribution - -A specific representation of a dataset, such as a file, feed, or API response - -| **Type** | `object` | -| ------------------------- | ----------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Distribution](#sample_items) | - -## [Optional] Property `Dataset > first` - -**Title:** first - -**Requirement:** Optional - -the first item of the sequence the dataset belongs to - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------- | -| [Null allowed when not required](#first_anyOf_i0) | -| [Dataset](#first_anyOf_i1) | - -### Property `Dataset > first > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > first > anyOf > Dataset` - -**Title:** Dataset - -inline description of Dataset - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > hasCurrentVersion` - -**Title:** current version - -**Requirement:** Optional - -reference to the current (latest) version of a dataset - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------------- | -| [Null allowed when not required](#hasCurrentVersion_anyOf_i0) | -| [Dataset](#hasCurrentVersion_anyOf_i1) | - -### Property `Dataset > hasCurrentVersion > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > hasCurrentVersion > anyOf > Dataset` - -**Title:** Dataset - -inline description of Dataset - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > hasVersion` - -**Title:** has version - -**Requirement:** Optional - -List of related Datasets that are a version, edition, or adaptation of the described Dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | --------------------------------------------------------- | -| [Dataset](#hasVersion_items) | A collection of data published or curated by one provider | - -### Dataset > hasVersion > Dataset - -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > inSeries` - -**Title:** in series - -**Requirement:** Optional - -Dataset series this dataset belongs to - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| -------------------------------- | --------------------------------------------------------- | -| [DatasetSeries](#inSeries_items) | A group of related datasets that are published separately | - -### Dataset > inSeries > DatasetSeries - -**Title:** DatasetSeries - -A group of related datasets that are published separately - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [DatasetSeries](#sample_items_accessService_items_servesDataset_items_inSeries_items) | - -## [Optional] Property `Dataset > keyword` - -**Title:** keyword/tag - -**Requirement:** Optional - -List of keywords or tags describing the dataset - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Examples:** - -```json -[ - "climate", - "weather", - "temperature", - "precipitation" -] -``` - -```json -[ - "climate", - "weather", - "temperature", - "precipitation", - "humidity", - "wind", - "meteorology" -] -``` - -| Each item of this array must be | Description | -| ---------------------------------- | ----------- | -| [Non-empty string](#keyword_items) | - | - -### Dataset > keyword > Non-empty string - -**Title:** Non-empty string - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Min length** | 1 | - -## [Optional] Property `Dataset > landingPage` - -**Title:** landing page - -**Requirement:** Optional - -A web page from the original data provider that gives access to the Dataset, its Distributions, and related information - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------- | -| [Null allowed when not required](#landingPage_anyOf_i0) | -| [Document](#landingPage_anyOf_i1) | - -### Property `Dataset > landingPage > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > landingPage > anyOf > Document` - -**Title:** Document - -inline description of Document - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Document](#sample_items_accessService_items_servesDataset_items_landingPage_anyOf_i1) | - -## [Optional] Property `Dataset > previousVersion` - -**Title:** previous version - -**Requirement:** Optional - -reference to the previous dataset version - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------------------------------- | -| [Null allowed when not required](#previousVersion_anyOf_i0) | -| [Dataset](#previousVersion_anyOf_i1) | - -### Property `Dataset > previousVersion > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > previousVersion > anyOf > Dataset` - -**Title:** Dataset - -inline description of Dataset - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > qualifiedRelation` - -**Title:** qualified relation - -**Requirement:** Optional - -Detailed relationship between the dataset and another resource, including the role of that relationship - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ---------------------------------------- | ------------------------------------------------------------------- | -| [Relationship](#qualifiedRelation_items) | Additional information about how one resource is related to another | - -### Dataset > qualifiedRelation > Relationship - -**Title:** Relationship - -Additional information about how one resource is related to another - -| **Type** | `object` | -| ------------------------- | --------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Relationship](#sample_items_accessService_items_servesDataset_items_qualifiedRelation_items) | - -## [Optional] Property `Dataset > spatialResolutionInMeters` - -**Title:** Spatial resolution (meters) - -**Requirement:** Optional - -Smallest spatial distance between data points, in meters, represented as a single value - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"1000" -``` - -## [Optional] Property `Dataset > temporalResolution` - -**Title:** temporal resolution - -**Requirement:** Optional - -Smallest time interval between data points, using xsd:duration format (for example, P1D) - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"P1D" -``` - -## [Optional] Property `Dataset > theme` - -**Title:** theme/category - -**Requirement:** Optional - -List of themes or categories for the dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#theme_items) | A controlled term or label, optionally drawn from a concept scheme | - -### Dataset > theme > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | --------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `Dataset > version` - -**Title:** version - -**Requirement:** Optional - -The version indicator (name or identifier) of a resource - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"2024.1" -``` - -## [Optional] Property `Dataset > describedBy` - -**Title:** data dictionary - -**Requirement:** Optional - -A distribution describing the Data Dictionary for this dataset - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------- | -| [Null allowed when not required](#describedBy_anyOf_i0) | -| [Distribution](#describedBy_anyOf_i1) | - -### Property `Dataset > describedBy > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > describedBy > anyOf > Distribution` - -**Title:** Distribution - -inline description of Distribution - -| **Type** | `object` | -| ------------------------- | ----------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Distribution](#sample_items) | - -## [Optional] Property `Dataset > liabilityStatement` - -**Title:** liability statement - -**Requirement:** Optional - -A liability statement about the dataset that may clarify limitations of responsibility, qualifications on the accuracy, reliability, and completeness of the data, or absence of endorsement by the data publisher or provider, among other considerations - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"This dataset is provided as-is without warranty of any kind. Users are responsible for determining fitness for their intended use." -``` - -| Any of(Option) | -| -------------------------------------------------------------- | -| [Null allowed when not required](#liabilityStatement_anyOf_i0) | -| [item 1](#liabilityStatement_anyOf_i1) | - -### Property `Dataset > liabilityStatement > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > liabilityStatement > anyOf > item 1` - -Full text of the liability statement - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Dataset > metadataDistribution` - -**Title:** metadata distribution - -**Requirement:** Optional - -Distribution of the original metadata document this dataset was derived from - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------------- | ----------------------------------------------------------------------------- | -| [Distribution](#metadataDistribution_items) | A specific representation of a dataset, such as a file, feed, or API response | - -### Dataset > metadataDistribution > Distribution - -**Title:** Distribution - -A specific representation of a dataset, such as a file, feed, or API response - -| **Type** | `object` | -| ------------------------- | ----------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Distribution](#sample_items) | - -## [Optional] Property `Dataset > purpose` - -**Title:** purpose - -**Requirement:** Optional - -The purpose of the dataset - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"To provide comprehensive, high-quality climate observations for research, planning, and decision-making related to weather and climate." -``` - -## [Optional] Property `Dataset > accessRights` - -**Title:** access rights - -**Requirement:** Optional - -Information about whether the dataset is publicly accessible, restricted, or not public - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"public" -``` - -```json -"Public access with no restrictions. Data is freely available for download and use." -``` - -| Any of(Option) | -| -------------------------------------------------------- | -| [Null allowed when not required](#accessRights_anyOf_i0) | -| [item 1](#accessRights_anyOf_i1) | - -### Property `Dataset > accessRights > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > accessRights > anyOf > item 1` - -Text description of the access rights - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Dataset > accrualPeriodicity` - -**Title:** frequency - -**Requirement:** Optional - -The frequency at which the Dataset is updated - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"daily" -``` - -| Any of(Option) | -| -------------------------------------------------------------- | -| [Null allowed when not required](#accrualPeriodicity_anyOf_i0) | -| [item 1](#accrualPeriodicity_anyOf_i1) | -| [item 2](#accrualPeriodicity_anyOf_i2) | -| [item 3](#accrualPeriodicity_anyOf_i3) | - -### Property `Dataset > accrualPeriodicity > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > accrualPeriodicity > anyOf > item 1` - -ISO 19115 Maintenance Frequency code - -| **Type** | `enum (of string)` | -| -------- | ------------------ | - -Must be one of: -* "continual" -* "daily" -* "weekly" -* "fortnightly" -* "monthly" -* "quarterly" -* "biannually" -* "annually" -* "asNeeded" -* "irregular" -* "notPlanned" -* "unknown" - -### Property `Dataset > accrualPeriodicity > anyOf > item 2` - -ISO-8601 Maintenance Frequency code for recurring values, see https://www.iso.org/standard/70907.html - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------- | -| **Must match regular expression** | ```^R/P.+$``` [Test](https://regex101.com/?regex=%5ER%2FP.%2B%24) | - -### Property `Dataset > accrualPeriodicity > anyOf > item 3` - -Dublin Core Collection Frequency Vocabulary, see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/#vocabulary-terms - -| **Type** | `enum (of string)` | -| -------- | ------------------ | - -Must be one of: -* "continuous" -* "daily" -* "weekly" -* "biweekly" -* "monthly" -* "quarterly" -* "semiannual" -* "annual" -* "irregular" -* "triennial" -* "biennial" -* "threeTimesAYear" -* "bimonthly" -* "semimonthly" -* "threeTimesAMonth" -* "semiweekly" -* "threeTimesAWeek" - -## [Optional] Property `Dataset > conformsTo` - -**Title:** conforms to - -**Requirement:** Optional - -List of standards, schemas, or profiles the dataset follows - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------- | -| [Standard](#conformsTo_items) | A standard or specification that another resource conforms to | - -### Dataset > conformsTo > Standard - -**Title:** Standard - -A standard or specification that another resource conforms to - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Standard](#sample_items_accessService_items_servesDataset_items_landingPage_anyOf_i1_conformsTo_items) | - -## [Optional] Property `Dataset > contributor` - -**Title:** contributor - -**Requirement:** Optional - -List of agents contributing to the Dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------------------------------------------------------- | -| [Agent](#contributor_items) | A person, organization, software agent, or other entity involved with a resource | - -### Dataset > contributor > Agent - -**Title:** Agent - -A person, organization, software agent, or other entity involved with a resource - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Agent](#sample_items_accessService_items_servesDataset_items_inSeries_items_publisher_anyOf_i1) | - -## [Optional] Property `Dataset > created` - -**Title:** creation date - -**Requirement:** Optional - -The date on which the Dataset was first created - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-01-01" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#created_anyOf_i0) | -| [Date string](#created_anyOf_i1) | - -### Property `Dataset > created > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > created > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------ | -| [item 0](#created_anyOf_i1_anyOf_i0) | -| [item 1](#created_anyOf_i1_anyOf_i1) | -| [item 2](#created_anyOf_i1_anyOf_i2) | -| [item 3](#created_anyOf_i1_anyOf_i3) | - -#### Property `Dataset > created > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Dataset > created > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Dataset > created > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Dataset > created > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Dataset > creator` - -**Title:** creator - -**Requirement:** Optional - -Person or organization responsible for creating the dataset - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#creator_anyOf_i0) | -| [Agent](#creator_anyOf_i1) | - -### Property `Dataset > creator > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > creator > anyOf > Agent` - -**Title:** Agent - -inline description of Agent - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Agent](#sample_items_accessService_items_servesDataset_items_inSeries_items_publisher_anyOf_i1) | - -## [Optional] Property `Dataset > description` - -**Title:** description - -**Requirement:** Optional - -Plain-language summary of the dataset - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"Daily temperature, precipitation, and wind measurements from monitoring stations across the United States." -``` - -```json -"Comprehensive daily climate observations collected from monitoring stations across the United States, including temperature, precipitation, humidity, and wind measurements." -``` - -## [Optional] Property `Dataset > hasPart` - -**Title:** has part - -**Requirement:** Optional - -List of related datasets that are part of the described dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | --------------------------------------------------------- | -| [Dataset](#hasPart_items) | A collection of data published or curated by one provider | - -### Dataset > hasPart > Dataset - -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > identifier` - -**Title:** identifier - -**Requirement:** Optional - -The unique identifier for the Dataset, e.g. the URI or other unique identifier in the context of the Catalog - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Required** | Yes | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------ | -| [Null allowed when not required](#identifier_anyOf_i0) | -| [Identifier](#identifier_anyOf_i1) | - -### Property `Dataset > identifier > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > identifier > anyOf > Identifier` - -**Title:** Identifier - -inline description of Identifier - -| **Type** | More than one type | -| ------------------------- | ------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#otherIdentifier_items) | - -## [Optional] Property `Dataset > isReferencedBy` - -**Title:** is referenced by - -**Requirement:** Optional - -List of links to related resources, such as publications, that reference, cite, or otherwise point to the Dataset - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "https://example.gov/publications/climate-trends-2024" -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------- | -| [Link](#isReferencedBy_items) | reference iri of Resource | - -### Dataset > isReferencedBy > Link - -**Title:** Link - -reference iri of Resource - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Dataset > issued` - -**Title:** release date - -**Requirement:** Optional - -Date when the dataset was first published. If the exact publication date is unknown, use the date it was first referenced in the catalog. - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-01-15" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#issued_anyOf_i0) | -| [Date string](#issued_anyOf_i1) | - -### Property `Dataset > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > issued > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------- | -| [item 0](#issued_anyOf_i1_anyOf_i0) | -| [item 1](#issued_anyOf_i1_anyOf_i1) | -| [item 2](#issued_anyOf_i1_anyOf_i2) | -| [item 3](#issued_anyOf_i1_anyOf_i3) | - -#### Property `Dataset > issued > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Dataset > issued > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Dataset > issued > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Dataset > issued > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Dataset > language` - -**Title:** language - -**Requirement:** Optional - -ISO 639-1 language code values used in the dataset text or metadata, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -[ - "en" -] -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#language_anyOf_i0) | -| [Language code](#language_anyOf_i1) | -| [List of languages](#language_anyOf_i2) | - -### Property `Dataset > language > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > language > anyOf > Language code` - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -### Property `Dataset > language > anyOf > List of languages` - -**Title:** List of languages - -| **Type** | `array of string` | -| -------- | ----------------- | - -| Each item of this array must be | Description | -| ----------------------------------------- | ----------- | -| [Language code](#language_anyOf_i2_items) | - | - -#### Dataset > language > anyOf > List of languages > Language code - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -## [Optional] Property `Dataset > modified` - -**Title:** last modified - -**Requirement:** Optional - -Most recent date when the dataset's actual data changed, not just metadata - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-06-01" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#modified_anyOf_i0) | -| [Date string](#modified_anyOf_i1) | - -### Property `Dataset > modified > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > modified > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------- | -| [item 0](#modified_anyOf_i1_anyOf_i0) | -| [item 1](#modified_anyOf_i1_anyOf_i1) | -| [item 2](#modified_anyOf_i1_anyOf_i2) | -| [item 3](#modified_anyOf_i1_anyOf_i3) | - -#### Property `Dataset > modified > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Dataset > modified > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Dataset > modified > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Dataset > modified > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Dataset > provenance` - -**Title:** provenance - -**Requirement:** Optional - -List of statements about the lineage of a Dataset, including any changes in its ownership or custody since its creation that may be significant for its authenticity, integrity, or interpretation - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "Data collected from automated weather stations deployed at 2,500 locations across the continental United States.", - "Quality control procedures applied according to WMO guidelines." -] -``` - -| Each item of this array must be | Description | -| ------------------------------------- | ------------------------------------- | -| [provenance items](#provenance_items) | Full text of the provenance statement | - -### Dataset > provenance > provenance items - -Full text of the provenance statement - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Dataset > publisher` - -**Title:** publisher - -**Requirement:** Optional - -Organization responsible for publishing and making the dataset available - -| **Type** | `object` | -| ------------------------- | --------------------------------- | -| **Required** | Yes | -| **Additional properties** | Any type allowed | -| **Defined in** | [Organization](./Organization.md) | - -## [Optional] Property `Dataset > relation` - -**Title:** related resource - -**Requirement:** Optional - -List of links to related resources when the relationship is not otherwise specified - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "https://example.gov/datasets/historical-climate-averages" -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------- | -| [Link](#relation_items) | reference iri of Resource | - -### Dataset > relation > Link - -**Title:** Link - -reference iri of Resource - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Dataset > replaces` - -**Title:** replaces - -**Requirement:** Optional - -List of Datasets replaced by this Dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | --------------------------------------------------------- | -| [Dataset](#replaces_items) | A collection of data published or curated by one provider | - -### Dataset > replaces > Dataset - -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > rights` - -**Title:** rights - -**Requirement:** Optional - -Rights statements not already covered by license or accessRights, such as copyright or policy restrictions - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Examples:** - -```json -[ - "Data is provided as-is without warranty. Please cite the National Climate Data Center when using this data." -] -``` - -```json -[ - "This data is in the public domain and may be used without restriction." -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ---------------------------------- | -| [rights items](#rights_items) | Full text of a statement of rights | - -### Dataset > rights > rights items - -Full text of a statement of rights - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Dataset > rightsHolder` - -**Title:** rights holder - -**Requirement:** Optional - -List of agents (organizations) holding rights on the Dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ----------------------------------- | --------------------------------------------------------------------------------- | -| [Organization](#rightsHolder_items) | An organization involved with a resource, including parent or child organizations | - -### Dataset > rightsHolder > Organization - -**Title:** Organization - -An organization involved with a resource, including parent or child organizations - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Organization](#otherIdentifier_items_anyOf_i1_creator_anyOf_i1) | - -## [Optional] Property `Dataset > source` - -**Title:** data source - -**Requirement:** Optional - -List of related Datasets from which the described Dataset is derived - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | --------------------------------------------------------- | -| [Dataset](#source_items) | A collection of data published or curated by one provider | - -### Dataset > source > Dataset - -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#sample_items_accessService_items_servesDataset_items) | - -## [Optional] Property `Dataset > spatial` - -**Title:** spatial/geographic coverage - -**Requirement:** Optional - -A geographic region or regions that are covered by the Dataset - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#spatial_anyOf_i0) | -| [Location](#spatial_anyOf_i1) | -| [List of geographic regions](#spatial_anyOf_i2) | - -### Property `Dataset > spatial > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > spatial > anyOf > Location` - -**Title:** Location - -inline description of Location - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Location](#sample_items_accessService_items_servesDataset_items_inSeries_items_spatial_items) | - -### Property `Dataset > spatial > anyOf > List of geographic regions` - -**Title:** List of geographic regions - -| **Type** | `array` | -| -------- | ------- | - -| Each item of this array must be | Description | -| ----------------------------------- | -------------------------------- | -| [Location](#spatial_anyOf_i2_items) | A named place or geographic area | - -#### Dataset > spatial > anyOf > List of geographic regions > Location - -**Title:** Location - -A named place or geographic area - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Location](#sample_items_accessService_items_servesDataset_items_inSeries_items_spatial_items) | - -## [Optional] Property `Dataset > subject` - -**Title:** subject - -**Requirement:** Optional - -List of primary subjects for the dataset, usually narrower than broad theme categories - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#subject_items) | A controlled term or label, optionally drawn from a concept scheme | - -### Dataset > subject > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | --------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `Dataset > temporal` - -**Title:** temporal coverage - -**Requirement:** Optional - -Time periods covered by the dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ---------------------------------------------------------------------- | -| [PeriodOfTime](#temporal_items) | Information about a specific time period with a start- and/or end-time | - -### Dataset > temporal > PeriodOfTime - -**Title:** PeriodOfTime - -Information about a specific time period with a start- and/or end-time - -| **Type** | More than one type | -| ------------------------- | --------------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [PeriodOfTime](#sample_items_accessService_items_servesDataset_items_inSeries_items_temporal_items) | - -## [Optional] Property `Dataset > title` - -**Title:** title - -**Requirement:** Optional - -Human-readable title of the dataset - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"Daily Climate Observations 2024" -``` - -```json -"National Climate Observations 2024" -``` - -## [Optional] Property `Dataset > category` - -**Title:** category - -**Requirement:** Optional - -List of high-level categories for the dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#category_items) | A controlled term or label, optionally drawn from a concept scheme | - -### Dataset > category > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | --------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#sample_items_representationTechnique_anyOf_i1) | - -## [Optional] Property `Dataset > hasQualityMeasurement` - -**Title:** quality measurement - -**Requirement:** Optional - -List of quality measurements for the dataset (for example, completeness, accuracy, or timeliness) beyond spatial or temporal resolution - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| -------------------------------------------------- | ------------------------------------------------------------- | -| [QualityMeasurement](#hasQualityMeasurement_items) | A measurement of a resource against a specific quality metric | - -### Dataset > hasQualityMeasurement > QualityMeasurement - -**Title:** QualityMeasurement - -A measurement of a resource against a specific quality metric - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [QualityMeasurement](#sample_items_accessService_items_servesDataset_items_hasQualityMeasurement_items) | - -## [Optional] Property `Dataset > page` - -**Title:** documentation - -**Requirement:** Optional - -List of pages or documents about this dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ----------------------------------------------------- | -| [Document](#page_items) | A publication or other document related to a resource | - -### Dataset > page > Document - -**Title:** Document - -A publication or other document related to a resource - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Document](#sample_items_accessService_items_servesDataset_items_landingPage_anyOf_i1) | - -## [Optional] Property `Dataset > qualifiedAttribution` - -**Title:** qualified attribution - -**Requirement:** Optional - -List of agents with specific responsibilities for the dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------------ | ------------------------------------------------- | -| [Attribution](#qualifiedAttribution_items) | A responsibility that an agent has for a resource | - -### Dataset > qualifiedAttribution > Attribution - -**Title:** Attribution - -A responsibility that an agent has for a resource - -| **Type** | `object` | -| ------------------------- | ----------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Attribution](#sample_items_accessService_items_servesDataset_items_qualifiedAttribution_items) | - -## [Optional] Property `Dataset > wasAttributedTo` - -**Title:** attribution - -**Requirement:** Optional - -List of agents attributed to this dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------------------------------------------------------- | -| [Agent](#wasAttributedTo_items) | A person, organization, software agent, or other entity involved with a resource | - -### Dataset > wasAttributedTo > Agent - -**Title:** Agent - -A person, organization, software agent, or other entity involved with a resource - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------------ | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Agent](#sample_items_accessService_items_servesDataset_items_inSeries_items_publisher_anyOf_i1) | - -## [Optional] Property `Dataset > wasGeneratedBy` - -**Title:** was generated by - -**Requirement:** Optional - -List of activities that generated, or provide the business context for the creation of the dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| --------------------------------- | -------------------------------------------------------------- | -| [Activity](#wasGeneratedBy_items) | An activity related to creating, changing, or using a resource | - -### Dataset > wasGeneratedBy > Activity - -**Title:** Activity - -An activity related to creating, changing, or using a resource - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Activity](#sample_items_accessService_items_servesDataset_items_wasGeneratedBy_items) | - -## [Optional] Property `Dataset > wasUsedBy` - -**Title:** used by - -**Requirement:** Optional - -List of activities that used the Dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------------------------------------- | -| [Activity](#wasUsedBy_items) | An activity related to creating, changing, or using a resource | - -### Dataset > wasUsedBy > Activity - -**Title:** Activity - -An activity related to creating, changing, or using a resource - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Activity](#sample_items_accessService_items_servesDataset_items_wasGeneratedBy_items) | - -## [Optional] Property `Dataset > image` - -**Title:** image - -**Requirement:** Optional - -Thumbnail image illustrating the dataset, especially useful for visual data such as maps, photos, or video - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------- | -| [Null allowed when not required](#image_anyOf_i0) | -| [Link](#image_anyOf_i1) | - -### Property `Dataset > image > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Dataset > image > anyOf > Link` - -**Title:** Link - -The link to the image - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Dataset > scopeNote` - -**Title:** usage note - -**Requirement:** Optional - -usage note for the dataset - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"This dataset contains raw observational data. For derived products such as monthly averages or climate normals, see related datasets." -``` - diff --git a/jsonschema/docs/Distribution.md b/jsonschema/docs/Distribution.md deleted file mode 100644 index 833aaf06..00000000 --- a/jsonschema/docs/Distribution.md +++ /dev/null @@ -1,1217 +0,0 @@ - - -**Title:** Distribution - -A specific representation of a dataset, such as a file, feed, or API response - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Distribution", - "title": "Climate Data CSV", - "description": "Daily climate observations in CSV format.", - "accessURL": "https://example.gov/data/climate", - "downloadURL": "https://example.gov/downloads/climate-2024.csv", - "mediaType": "text/csv", - "format": "CSV", - "byteSize": "52428800", - "license": "https://creativecommons.org/publicdomain/zero/1.0/", - "modified": "2024-06-01", - "rights": [ - "No rights reserved. This data is in the public domain." - ], - "describedBy": { - "@type": "Standard", - "title": "CSV Data Dictionary", - "accessURL": "https://example.gov/data/climate/dictionary" - }, - "accessRestriction": null, - "cuiRestriction": null, - "useRestriction": null -} -``` - -| Property | Type | Title/Description | -| ---------------------------------------------------------- | ----------------------- | --------------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [representationTechnique](#representationTechnique ) | More than one type | representation technique | -| - [status](#status ) | More than one type | lifecycle status | -| - [characterEncoding](#characterEncoding ) | More than one type | character encoding | -| - [accessService](#accessService ) | null or array | access service | -| - [accessURL](#accessURL ) | More than one type | access URL | -| - [byteSize](#byteSize ) | null or string | byte size | -| - [compressFormat](#compressFormat ) | null or string | compression format | -| - [downloadURL](#downloadURL ) | More than one type | download URL | -| - [mediaType](#mediaType ) | null or string | media type | -| - [packageFormat](#packageFormat ) | null or string | packaging format | -| - [spatialResolutionInMeters](#spatialResolutionInMeters ) | null or string | Spatial resolution (meters) | -| - [temporalResolution](#temporalResolution ) | null or string | termporal resolution | -| - [availability](#availability ) | More than one type | availability | -| - [accessRestriction](#accessRestriction ) | null or array | access restriction | -| - [cuiRestriction](#cuiRestriction ) | More than one type | CUI restriction | -| - [describedBy](#describedBy ) | More than one type | data dictionary | -| - [useRestriction](#useRestriction ) | null or array | use restriction | -| - [accessRights](#accessRights ) | More than one type | access rights | -| - [conformsTo](#conformsTo ) | null or array | linked schemas | -| - [description](#description ) | null or string | description | -| - [format](#format ) | null or string | format | -| - [identifier](#identifier ) | More than one type | identifier | -| - [otherIdentifier](#otherIdentifier ) | null or array | other identifier | -| - [issued](#issued ) | More than one type | release date | -| - [language](#language ) | More than one type | language | -| - [license](#license ) | More than one type | license | -| - [modified](#modified ) | More than one type | last modified | -| - [rights](#rights ) | null or array of string | rights | -| - [title](#title ) | null or string | title | -| - [hasQualityMeasurement](#hasQualityMeasurement ) | null or array | quality measurement | -| - [page](#page ) | null or array | documentation | -| - [image](#image ) | More than one type | image | -| - [checksum](#checksum ) | More than one type | checksum | - -## [Optional] Property `Distribution > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/distributions/climate-data-csv-001" -``` - -## [Optional] Property `Distribution > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ---------------- | -| **Default** | `"Distribution"` | - -## [Optional] Property `Distribution > representationTechnique` - -**Title:** representation technique - -**Requirement:** Optional - -Method or schema used to structure the distribution content (for example, CSV convention, XML schema, or spatial representation type) - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------------------- | -| [Null allowed when not required](#representationTechnique_anyOf_i0) | -| [Concept](#representationTechnique_anyOf_i1) | - -### Property `Distribution > representationTechnique > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > representationTechnique > anyOf > Concept` - -**Title:** Concept - -inline description of Concept - -| **Type** | More than one type | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Concept](./Concept.md) | - -## [Optional] Property `Distribution > status` - -**Title:** lifecycle status - -**Requirement:** Optional - -The status of the distribution in the context of maturity lifecycle - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#status_anyOf_i0) | -| [Concept](#status_anyOf_i1) | - -### Property `Distribution > status > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > status > anyOf > Concept` - -**Title:** Concept - -inline description of Concept - -| **Type** | More than one type | -| ------------------------- | -------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#representationTechnique_anyOf_i1) | - -## [Optional] Property `Distribution > characterEncoding` - -**Title:** character encoding - -**Requirement:** Optional - -List of character encodings used in the Distribution, using IANA character set names (for example, UTF-8) - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -[ - "UTF-8" -] -``` - -| Any of(Option) | -| ------------------------------------------------------------- | -| [Null allowed when not required](#characterEncoding_anyOf_i0) | -| [List of encodings](#characterEncoding_anyOf_i1) | - -### Property `Distribution > characterEncoding > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > characterEncoding > anyOf > List of encodings` - -**Title:** List of encodings - -| **Type** | `array of string` | -| -------- | ----------------- | - -| Each item of this array must be | Description | -| ------------------------------------------------------- | ----------- | -| [Character encoding](#characterEncoding_anyOf_i1_items) | - | - -#### Distribution > characterEncoding > anyOf > List of encodings > Character encoding - -**Title:** Character encoding - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Distribution > accessService` - -**Title:** access service - -**Requirement:** Optional - -A data service that gives access to the distribution of the dataset - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ----------------------------------- | ------------------------------------------------------------------- | -| [DataService](#accessService_items) | A service that provides access to data or data processing functions | - -### Distribution > accessService > DataService - -**Title:** DataService - -A service that provides access to data or data processing functions - -| **Type** | `object` | -| ------------------------- | ------------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Dataservice](./Dataservice.md) | - -## [Optional] Property `Distribution > accessURL` - -**Title:** access URL - -**Requirement:** Optional - -URL for indirect access to the Distribution (for example, a landing page, API docs, or request form), not a direct file download - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"https://example.gov/data/climate" -``` - -```json -"https://example.gov/data/climate/access" -``` - -| Any of(Option) | -| ----------------------------------------------------- | -| [Null allowed when not required](#accessURL_anyOf_i0) | -| [URL](#accessURL_anyOf_i1) | - -### Property `Distribution > accessURL > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > accessURL > anyOf > URL` - -**Title:** URL - -reference iri of Resource - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Distribution > byteSize` - -**Title:** byte size - -**Requirement:** Optional - -The size of a Distribution in bytes - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"52428800" -``` - -## [Optional] Property `Distribution > compressFormat` - -**Title:** compression format - -**Requirement:** Optional - -The format of the file in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"application/gzip" -``` - -## [Optional] Property `Distribution > downloadURL` - -**Title:** download URL - -**Requirement:** Optional - -Direct URL to a downloadable file for the Distribution; use accessURL for indirect access - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"https://example.gov/data/climate/climate-data-2023.csv" -``` - -| Any of(Option) | -| ------------------------------------------------------- | -| [Null allowed when not required](#downloadURL_anyOf_i0) | -| [URL](#downloadURL_anyOf_i1) | - -### Property `Distribution > downloadURL > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > downloadURL > anyOf > URL` - -**Title:** URL - -reference iri of Resource - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Distribution > mediaType` - -**Title:** media type - -**Requirement:** Optional - -MIME type of the Distribution (for example, text/csv or application/json), from the IANA media types registry: https://www.iana.org/assignments/media-types/media-types.xhtml - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"text/csv" -``` - -## [Optional] Property `Distribution > packageFormat` - -**Title:** packaging format - -**Requirement:** Optional - -The format of the file in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"application/zip" -``` - -## [Optional] Property `Distribution > spatialResolutionInMeters` - -**Title:** Spatial resolution (meters) - -**Requirement:** Optional - -The minimum spatial separation resolvable in a dataset distribution, measured in meters - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"1000" -``` - -## [Optional] Property `Distribution > temporalResolution` - -**Title:** termporal resolution - -**Requirement:** Optional - -The minimum time period resolvable in the dataset distribution - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"P1D" -``` - -## [Optional] Property `Distribution > availability` - -**Title:** availability - -**Requirement:** Optional - -An indication how long it is planned to keep the Distribution of the Dataset available - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------------------------------------------- | -| [Null allowed when not required](#availability_anyOf_i0) | -| [Concept](#availability_anyOf_i1) | - -### Property `Distribution > availability > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > availability > anyOf > Concept` - -**Title:** Concept - -inline description of Concept - -| **Type** | More than one type | -| ------------------------- | -------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#representationTechnique_anyOf_i1) | - -## [Optional] Property `Distribution > accessRestriction` - -**Title:** access restriction - -**Requirement:** Optional - -List of access restrictions related to the distribution - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| --------------------------------------------- | ----------------------------------------------------------- | -| [AccessRestriction](#accessRestriction_items) | Rules or indicators that describe who can access a resource | - -### Distribution > accessRestriction > AccessRestriction - -**Title:** AccessRestriction - -Rules or indicators that describe who can access a resource - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [AccessRestriction](#accessService_items_servesDataset_items_sample_items_accessRestriction_items) | - -## [Optional] Property `Distribution > cuiRestriction` - -**Title:** CUI restriction - -**Requirement:** Optional - -Controlled Unclassified Information restriction related to the distribution - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ---------------------------------------------------------- | -| [Null allowed when not required](#cuiRestriction_anyOf_i0) | -| [CUIRestriction](#cuiRestriction_anyOf_i1) | - -### Property `Distribution > cuiRestriction > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > cuiRestriction > anyOf > CUIRestriction` - -**Title:** CUIRestriction - -inline description of CUIRestriction - -| **Type** | `object` | -| ------------------------- | ----------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [CUIRestriction](#accessService_items_servesDataset_items_sample_items_cuiRestriction_anyOf_i1) | - -## [Optional] Property `Distribution > describedBy` - -**Title:** data dictionary - -**Requirement:** Optional - -A distribution containing the Data Dictionary for this distribution - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------- | -| [Null allowed when not required](#describedBy_anyOf_i0) | -| [Distribution](#describedBy_anyOf_i1) | - -### Property `Distribution > describedBy > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > describedBy > anyOf > Distribution` - -**Title:** Distribution - -inline description of the data dictionary - -| **Type** | `object` | -| ------------------------- | --------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Distribution](#accessService_items_servesDataset_items_sample_items) | - -## [Optional] Property `Distribution > useRestriction` - -**Title:** use restriction - -**Requirement:** Optional - -Use restriction related to the distribution - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| --------------------------------------- | --------------------------------------------------- | -| [UseRestriction](#useRestriction_items) | Rules or legal limits on how a resource may be used | - -### Distribution > useRestriction > UseRestriction - -**Title:** UseRestriction - -Rules or legal limits on how a resource may be used - -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [UseRestriction](#accessService_items_servesDataset_items_sample_items_useRestriction_items) | - -## [Optional] Property `Distribution > accessRights` - -**Title:** access rights - -**Requirement:** Optional - -Information about whether the distribution is publicly accessible, restricted, or not public - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"Public access without restrictions" -``` - -| Any of(Option) | -| -------------------------------------------------------- | -| [Null allowed when not required](#accessRights_anyOf_i0) | -| [item 1](#accessRights_anyOf_i1) | - -### Property `Distribution > accessRights > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > accessRights > anyOf > item 1` - -Text description of the access rights - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Distribution > conformsTo` - -**Title:** linked schemas - -**Requirement:** Optional - -List of standards, schemas, or reference systems the Distribution follows (prefer stable URIs when available) - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------- | -| [Standard](#conformsTo_items) | A standard or specification that another resource conforms to | - -### Distribution > conformsTo > Standard - -**Title:** Standard - -A standard or specification that another resource conforms to - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Standard](#accessService_items_servesDataset_items_sample_items_conformsTo_items) | - -## [Optional] Property `Distribution > description` - -**Title:** description - -**Requirement:** Optional - -Plain-language summary of the distribution - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"Daily climate observations in CSV format." -``` - -```json -"A CSV file containing historical climate data including daily temperature and precipitation readings." -``` - -## [Optional] Property `Distribution > format` - -**Title:** format - -**Requirement:** Optional - -A human-readable description of the file format of the Distribution that provides useful information that might not be apparent from mediaType - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"CSV" -``` - -## [Optional] Property `Distribution > identifier` - -**Title:** identifier - -**Requirement:** Optional - -The unique identifier for the Distribution (e.g. DOI, ISBN) - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------ | -| [Null allowed when not required](#identifier_anyOf_i0) | -| [Identifier](#identifier_anyOf_i1) | - -### Property `Distribution > identifier > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > identifier > anyOf > Identifier` - -**Title:** Identifier - -inline description of Identifier - -| **Type** | More than one type | -| ------------------------- | ---------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#accessService_items_servesDataset_items_otherIdentifier_items) | - -## [Optional] Property `Distribution > otherIdentifier` - -**Title:** other identifier - -**Requirement:** Optional - -A list of identifiers for the Distribution besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------------------------------------- | -| [Identifier](#otherIdentifier_items) | A unique identifier and optionally it's scheme and other relevant information | - -### Distribution > otherIdentifier > Identifier - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | ---------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#accessService_items_servesDataset_items_otherIdentifier_items) | - -## [Optional] Property `Distribution > issued` - -**Title:** release date - -**Requirement:** Optional - -The date of formal issuance (e.g., publication) of the Distribution - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2023-06-01" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#issued_anyOf_i0) | -| [Date string](#issued_anyOf_i1) | - -### Property `Distribution > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > issued > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------- | -| [item 0](#issued_anyOf_i1_anyOf_i0) | -| [item 1](#issued_anyOf_i1_anyOf_i1) | -| [item 2](#issued_anyOf_i1_anyOf_i2) | -| [item 3](#issued_anyOf_i1_anyOf_i3) | - -#### Property `Distribution > issued > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Distribution > issued > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Distribution > issued > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Distribution > issued > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Distribution > language` - -**Title:** language - -**Requirement:** Optional - -ISO 639-1 language code values used in the distribution metadata text, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"en" -``` - -```json -[ - "en", - "es" -] -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#language_anyOf_i0) | -| [Language code](#language_anyOf_i1) | -| [List of languages](#language_anyOf_i2) | - -### Property `Distribution > language > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > language > anyOf > Language code` - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -### Property `Distribution > language > anyOf > List of languages` - -**Title:** List of languages - -| **Type** | `array of string` | -| -------- | ----------------- | - -| Each item of this array must be | Description | -| ----------------------------------------- | ----------- | -| [Language code](#language_anyOf_i2_items) | - | - -#### Distribution > language > anyOf > List of languages > Language code - -**Title:** Language code - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| -------------- | - | -| **Max length** | 2 | - -## [Optional] Property `Distribution > license` - -**Title:** license - -**Requirement:** Optional - -License that governs how the distribution can be used or reused - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"https://creativecommons.org/publicdomain/zero/1.0/" -``` - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#license_anyOf_i0) | -| [item 1](#license_anyOf_i1) | - -### Property `Distribution > license > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > license > anyOf > item 1` - -Full text of the license - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Distribution > modified` - -**Title:** last modified - -**Requirement:** Optional - -The most recent date on which the Distribution was changed or modified - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-06-01" -``` - -```json -"2024-01-15" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#modified_anyOf_i0) | -| [Date string](#modified_anyOf_i1) | - -### Property `Distribution > modified > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > modified > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------- | -| [item 0](#modified_anyOf_i1_anyOf_i0) | -| [item 1](#modified_anyOf_i1_anyOf_i1) | -| [item 2](#modified_anyOf_i1_anyOf_i2) | -| [item 3](#modified_anyOf_i1_anyOf_i3) | - -#### Property `Distribution > modified > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Distribution > modified > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Distribution > modified > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Distribution > modified > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Distribution > rights` - -**Title:** rights - -**Requirement:** Optional - -Rights statements not already covered by license or accessRights, such as copyright or policy restrictions - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Examples:** - -```json -[ - "No rights reserved. This data is in the public domain." -] -``` - -```json -[ - "This data is in the public domain and may be used without restriction." -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ---------------------------------- | -| [rights items](#rights_items) | Full text of a statement of rights | - -### Distribution > rights > rights items - -Full text of a statement of rights - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Distribution > title` - -**Title:** title - -**Requirement:** Optional - -Human-readable title of the distribution - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"Climate Data CSV" -``` - -## [Optional] Property `Distribution > hasQualityMeasurement` - -**Title:** quality measurement - -**Requirement:** Optional - -Quality measurements for the distribution (for example, completeness, accuracy, or timeliness) - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| -------------------------------------------------- | ------------------------------------------------------------- | -| [QualityMeasurement](#hasQualityMeasurement_items) | A measurement of a resource against a specific quality metric | - -### Distribution > hasQualityMeasurement > QualityMeasurement - -**Title:** QualityMeasurement - -A measurement of a resource against a specific quality metric - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [QualityMeasurement](#accessService_items_servesDataset_items_sample_items_hasQualityMeasurement_items) | - -## [Optional] Property `Distribution > page` - -**Title:** documentation - -**Requirement:** Optional - -A page or document about this Distribution - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ----------------------------------------------------- | -| [Document](#page_items) | A publication or other document related to a resource | - -### Distribution > page > Document - -**Title:** Document - -A publication or other document related to a resource - -| **Type** | `object` | -| ------------------------- | ---------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Document](#accessService_items_servesDataset_items_sample_items_page_items) | - -## [Optional] Property `Distribution > image` - -**Title:** image - -**Requirement:** Optional - -A link to a thumbnail picture illustrating the content of the distribution - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------- | -| [Null allowed when not required](#image_anyOf_i0) | -| [Link](#image_anyOf_i1) | - -### Property `Distribution > image > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > image > anyOf > Link` - -**Title:** Link - -The link to the image - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Distribution > checksum` - -**Title:** checksum - -**Requirement:** Optional - -Checksum used to verify that the downloadable file content has not changed - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#checksum_anyOf_i0) | -| [Checksum](#checksum_anyOf_i1) | - -### Property `Distribution > checksum > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Distribution > checksum > anyOf > Checksum` - -**Title:** Checksum - -inline description of Checksum - -| **Type** | `object` | -| ------------------------- | ----------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Checksum](#accessService_items_servesDataset_items_sample_items_checksum_anyOf_i1) | - diff --git a/jsonschema/docs/Document.md b/jsonschema/docs/Document.md deleted file mode 100644 index 83a2a0fb..00000000 --- a/jsonschema/docs/Document.md +++ /dev/null @@ -1,527 +0,0 @@ - - -**Title:** Document - -A publication or other document related to a resource - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Document", - "title": "Climate Data User Guide", - "description": "A guide for accessing and using the National Climate Data Center's data products.", - "accessURL": "https://example.gov/docs/climate-user-guide", - "mediaType": "application/pdf", - "identifier": "NCDC-UG-2024-001", - "issued": "2024-03-15", - "publisher": [ - { - "@type": "Organization", - "name": "National Climate Data Center" - } - ], - "bibliographicCitation": "National Climate Data Center. (2024). Climate Data User Guide. Retrieved from https://example.gov/docs/climate-user-guide" -} -``` - -| Property | Type | Title/Description | -| -------------------------------------------------- | ------------------ | ---------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [accessURL](#accessURL ) | More than one type | access URL | -| - [downloadURL](#downloadURL ) | More than one type | download URL | -| - [creator](#creator ) | null or array | author | -| - [mediaType](#mediaType ) | null or string | media type | -| - [abstract](#abstract ) | null or string | abstract | -| - [bibliographicCitation](#bibliographicCitation ) | null or string | bibliographic citation | -| - [conformsTo](#conformsTo ) | null or array | conforms to | -| - [corporateCreator](#corporateCreator ) | null or array | corporate author | -| - [description](#description ) | null or string | description | -| - [identifier](#identifier ) | More than one type | identifier | -| - [otherIdentifier](#otherIdentifier ) | null or array | other identifier | -| - [issued](#issued ) | More than one type | publication date | -| - [publisher](#publisher ) | null or array | publisher | -| + [title](#title ) | string | title | -| - [category](#category ) | null or array | category | - -## [Optional] Property `Document > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/documents/climate-user-guide-001" -``` - -## [Optional] Property `Document > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ------------ | -| **Default** | `"Document"` | - -## [Optional] Property `Document > accessURL` - -**Title:** access URL - -**Requirement:** Optional - -A URL that gives access to the Document - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"https://example.gov/docs/climate-user-guide" -``` - -| Any of(Option) | -| ----------------------------------------------------- | -| [Null allowed when not required](#accessURL_anyOf_i0) | -| [URL](#accessURL_anyOf_i1) | - -### Property `Document > accessURL > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Document > accessURL > anyOf > URL` - -**Title:** URL - -reference iri of Document - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Document > downloadURL` - -**Title:** download URL - -**Requirement:** Optional - -A URL that is a direct link to a downloadable file of the Document in a given format - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -"https://example.gov/docs/climate-user-guide.pdf" -``` - -| Any of(Option) | -| ------------------------------------------------------- | -| [Null allowed when not required](#downloadURL_anyOf_i0) | -| [URL](#downloadURL_anyOf_i1) | - -### Property `Document > downloadURL > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Document > downloadURL > anyOf > URL` - -**Title:** URL - -reference iri of Document - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -## [Optional] Property `Document > creator` - -**Title:** author - -**Requirement:** Optional - -The individual(s) responsible for creating the Document - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ----------------------------------------------- | -| [Kind](#creator_items) | Contact information for an individual or entity | - -### Document > creator > Kind - -**Title:** Kind - -Contact information for an individual or entity - -| **Type** | `object` | -| ------------------------- | ----------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Kind](./Kind.md) | - -## [Optional] Property `Document > mediaType` - -**Title:** media type - -**Requirement:** Optional - -The file format of the Document as defined in the official register of media types managed by IANA: https://www.iana.org/assignments/media-types/media-types.xhtml - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"application/pdf" -``` - -## [Optional] Property `Document > abstract` - -**Title:** abstract - -**Requirement:** Optional - -Text abstract of the Document - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"This document provides detailed instructions for using climate data products, including API access, file formats, and data interpretation guidelines." -``` - -## [Optional] Property `Document > bibliographicCitation` - -**Title:** bibliographic citation - -**Requirement:** Optional - -Bibliographic citation as text - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"National Climate Data Center. (2024). Climate Data User Guide. Retrieved from https://example.gov/docs/climate-user-guide" -``` - -```json -"National Climate Data Center. (2024). Climate Data User Guide. U.S. Department of Commerce." -``` - -## [Optional] Property `Document > conformsTo` - -**Title:** conforms to - -**Requirement:** Optional - -List of standards or specifications the document follows - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------- | -| [Standard](#conformsTo_items) | A standard or specification that another resource conforms to | - -### Document > conformsTo > Standard - -**Title:** Standard - -A standard or specification that another resource conforms to - -| **Type** | `object` | -| ------------------------- | ------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Standard](./Standard.md) | - -## [Optional] Property `Document > corporateCreator` - -**Title:** corporate author - -**Requirement:** Optional - -The corporate organization(s) responsible for creating the Document - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| --------------------------------------- | --------------------------------------------------------------------------------- | -| [Organization](#corporateCreator_items) | An organization involved with a resource, including parent or child organizations | - -### Document > corporateCreator > Organization - -**Title:** Organization - -An organization involved with a resource, including parent or child organizations - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Organization](#conformsTo_items_identifier_anyOf_i1_anyOf_i1_creator_anyOf_i1) | - -## [Optional] Property `Document > description` - -**Title:** description - -**Requirement:** Optional - -Plain-language summary of the document - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"A guide for accessing and using the National Climate Data Center's data products." -``` - -```json -"A comprehensive guide for accessing and using the National Climate Data Center's data products and services." -``` - -## [Optional] Property `Document > identifier` - -**Title:** identifier - -**Requirement:** Optional - -The unique identifier for the Document (e.g. DOI, ISBN) - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------ | -| [Null allowed when not required](#identifier_anyOf_i0) | -| [Identifier](#identifier_anyOf_i1) | - -### Property `Document > identifier > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Document > identifier > anyOf > Identifier` - -**Title:** Identifier - -inline description of Identifier - -| **Type** | More than one type | -| ------------------------- | --------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#conformsTo_items_identifier_anyOf_i1) | - -## [Optional] Property `Document > otherIdentifier` - -**Title:** other identifier - -**Requirement:** Optional - -A list of identifiers for the Document besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------------------------------------- | -| [Identifier](#otherIdentifier_items) | A unique identifier and optionally it's scheme and other relevant information | - -### Document > otherIdentifier > Identifier - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | --------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#conformsTo_items_identifier_anyOf_i1) | - -## [Optional] Property `Document > issued` - -**Title:** publication date - -**Requirement:** Optional - -Publication date of the Document - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-01-15" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#issued_anyOf_i0) | -| [item 1](#issued_anyOf_i1) | - -### Property `Document > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Document > issued > anyOf > item 1` - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------- | -| [item 0](#issued_anyOf_i1_anyOf_i0) | -| [item 1](#issued_anyOf_i1_anyOf_i1) | -| [item 2](#issued_anyOf_i1_anyOf_i2) | -| [item 3](#issued_anyOf_i1_anyOf_i3) | - -#### Property `Document > issued > anyOf > item 1 > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Document > issued > anyOf > item 1 > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Document > issued > anyOf > item 1 > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Document > issued > anyOf > item 1 > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Document > publisher` - -**Title:** publisher - -**Requirement:** Optional - -The organization(s) that published the Document - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| -------------------------------- | --------------------------------------------------------------------------------- | -| [Organization](#publisher_items) | An organization involved with a resource, including parent or child organizations | - -### Document > publisher > Organization - -**Title:** Organization - -An organization involved with a resource, including parent or child organizations - -| **Type** | `object` | -| ------------------------- | ------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Organization](#conformsTo_items_identifier_anyOf_i1_anyOf_i1_creator_anyOf_i1) | - -## [Optional] Property `Document > title` - -**Title:** title - -**Requirement:** Optional - -The title of the Document - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Example:** - -```json -"Climate Data User Guide" -``` - -## [Optional] Property `Document > category` - -**Title:** category - -**Requirement:** Optional - -List of categories/genres for the Document - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#category_items) | A controlled term or label, optionally drawn from a concept scheme | - -### Document > category > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Concept](#conformsTo_items_category_items) | - diff --git a/jsonschema/docs/Identifier.md b/jsonschema/docs/Identifier.md deleted file mode 100644 index 0f3f72c0..00000000 --- a/jsonschema/docs/Identifier.md +++ /dev/null @@ -1,197 +0,0 @@ - - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------- | -| [Simple string identifier](#anyOf_i0) | -| [Identifier as a complex object](#anyOf_i1) | - -## Property `Identifier > anyOf > Simple string identifier` - -**Title:** Simple string identifier - -| **Type** | `string` | -| -------- | -------- | - -## Property `Identifier > anyOf > Identifier as a complex object` - -**Title:** Identifier as a complex object - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -| Property | Type | Title/Description | -| ----------------------------------------- | ------------------ | ----------------- | -| - [@id](#anyOf_i1_@id ) | string | - | -| - [@type](#anyOf_i1_@type ) | string | - | -| - [schemaAgency](#anyOf_i1_schemaAgency ) | null or string | schema agency | -| - [creator](#anyOf_i1_creator ) | More than one type | creator | -| - [issued](#anyOf_i1_issued ) | More than one type | issued | -| - [version](#anyOf_i1_version ) | null or string | version | -| - [notation](#anyOf_i1_notation ) | null or string | notation | - -### Property `Identifier > anyOf > Identifier as a complex object > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -### Property `Identifier > anyOf > Identifier as a complex object > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | -------------- | -| **Default** | `"Identifier"` | - -### Property `Identifier > anyOf > Identifier as a complex object > schemaAgency` - -**Title:** schema agency - -**Requirement:** Optional - -The name of the agency that issued the identifier - -| **Type** | `null or string` | -| -------- | ---------------- | - -### Property `Identifier > anyOf > Identifier as a complex object > creator` - -**Title:** creator - -**Requirement:** Optional - -the agency that manages the identifier scheme - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------------ | -| [Null allowed when not required](#anyOf_i1_creator_anyOf_i0) | -| [Organization](#anyOf_i1_creator_anyOf_i1) | - -#### Property `Identifier > anyOf > Identifier as a complex object > creator > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -#### Property `Identifier > anyOf > Identifier as a complex object > creator > anyOf > Organization` - -**Title:** Organization - -inline description of the creator - -| **Type** | `object` | -| ------------------------- | --------------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Organization](./Organization.md) | - -### Property `Identifier > anyOf > Identifier as a complex object > issued` - -**Title:** issued - -**Requirement:** Optional - -The date of formal issuance (e.g., publication) of the Identifier - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------------------------------- | -| [Null allowed when not required](#anyOf_i1_issued_anyOf_i0) | -| [Date string](#anyOf_i1_issued_anyOf_i1) | - -#### Property `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -#### Property `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------------------------------- | -| [item 0](#anyOf_i1_issued_anyOf_i1_anyOf_i0) | -| [item 1](#anyOf_i1_issued_anyOf_i1_anyOf_i1) | -| [item 2](#anyOf_i1_issued_anyOf_i1_anyOf_i2) | -| [item 3](#anyOf_i1_issued_anyOf_i1_anyOf_i3) | - -##### Property `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -##### Property `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -##### Property `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -##### Property `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -### Property `Identifier > anyOf > Identifier as a complex object > version` - -**Title:** version - -**Requirement:** Optional - -version of the identifier scheme - -| **Type** | `null or string` | -| -------- | ---------------- | - -### Property `Identifier > anyOf > Identifier as a complex object > notation` - -**Title:** notation - -**Requirement:** Optional - -abbreviation or code from code lists for an identifier - -| **Type** | `null or string` | -| -------- | ---------------- | - diff --git a/jsonschema/docs/Kind.md b/jsonschema/docs/Kind.md deleted file mode 100644 index 75de63c0..00000000 --- a/jsonschema/docs/Kind.md +++ /dev/null @@ -1,224 +0,0 @@ - - -**Title:** Kind - -Contact information for an individual or entity - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -{ - "@type": "Kind", - "fn": "Climate Data Support Team", - "hasEmail": "mailto:climate-support@example.gov", - "organization-name": "National Climate Data Center", - "tel": "+1-555-123-4567" -} -``` - -```json -{ - "@type": "Kind", - "fn": "Dr. Jane Smith", - "hasEmail": "mailto:jane.smith@example.gov" -} -``` - -| Property | Type | Title/Description | -| ------------------------------------------ | -------------- | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [address](#address ) | null or array | address | -| + [hasEmail](#hasEmail ) | string | Email | -| - [family-name](#family-name ) | null or string | family name | -| + [fn](#fn ) | string | formatted name | -| - [given-name](#given-name ) | null or string | given name | -| - [organization-name](#organization-name ) | null or string | organization name | -| - [tel](#tel ) | null or string | telephone | -| - [title](#title ) | null or string | position title | - -## [Optional] Property `Kind > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/contacts/climate-support-001" -``` - -## [Optional] Property `Kind > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | -------- | -| **Default** | `"Kind"` | - -## [Optional] Property `Kind > address` - -**Title:** address - -**Requirement:** Optional - -The address of the contact - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------- | -| [Address](#address_items) | A single physical address | - -### Kind > address > Address - -**Title:** Address - -A single physical address - -| **Type** | `object` | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Address](./Address.md) | - -## [Optional] Property `Kind > hasEmail` - -**Title:** Email - -**Requirement:** Optional - -Email address for the contact in mailto: format (for example, mailto:support@example.gov) - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"mailto:climate-support@example.gov" -``` - -```json -"mailto:jane.smith@example.gov" -``` - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^mailto:[\w\_\~\!\$\&\'\(\)\*\+\,\;\=\:.-]+@[\w.-]+\.[\w.-]+?$``` [Test](https://regex101.com/?regex=%5Emailto%3A%5B%5Cw%5C_%5C~%5C%21%5C%24%5C%26%5C%27%5C%28%5C%29%5C%2A%5C%2B%5C%2C%5C%3B%5C%3D%5C%3A.-%5D%2B%40%5B%5Cw.-%5D%2B%5C.%5B%5Cw.-%5D%2B%3F%24&testString=%22mailto%3Aclimate-support%40example.gov%22) | - -## [Optional] Property `Kind > family-name` - -**Title:** family name - -**Requirement:** Optional - -The family name of the contact - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"Smith" -``` - -## [Optional] Property `Kind > fn` - -**Title:** formatted name - -**Requirement:** Optional - -The formatted text of the name of the contact - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"Climate Data Support Team" -``` - -```json -"Dr. Jane Smith" -``` - -## [Optional] Property `Kind > given-name` - -**Title:** given name - -**Requirement:** Optional - -The given name of the contact - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"Jane" -``` - -## [Optional] Property `Kind > organization-name` - -**Title:** organization name - -**Requirement:** Optional - -The name of the organization to contact - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"National Climate Data Center" -``` - -## [Optional] Property `Kind > tel` - -**Title:** telephone - -**Requirement:** Optional - -The telephone number for the contact - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"+1-555-123-4567" -``` - -## [Optional] Property `Kind > title` - -**Title:** position title - -**Requirement:** Optional - -The position role of the person to contact - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"Senior Climate Data Scientist" -``` - diff --git a/jsonschema/docs/Location.md b/jsonschema/docs/Location.md deleted file mode 100644 index 115f8062..00000000 --- a/jsonschema/docs/Location.md +++ /dev/null @@ -1,562 +0,0 @@ - - -**Title:** Location - -A named place or geographic area - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -{ - "@type": "Location", - "prefLabel": "Continental United States", - "bbox": "POLYGON((-125 24, -66 24, -66 50, -125 50, -125 24))" -} -``` - -```json -{ - "@type": "Location", - "prefLabel": "Continental United States", - "bbox": { - "type": "Polygon", - "coordinates": [ - [ - [ - -77.119759, - 38.791645 - ], - [ - -76.909393, - 38.791645 - ], - [ - -76.909393, - 38.99538 - ], - [ - -77.119759, - 38.99538 - ], - [ - -77.119759, - 38.791645 - ] - ] - ] - } -} -``` - -```json -{ - "@type": "Location", - "prefLabel": "Null Island", - "bbox": "POINT (0.0 0.0)" -} -``` - -```json -{ - "@type": "Location", - "prefLabel": "Random object", - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -77.0402, - 38.7916 - ], - [ - -76.9094, - 38.8921 - ], - [ - -76.9115, - 38.9355 - ], - [ - -76.9286, - 38.9784 - ], - [ - -77.0024, - 38.9657 - ], - [ - -77.0389, - 38.9939 - ], - [ - -77.0672, - 38.9687 - ], - [ - -77.0782, - 38.9143 - ], - [ - -77.1198, - 38.9342 - ], - [ - -77.1198, - 38.8456 - ], - [ - -77.0402, - 38.7916 - ] - ] - ] - } -} -``` - -| Property | Type | Title/Description | -| -------------------------------------- | ------------------ | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [bbox](#bbox ) | More than one type | bounding box | -| - [centroid](#centroid ) | More than one type | centroid | -| - [identifier](#identifier ) | More than one type | identifier | -| - [otherIdentifier](#otherIdentifier ) | null or array | other identifier | -| - [geometry](#geometry ) | More than one type | geometry | -| - [inScheme](#inScheme ) | More than one type | gazetteer | -| - [altLabel](#altLabel ) | null or string | alternative name | -| - [prefLabel](#prefLabel ) | null or string | geographic name | - -## [Optional] Property `Location > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/locations/washington-dc" -``` - -## [Optional] Property `Location > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ------------ | -| **Default** | `"Location"` | - -## [Optional] Property `Location > bbox` - -**Title:** bounding box - -**Requirement:** Optional - -Bounding box for the location, described in WKT, GeoJSON, or GML format - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"POLYGON((-125 24, -66 24, -66 50, -125 50, -125 24))" -``` - -```json -{ - "type": "Polygon", - "coordinates": [ - [ - [ - -77.119759, - 38.791645 - ], - [ - -76.909393, - 38.791645 - ], - [ - -76.909393, - 38.99538 - ], - [ - -77.119759, - 38.99538 - ], - [ - -77.119759, - 38.791645 - ] - ] - ] -} -``` - -| Any of(Option) | -| ------------------------ | -| [item 0](#bbox_anyOf_i0) | -| [item 1](#bbox_anyOf_i1) | -| [item 2](#bbox_anyOf_i2) | - -### Property `Location > bbox > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `Location > bbox > anyOf > item 1` - -Bounding box represented in WKT, GeoJSON (stringified), or GML format - -| **Type** | `string` | -| -------- | -------- | - -### Property `Location > bbox > anyOf > item 2` - -Bounding box represented in GeoJSON format, either as a Polygon or in bbox array format - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -| Property | Type | Title/Description | -| -------------------------------------------- | ----- | ----------------- | -| + [coordinates](#bbox_anyOf_i2_coordinates ) | array | - | -| + [type](#bbox_anyOf_i2_type ) | const | - | - -#### Property `Location > bbox > anyOf > item 2 > coordinates` - -**Requirement:** Optional - -| **Type** | `array` | -| ------------ | ------- | -| **Required** | Yes | - -#### Property `Location > bbox > anyOf > item 2 > type` - -**Requirement:** Optional - -| **Type** | `const` | -| ------------ | ------- | -| **Required** | Yes | - -Specific value: `"Polygon"` - -## [Optional] Property `Location > centroid` - -**Title:** centroid - -**Requirement:** Optional - -The geographic center (centroid) of a location described in WKT, GeoJSON, or GML format - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "type": "Point", - "coordinates": [ - -77.0369, - 38.9072 - ] -} -``` - -| Any of(Option) | -| ---------------------------- | -| [item 0](#centroid_anyOf_i0) | -| [item 1](#centroid_anyOf_i1) | -| [item 2](#centroid_anyOf_i2) | - -### Property `Location > centroid > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `Location > centroid > anyOf > item 1` - -Center point represented in WKT, GeoJSON (stringified), or GML format - -| **Type** | `string` | -| -------- | -------- | - -### Property `Location > centroid > anyOf > item 2` - -Centroid represented in GeoJSON format; force point usage with coordinates of longitude and latitude - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -| Property | Type | Title/Description | -| ------------------------------------------------ | --------------- | ----------------- | -| + [coordinates](#centroid_anyOf_i2_coordinates ) | array of number | - | -| + [type](#centroid_anyOf_i2_type ) | const | - | - -#### Property `Location > centroid > anyOf > item 2 > coordinates` - -**Requirement:** Optional - -| **Type** | `array of number` | -| ------------ | ----------------- | -| **Required** | Yes | - -| Each item of this array must be | Description | -| --------------------------------------------------------- | ----------- | -| [coordinates items](#centroid_anyOf_i2_coordinates_items) | - | - -##### Location > centroid > anyOf > item 2 > coordinates > coordinates items - -| **Type** | `number` | -| -------- | -------- | - -#### Property `Location > centroid > anyOf > item 2 > type` - -**Requirement:** Optional - -| **Type** | `const` | -| ------------ | ------- | -| **Required** | Yes | - -Specific value: `"Point"` - -## [Optional] Property `Location > identifier` - -**Title:** identifier - -**Requirement:** Optional - -The unique geographic identifier for the Location, e.g., the URI or other unique identifier in the context of the relevant gazetteer - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ---------------------------------- | -| [item 0](#identifier_anyOf_i0) | -| [Identifier](#identifier_anyOf_i1) | - -### Property `Location > identifier > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `Location > identifier > anyOf > Identifier` - -**Title:** Identifier - -inline description of Identifier - -| **Type** | More than one type | -| ------------------------- | ----------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Identifier](./Identifier.md) | - -## [Optional] Property `Location > otherIdentifier` - -**Title:** other identifier - -**Requirement:** Optional - -A list of geographic identifiers for the Location besides the main identifier, e.g. the URI or other unique identifiers in the context of the relevant gazetteer - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------------------------------------- | -| [Identifier](#otherIdentifier_items) | A unique identifier and optionally it's scheme and other relevant information | - -### Location > otherIdentifier > Identifier - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | ---------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#identifier_anyOf_i1) | - -## [Optional] Property `Location > geometry` - -**Title:** geometry - -**Requirement:** Optional - -Associates a location with a corresponding geometry described in WKT, GeoJSON, or GML format - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "type": "Polygon", - "coordinates": [ - [ - [ - -77.0402, - 38.7916 - ], - [ - -76.9094, - 38.8921 - ], - [ - -76.9115, - 38.9355 - ], - [ - -76.9286, - 38.9784 - ], - [ - -77.0024, - 38.9657 - ], - [ - -77.0389, - 38.9939 - ], - [ - -77.0672, - 38.9687 - ], - [ - -77.0782, - 38.9143 - ], - [ - -77.1198, - 38.9342 - ], - [ - -77.1198, - 38.8456 - ], - [ - -77.0402, - 38.7916 - ] - ] - ] -} -``` - -| Any of(Option) | -| ---------------------------- | -| [item 0](#geometry_anyOf_i0) | -| [item 1](#geometry_anyOf_i1) | -| [item 2](#geometry_anyOf_i2) | - -### Property `Location > geometry > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `Location > geometry > anyOf > item 1` - -String format of the full geometry of the location in WKT, GeoJSON, or GML format - -| **Type** | `string` | -| -------- | -------- | - -### Property `Location > geometry > anyOf > item 2` - -Geometry represented in GeoJSON format - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -#### The following properties are required -* type -* coordinates - -## [Optional] Property `Location > inScheme` - -**Title:** gazetteer - -**Requirement:** Optional - -The gazetteer to which the location belongs - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------- | -| [item 0](#inScheme_anyOf_i0) | -| [ConceptScheme](#inScheme_anyOf_i1) | - -### Property `Location > inScheme > anyOf > item 0` - -| **Type** | `null` | -| -------- | ------ | - -### Property `Location > inScheme > anyOf > ConceptScheme` - -**Title:** ConceptScheme - -inline description of the gazetteer - -| **Type** | `object` | -| ------------------------- | ----------------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Conceptscheme](./Conceptscheme.md) | - -## [Optional] Property `Location > altLabel` - -**Title:** alternative name - -**Requirement:** Optional - -An alternative label or name for a location - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"DC" -``` - -## [Optional] Property `Location > prefLabel` - -**Title:** geographic name - -**Requirement:** Optional - -Preferred label or name of the Location - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"Continental United States" -``` - -```json -"Washington, D.C." -``` - diff --git a/jsonschema/docs/Metric.md b/jsonschema/docs/Metric.md deleted file mode 100644 index 64bf5c70..00000000 --- a/jsonschema/docs/Metric.md +++ /dev/null @@ -1,116 +0,0 @@ - - -**Title:** Metric - -A standard used to measure one aspect of data quality - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Metric", - "expectedDataType": "xsd:decimal", - "inDimension": "https://example.gov/dimensions/completeness", - "definition": "Percentage of non-null values in the dataset." -} -``` - -| Property | Type | Title/Description | -| ---------------------------------------- | -------------- | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [expectedDataType](#expectedDataType ) | string | expected datatype | -| + [inDimension](#inDimension ) | string | in dimension | -| - [definition](#definition ) | null or string | definition | - -## [Optional] Property `Metric > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/metrics/record-completeness" -``` - -## [Optional] Property `Metric > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ---------- | -| **Default** | `"Metric"` | - -## [Optional] Property `Metric > expectedDataType` - -**Title:** expected datatype - -**Requirement:** Optional - -Represents the expected data type for the metric's observed value (e.g., xsd:boolean, xsd:double etc...) - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"xsd:decimal" -``` - -```json -"xsd:double" -``` - -## [Optional] Property `Metric > inDimension` - -**Title:** in dimension - -**Requirement:** Optional - -Represents the dimensions a quality metric, certificate and annotation allow a measurement of. - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"https://example.gov/dimensions/completeness" -``` - -```json -"https://www.w3.org/TR/vocab-dqv/#dqv:completeness" -``` - -## [Optional] Property `Metric > definition` - -**Title:** definition - -**Requirement:** Optional - -Definition of the metric. - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"Percentage of non-null values in the dataset." -``` - -```json -"The percentage of non-null values for required fields in a dataset. A value of 1.0 indicates 100% completeness." -``` - diff --git a/jsonschema/docs/Organization.md b/jsonschema/docs/Organization.md deleted file mode 100644 index 4deb6c9c..00000000 --- a/jsonschema/docs/Organization.md +++ /dev/null @@ -1,190 +0,0 @@ - - -**Title:** Organization - -An organization involved with a resource, including parent or child organizations - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -{ - "@type": "Organization", - "name": "National Climate Data Center", - "altLabel": "NCDC" -} -``` - -```json -{ - "@id": "https://example.gov/organizations/census-bureau", - "@type": "Organization", - "name": "U.S. Census Bureau", - "prefLabel": "United States Census Bureau", - "altLabel": "Census Bureau", - "notation": [ - "USCB", - "CB" - ], - "subOrganizationOf": [ - { - "@id": "https://example.gov/organizations/doc", - "@type": "Organization", - "name": "U.S. Department of Commerce" - } - ] -} -``` - -| Property | Type | Title/Description | -| ------------------------------------------ | ----------------------- | ------------------ | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [name](#name ) | string | name | -| - [subOrganizationOf](#subOrganizationOf ) | null or array | suborganization of | -| - [altLabel](#altLabel ) | null or string | alternative label | -| - [notation](#notation ) | null or array of string | notation | -| - [prefLabel](#prefLabel ) | null or string | preferred label | - -## [Optional] Property `Organization > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/organizations/census-bureau" -``` - -## [Optional] Property `Organization > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ---------------- | -| **Default** | `"Organization"` | - -## [Optional] Property `Organization > name` - -**Title:** name - -**Requirement:** Optional - -The full name of the Organization - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"National Climate Data Center" -``` - -```json -"U.S. Census Bureau" -``` - -## [Optional] Property `Organization > subOrganizationOf` - -**Title:** suborganization of - -**Requirement:** Optional - -Represents hierarchical containment of Organizations or OrganizationalUnits; indicates an Organization which contains this Organization - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ---------------------------------------- | --------------------------------------------------------------------------------- | -| [Organization](#subOrganizationOf_items) | An organization involved with a resource, including parent or child organizations | - -### Organization > subOrganizationOf > Organization - -**Title:** Organization - -An organization involved with a resource, including parent or child organizations - -| **Type** | `object` | -| ------------------------- | --------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Organization](#root) | - -## [Optional] Property `Organization > altLabel` - -**Title:** alternative label - -**Requirement:** Optional - -alternative name (trading name, colloquial name) for an organization - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"NCDC" -``` - -```json -"Census Bureau" -``` - -## [Optional] Property `Organization > notation` - -**Title:** notation - -**Requirement:** Optional - -List of abbreviations or codes from code lists for an organization (e.g. DOI, DOD) - -| **Type** | `null or array of string` | -| -------- | ------------------------- | - -**Example:** - -```json -[ - "USCB", - "CB" -] -``` - -| Each item of this array must be | Description | -| ------------------------------- | ----------- | -| [Abbreviation](#notation_items) | - | - -### Organization > notation > Abbreviation - -**Title:** Abbreviation - -| **Type** | `string` | -| -------- | -------- | - -## [Optional] Property `Organization > prefLabel` - -**Title:** preferred label - -**Requirement:** Optional - -Preferred or legal name of the organization - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"United States Census Bureau" -``` - diff --git a/jsonschema/docs/PeriodOfTime.md b/jsonschema/docs/PeriodOfTime.md deleted file mode 100644 index fd4b63ca..00000000 --- a/jsonschema/docs/PeriodOfTime.md +++ /dev/null @@ -1,250 +0,0 @@ - - -**Title:** PeriodOfTime - -Information about a specific time period with a start- and/or end-time - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "PeriodOfTime", - "startDate": "2024-01-01", - "endDate": "2024-12-31" -} -``` - -| Property | Type | Title/Description | -| -------------------------- | ------------------ | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [endDate](#endDate ) | More than one type | end date | -| - [startDate](#startDate ) | More than one type | start date | - -| Any of(Option) | -| ------------------- | -| [item 0](#anyOf_i0) | -| [item 1](#anyOf_i1) | - -## Property `PeriodOfTime > anyOf > item 0` - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -### The following properties are required -* startDate - -## Property `PeriodOfTime > anyOf > item 1` - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -### The following properties are required -* endDate - -## [Optional] Property `PeriodOfTime > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/periods/fiscal-year-2024" -``` - -## [Optional] Property `PeriodOfTime > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ---------------- | -| **Default** | `"PeriodOfTime"` | - -## [Optional] Property `PeriodOfTime > endDate` - -**Title:** end date - -**Requirement:** Optional - -The end date of the period of time - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-12-31" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#endDate_anyOf_i0) | -| [item 1](#endDate_anyOf_i1) | - -### Property `PeriodOfTime > endDate > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `PeriodOfTime > endDate > anyOf > item 1` - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------ | -| [item 0](#endDate_anyOf_i1_anyOf_i0) | -| [item 1](#endDate_anyOf_i1_anyOf_i1) | -| [item 2](#endDate_anyOf_i1_anyOf_i2) | -| [item 3](#endDate_anyOf_i1_anyOf_i3) | - -#### Property `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `PeriodOfTime > startDate` - -**Title:** start date - -**Requirement:** Optional - -The start date of the period of time - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2023-10-01" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ----------------------------------------------------- | -| [Null allowed when not required](#startDate_anyOf_i0) | -| [item 1](#startDate_anyOf_i1) | - -### Property `PeriodOfTime > startDate > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `PeriodOfTime > startDate > anyOf > item 1` - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| -------------------------------------- | -| [item 0](#startDate_anyOf_i1_anyOf_i0) | -| [item 1](#startDate_anyOf_i1_anyOf_i1) | -| [item 2](#startDate_anyOf_i1_anyOf_i2) | -| [item 3](#startDate_anyOf_i1_anyOf_i3) | - -#### Property `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - diff --git a/jsonschema/docs/QualityMeasurement.md b/jsonschema/docs/QualityMeasurement.md deleted file mode 100644 index 57f847a0..00000000 --- a/jsonschema/docs/QualityMeasurement.md +++ /dev/null @@ -1,103 +0,0 @@ - - -**Title:** QualityMeasurement - -A measurement of a resource against a specific quality metric - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "QualityMeasurement", - "isMeasurementOf": { - "expectedDataType": "xsd:decimal", - "inDimension": "https://example.gov/dimensions/completeness" - }, - "value": "98.5", - "unitMeasure": "percent" -} -``` - -| Property | Type | Title/Description | -| -------------------------------------- | -------------- | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [isMeasurementOf](#isMeasurementOf ) | object | is measurement of | -| + [value](#value ) | string | value | -| - [unitMeasure](#unitMeasure ) | null or string | unit of measure | - -## [Optional] Property `QualityMeasurement > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/quality-measurements/completeness-001" -``` - -## [Optional] Property `QualityMeasurement > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ---------------------- | -| **Default** | `"QualityMeasurement"` | - -## [Optional] Property `QualityMeasurement > isMeasurementOf` - -**Title:** is measurement of - -**Requirement:** Optional - -The metric being observed - -| **Type** | `object` | -| ------------------------- | --------------------- | -| **Required** | Yes | -| **Additional properties** | Any type allowed | -| **Defined in** | [Metric](./Metric.md) | - -## [Optional] Property `QualityMeasurement > value` - -**Title:** value - -**Requirement:** Optional - -The value computed by metric - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Example:** - -```json -"98.5" -``` - -## [Optional] Property `QualityMeasurement > unitMeasure` - -**Title:** unit of measure - -**Requirement:** Optional - -Unit of measure associated with the value - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Example:** - -```json -"percent" -``` - diff --git a/jsonschema/docs/README.md b/jsonschema/docs/README.md index 6b8ce540..7995c10e 100644 --- a/jsonschema/docs/README.md +++ b/jsonschema/docs/README.md @@ -1,27 +1,47 @@ -# Schema documentation +# DCAT-US 3 Schema Documentation -This directory contains Markdown documentation for the DCAT-US JSON schema. -The docs are generated with the `generate_schema_docs.py` script from the -parent directory. The docs are derived automatically from the JSON Schema -files without any manual intervention. +This directory contains the generated Markdown documentation for the DCAT-US 3 +JSON Schema. The documentation is intended to provide a review-friendly, +human-readable view of the schema so contributors and implementers can inspect +the classes, fields, examples, and requirement levels without reading raw JSON +Schema files directly. -When you have made any changes to the schema files, run +## Documentation pages + +### Main classes + +- [Catalog](./catalog.md) +- [Dataset](./dataset.md) +- [Dataset Series](./dataset-series.md) +- [Distribution](./distribution.md) + +### Supporting classes + +- [Agents](./agents.md): [Agent](./agents.md#agent), [Organization](./agents.md#organization), [Kind](./agents.md#kind) +- [Constraints and Restrictions](./constraints-and-restrictions.md): [AccessRestriction](./constraints-and-restrictions.md#access-restriction), [CUIRestriction](./constraints-and-restrictions.md#cui-restriction), [UseRestriction](./constraints-and-restrictions.md#use-restriction) +- [Identifiers and Relationships](./identifiers-and-relationships.md): [Identifier](./identifiers-and-relationships.md#identifier), [Relationship](./identifiers-and-relationships.md#relationship), [Checksum](./identifiers-and-relationships.md#checksum), [Concept](./identifiers-and-relationships.md#concept), [ConceptScheme](./identifiers-and-relationships.md#concept-scheme) +- [Temporal, Spatial, and Metrics](./temporal-spatial-metrics.md): [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time), [Location](./temporal-spatial-metrics.md#location), [Metric](./temporal-spatial-metrics.md#metric), [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement), [Activity](./temporal-spatial-metrics.md#activity), [Address](./temporal-spatial-metrics.md#address) +- [Quality and Governance](./quality-governance.md): [Standard](./quality-governance.md#standard), [Document](./quality-governance.md#document), [CatalogRecord](./quality-governance.md#catalog-record), [DataService](./quality-governance.md#data-service), [Attribution](./quality-governance.md#attribution) + +## Regenerating the docs + +The docs are generated with `generate_schema_docs.py` from the parent directory. +They are derived automatically from the JSON Schema files without manual edits. + +When you change schema files, run: ``` poetry run python generate_schema_docs.py ``` -in the parent directory to update the documentation here. - ## Version controlling derived files -For convenience, we want these files to be under version control, but we -also want to ensure that they are up to date with any changes in the schema -files. We use a Github Actions script to run +These generated files are kept under version control for convenience, but they +must always match the current schema definitions. CI validates that by running: ``` -poetry run generate_schema_docs.py --check +poetry run python generate_schema_docs.py --check ``` -which validates that the documentation generated from the present version of -the schema matches precisely with what is in this directory. +That check fails if the generated output differs from what is committed in this +directory. diff --git a/jsonschema/docs/Relationship.md b/jsonschema/docs/Relationship.md deleted file mode 100644 index 0c754e1f..00000000 --- a/jsonschema/docs/Relationship.md +++ /dev/null @@ -1,93 +0,0 @@ - - -**Title:** Relationship - -Additional information about how one resource is related to another - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Relationship", - "hadRole": "isInputTo", - "relation": "https://example.gov/models/climate-prediction" -} -``` - -| Property | Type | Title/Description | -| ------------------------ | ------ | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| + [hadRole](#hadRole ) | string | role | -| + [relation](#relation ) | string | relation | - -## [Optional] Property `Relationship > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/relationships/dataset-001-data-provider" -``` - -## [Optional] Property `Relationship > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ---------------- | -| **Default** | `"Relationship"` | - -## [Optional] Property `Relationship > hadRole` - -**Title:** role - -**Requirement:** Optional - -The function of an entity or agent with respect to a dataset - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"isInputTo" -``` - -```json -"dataProvider" -``` - -## [Optional] Property `Relationship > relation` - -**Title:** relation - -**Requirement:** Optional - -The entity related to the dataset. This string should unambiguously identify the related resource using an appropriate identifier. - -| **Type** | `string` | -| ------------ | -------- | -| **Required** | Yes | - -**Examples:** - -```json -"https://example.gov/models/climate-prediction" -``` - -```json -"https://example.gov/organizations/national-weather-service" -``` - diff --git a/jsonschema/docs/Standard.md b/jsonschema/docs/Standard.md deleted file mode 100644 index 0ab4d831..00000000 --- a/jsonschema/docs/Standard.md +++ /dev/null @@ -1,504 +0,0 @@ - - -**Title:** Standard - -A standard or specification that another resource conforms to - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "Standard", - "title": "DCAT-US 3.0", - "description": "Data Catalog Vocabulary - United States Profile version 3.0", - "issued": "2024-01-15", - "identifier": { - "@type": "Identifier", - "notation": "DCAT-US-3.0", - "schemaAgency": "U.S. General Services Administration" - }, - "inScheme": { - "@type": "ConceptScheme", - "title": "Federal Data Standards", - "description": "A collection of data standards used by federal agencies" - } -} -``` - -| Property | Type | Title/Description | -| -------------------------------------- | ------------------ | ----------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [created](#created ) | More than one type | creation date | -| - [description](#description ) | null or string | description | -| - [identifier](#identifier ) | More than one type | identifier | -| - [otherIdentifier](#otherIdentifier ) | null or array | other identifier | -| - [issued](#issued ) | More than one type | issued | -| - [modified](#modified ) | More than one type | last modified | -| - [title](#title ) | null or string | title | -| - [category](#category ) | null or array | category | -| - [inScheme](#inScheme ) | More than one type | in scheme | - -## [Optional] Property `Standard > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/standards/dcat-us-3" -``` - -## [Optional] Property `Standard > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ------------ | -| **Default** | `"Standard"` | - -## [Optional] Property `Standard > created` - -**Title:** creation date - -**Requirement:** Optional - -The date on which the Standard has been first created - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2023-01-01" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| --------------------------------------------------- | -| [Null allowed when not required](#created_anyOf_i0) | -| [Date string](#created_anyOf_i1) | - -### Property `Standard > created > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Standard > created > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------ | -| [item 0](#created_anyOf_i1_anyOf_i0) | -| [item 1](#created_anyOf_i1_anyOf_i1) | -| [item 2](#created_anyOf_i1_anyOf_i2) | -| [item 3](#created_anyOf_i1_anyOf_i3) | - -#### Property `Standard > created > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Standard > created > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Standard > created > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Standard > created > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Standard > description` - -**Title:** description - -**Requirement:** Optional - -Plain-language summary of the standard - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"Data Catalog Vocabulary - United States Profile version 3.0" -``` - -```json -"The DCAT-US 3.0 schema defines a standard metadata format for data catalogs in the United States government, based on W3C DCAT." -``` - -## [Optional] Property `Standard > identifier` - -**Title:** identifier - -**Requirement:** Optional - -The unique identifier for the Standard, e.g. the URI or other unique identifier in the context of the Catalog - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------------------------ | -| [Null allowed when not required](#identifier_anyOf_i0) | -| [Identifier](#identifier_anyOf_i1) | - -### Property `Standard > identifier > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Standard > identifier > anyOf > Identifier` - -**Title:** Identifier - -inline description of Identifier - -| **Type** | More than one type | -| ------------------------- | ----------------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Identifier](./Identifier.md) | - -## [Optional] Property `Standard > otherIdentifier` - -**Title:** other identifier - -**Requirement:** Optional - -A list of identifiers for the Standard besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------------ | ----------------------------------------------------------------------------- | -| [Identifier](#otherIdentifier_items) | A unique identifier and optionally it's scheme and other relevant information | - -### Standard > otherIdentifier > Identifier - -**Title:** Identifier - -A unique identifier and optionally it's scheme and other relevant information - -| **Type** | More than one type | -| ------------------------- | ---------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Identifier](#identifier_anyOf_i1) | - -## [Optional] Property `Standard > issued` - -**Title:** issued - -**Requirement:** Optional - -The date of formal issuance (e.g., publication) of the Standard - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-01-15" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| -------------------------------------------------- | -| [Null allowed when not required](#issued_anyOf_i0) | -| [Date string](#issued_anyOf_i1) | - -### Property `Standard > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Standard > issued > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ----------------------------------- | -| [item 0](#issued_anyOf_i1_anyOf_i0) | -| [item 1](#issued_anyOf_i1_anyOf_i1) | -| [item 2](#issued_anyOf_i1_anyOf_i2) | -| [item 3](#issued_anyOf_i1_anyOf_i3) | - -#### Property `Standard > issued > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Standard > issued > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Standard > issued > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Standard > issued > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Standard > modified` - -**Title:** last modified - -**Requirement:** Optional - -The most recent date on which the Standard was changed or modified - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"2024-06-01" -``` - -```json -"2024-01-15T10:30:00Z" -``` - -```json -"2024" -``` - -```json -"2024-01" -``` - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#modified_anyOf_i0) | -| [Date string](#modified_anyOf_i1) | - -### Property `Standard > modified > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Standard > modified > anyOf > Date string` - -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ------------------------------------- | -| [item 0](#modified_anyOf_i1_anyOf_i0) | -| [item 1](#modified_anyOf_i1_anyOf_i1) | -| [item 2](#modified_anyOf_i1_anyOf_i2) | -| [item 3](#modified_anyOf_i1_anyOf_i3) | - -#### Property `Standard > modified > anyOf > Date string > anyOf > item 0` - -| **Type** | `string` | -| ---------- | ----------- | -| **Format** | `date-time` | - -#### Property `Standard > modified > anyOf > Date string > anyOf > item 1` - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `date` | - -#### Property `Standard > modified > anyOf > Date string > anyOf > item 2` - -A year in YYYY format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | --------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | - -#### Property `Standard > modified > anyOf > Date string > anyOf > item 3` - -A year and month in YYYY-MM format - -| **Type** | `string` | -| -------- | -------- | - -| Restrictions | | -| --------------------------------- | ----------------------------------------------------------------------------------------------------- | -| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | - -## [Optional] Property `Standard > title` - -**Title:** title - -**Requirement:** Optional - -Human-readable title of the standard - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"DCAT-US 3.0" -``` - -```json -"DCAT-US 3.0 - Data Catalog Vocabulary United States Profile" -``` - -## [Optional] Property `Standard > category` - -**Title:** category - -**Requirement:** Optional - -List of categories for the Standard - -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ------------------------------------------------------------------ | -| [Concept](#category_items) | A controlled term or label, optionally drawn from a concept scheme | - -### Standard > category > Concept - -**Title:** Concept - -A controlled term or label, optionally drawn from a concept scheme - -| **Type** | More than one type | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Concept](./Concept.md) | - -## [Optional] Property `Standard > inScheme` - -**Title:** in scheme - -**Requirement:** Optional - -The reference register to which the Standard belongs - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -| Any of(Option) | -| ---------------------------------------------------- | -| [Null allowed when not required](#inScheme_anyOf_i0) | -| [ConceptScheme](#inScheme_anyOf_i1) | - -### Property `Standard > inScheme > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `Standard > inScheme > anyOf > ConceptScheme` - -**Title:** ConceptScheme - -inline description of ConceptScheme - -| **Type** | `object` | -| ------------------------- | --------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [inScheme](#category_items_anyOf_i1_inScheme) | - diff --git a/jsonschema/docs/UseRestriction.md b/jsonschema/docs/UseRestriction.md deleted file mode 100644 index a9362561..00000000 --- a/jsonschema/docs/UseRestriction.md +++ /dev/null @@ -1,141 +0,0 @@ - - -**Title:** UseRestriction - -Rules or legal limits on how a resource may be used - -| **Type** | `object` | -| ------------------------- | ---------------- | -| **Additional properties** | Any type allowed | - -**Example:** - -```json -{ - "@type": "UseRestriction", - "restrictionStatus": "Restricted - Fully", - "specificRestriction": "Trademark", - "restrictionNote": "This data may be used for any purpose without restriction." -} -``` - -| Property | Type | Title/Description | -| ---------------------------------------------- | ------------------ | -------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [restrictionNote](#restrictionNote ) | null or string | restriction note | -| + [restrictionStatus](#restrictionStatus ) | object | restriction status | -| - [specificRestriction](#specificRestriction ) | More than one type | specific restriction | - -## [Optional] Property `UseRestriction > @id` - -**Requirement:** Optional - -| **Type** | `string` | -| ---------- | -------- | -| **Format** | `iri` | - -**Example:** - -```json -"https://example.gov/restrictions/use-restriction-001" -``` - -## [Optional] Property `UseRestriction > @type` - -**Requirement:** Optional - -| **Type** | `string` | -| ----------- | ------------------ | -| **Default** | `"UseRestriction"` | - -## [Optional] Property `UseRestriction > restrictionNote` - -**Title:** restriction note - -**Requirement:** Optional - -Significant information pertaining to the use or reproduction of the data - -| **Type** | `null or string` | -| -------- | ---------------- | - -**Examples:** - -```json -"This data may be used for any purpose without restriction." -``` - -```json -"This data may be used for research purposes. Commercial use requires written permission from the data steward." -``` - -## [Optional] Property `UseRestriction > restrictionStatus` - -**Title:** restriction status - -**Requirement:** Optional - -Indication of whether or not there are use restrictions on the archival materials, consider using a controlled vocabulary such as https://www.archives.gov/research/catalog/lcdrg/authority-lists/use-restriction-status - -| **Type** | More than one type | -| ------------------------- | ----------------------- | -| **Required** | Yes | -| **Additional properties** | Any type allowed | -| **Defined in** | [Concept](./Concept.md) | - -**Examples:** - -```json -"Restricted - Fully" -``` - -```json -"Unrestricted" -``` - -## [Optional] Property `UseRestriction > specificRestriction` - -**Title:** specific restriction - -**Requirement:** Optional - -Authority, code list entry, or policy reference that defines the specific use restriction; consider using a controlled vocabulary such as the NARA https://www.archives.gov/research/catalog/lcdrg/authority-lists/specific-use-restriction - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | - -**Examples:** - -```json -"Copyright" -``` - -```json -"Trademark" -``` - -| Any of(Option) | -| --------------------------------------------------------------- | -| [Null allowed when not required](#specificRestriction_anyOf_i0) | -| [Concept](#specificRestriction_anyOf_i1) | - -### Property `UseRestriction > specificRestriction > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required - -| **Type** | `null` | -| -------- | ------ | - -### Property `UseRestriction > specificRestriction > anyOf > Concept` - -**Title:** Concept - -inline description of the specific restriction - -| **Type** | More than one type | -| ------------------------- | --------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [restrictionStatus](#restrictionStatus) | - diff --git a/jsonschema/docs/agents.md b/jsonschema/docs/agents.md new file mode 100644 index 00000000..bfbe6bdd --- /dev/null +++ b/jsonschema/docs/agents.md @@ -0,0 +1,467 @@ +# Agents + +Data information classes including Agent, Organization, and Kind, which describe organizations, people, and contact information. + + + +## Class Agent [#](#agent) + +A person, organization, software agent, or other entity involved with a resource + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Agent", + "name": "National Climate Data Center", + "category": [ + "https://example.gov/concepts/federal-agency" + ] +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------- | ------------------------------------------------------------------------------ | ----------------- | --------------------------------------------------- | +| [@id](#agent--@id) | string | Optional | | +| [@type](#agent--@type) | string | Optional | | +| [category](#agent--category) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | The type of the agent that makes the item available | +| [name](#agent--name) | string | Mandatory | The name of the agent | + +## `Agent > @id` [#](#agent--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/agents/data-steward-001" +``` + +## `Agent > @type` [#](#agent--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | --------- | +| **Default** | `"Agent"` | + +## `Agent > category` [#](#agent--category) + +**Requirement:** Optional + +The type of the agent that makes the item available + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `Agent > name` [#](#agent--name) + +**Requirement:** Mandatory + +The name of the agent + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"National Climate Data Center" +``` + +```json +"U.S. Department of Commerce Data Stewardship Office" +``` + +--- + + + +## Class Organization [#](#organization) + +An organization involved with a resource, including parent or child organizations + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +{ + "@type": "Organization", + "name": "National Climate Data Center", + "altLabel": "NCDC" +} +``` + +```json +{ + "@id": "https://example.gov/organizations/census-bureau", + "@type": "Organization", + "name": "U.S. Census Bureau", + "prefLabel": "United States Census Bureau", + "altLabel": "Census Bureau", + "notation": [ + "USCB", + "CB" + ], + "subOrganizationOf": [ + { + "@id": "https://example.gov/organizations/doc", + "@type": "Organization", + "name": "U.S. Department of Commerce" + } + ] +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------------------------- | ----------------------------------------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#organization--@id) | string | Optional | | +| [@type](#organization--@type) | string | Optional | | +| [name](#organization--name) | string | Mandatory | The full name of the Organization | +| [subOrganizationOf](#organization--subOrganizationOf) | null or array of [Organization](./agents.md#organization) classes | Optional | Represents hierarchical containment of Organizations or OrganizationalUnits; indicates an Organization which contains this Organization | +| [altLabel](#organization--altLabel) | null or string | Optional | alternative name (trading name, colloquial name) for an organization | +| [notation](#organization--notation) | null or array of string | Optional | List of abbreviations or codes from code lists for an organization (e.g. DOI, DOD) | +| [prefLabel](#organization--prefLabel) | null or string | Optional | Preferred or legal name of the organization | + +## `Organization > @id` [#](#organization--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/organizations/census-bureau" +``` + +## `Organization > @type` [#](#organization--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ---------------- | +| **Default** | `"Organization"` | + +## `Organization > name` [#](#organization--name) + +**Requirement:** Mandatory + +The full name of the Organization + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"National Climate Data Center" +``` + +```json +"U.S. Census Bureau" +``` + +## `Organization > subOrganizationOf` [#](#organization--subOrganizationOf) + +**Requirement:** Optional + +Represents hierarchical containment of Organizations or OrganizationalUnits; indicates an Organization which contains this Organization + +| **Type** | null or array of [Organization](./agents.md#organization) classes | +| -------- | ----------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ---------------------------------------- | --------------------------------------------------------------------------------- | +| [Organization](./agents.md#organization) | An organization involved with a resource, including parent or child organizations | + +## `Organization > altLabel` [#](#organization--altLabel) + +**Title:** alternative label + +**Requirement:** Optional + +alternative name (trading name, colloquial name) for an organization + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"NCDC" +``` + +```json +"Census Bureau" +``` + +## `Organization > notation` [#](#organization--notation) + +**Requirement:** Optional + +List of abbreviations or codes from code lists for an organization (e.g. DOI, DOD) + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "USCB", + "CB" +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [Abbreviation](#organization--notation_items) | - | + +### Abbreviation [#](#organization--notation_items) + +| **Type** | `string` | +| -------- | -------- | + +## `Organization > prefLabel` [#](#organization--prefLabel) + +**Title:** preferred label + +**Requirement:** Optional + +Preferred or legal name of the organization + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"United States Census Bureau" +``` + +--- + + + +## Class Kind [#](#kind) + +Contact information for an individual or entity + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +{ + "@type": "Kind", + "fn": "Climate Data Support Team", + "hasEmail": "mailto:climate-support@example.gov", + "organization-name": "National Climate Data Center", + "tel": "+1-555-123-4567" +} +``` + +```json +{ + "@type": "Kind", + "fn": "Dr. Jane Smith", + "hasEmail": "mailto:jane.smith@example.gov" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------------------------- | ------------------------------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------- | +| [@id](#kind--@id) | string | Optional | | +| [@type](#kind--@type) | string | Optional | | +| [address](#kind--address) | null or array of [Address](./temporal-spatial-metrics.md#address) classes | Optional | The address of the contact | +| [hasEmail](#kind--hasEmail) | string | Mandatory | Email address for the contact in mailto: format (for example, mailto:support@example.gov) | +| [family-name](#kind--family-name) | null or string | Optional | The family name of the contact | +| [fn](#kind--fn) | string | Mandatory | The formatted text of the name of the contact | +| [given-name](#kind--given-name) | null or string | Optional | The given name of the contact | +| [organization-name](#kind--organization-name) | null or string | Optional | The name of the organization to contact | +| [tel](#kind--tel) | null or string | Optional | The telephone number for the contact | +| [title](#kind--title) | null or string | Optional | The position role of the person to contact | + +## `Kind > @id` [#](#kind--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/contacts/climate-support-001" +``` + +## `Kind > @type` [#](#kind--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | -------- | +| **Default** | `"Kind"` | + +## `Kind > address` [#](#kind--address) + +**Requirement:** Optional + +The address of the contact + +| **Type** | null or array of [Address](./temporal-spatial-metrics.md#address) classes | +| -------- | ------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------ | ------------------------- | +| [Address](./temporal-spatial-metrics.md#address) | A single physical address | + +## `Kind > hasEmail` [#](#kind--hasEmail) + +**Title:** Email + +**Requirement:** Mandatory + +Email address for the contact in mailto: format (for example, mailto:support@example.gov) + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"mailto:climate-support@example.gov" +``` + +```json +"mailto:jane.smith@example.gov" +``` + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^mailto:[\w\_\~\!\$\&\'\(\)\*\+\,\;\=\:.-]+@[\w.-]+\.[\w.-]+?$``` [Test](https://regex101.com/?regex=%5Emailto%3A%5B%5Cw%5C_%5C~%5C%21%5C%24%5C%26%5C%27%5C%28%5C%29%5C%2A%5C%2B%5C%2C%5C%3B%5C%3D%5C%3A.-%5D%2B%40%5B%5Cw.-%5D%2B%5C.%5B%5Cw.-%5D%2B%3F%24&testString=%22mailto%3Aclimate-support%40example.gov%22) | + +## `Kind > family-name` [#](#kind--family-name) + +**Requirement:** Optional + +The family name of the contact + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Smith" +``` + +## `Kind > fn` [#](#kind--fn) + +**Title:** formatted name + +**Requirement:** Mandatory + +The formatted text of the name of the contact + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"Climate Data Support Team" +``` + +```json +"Dr. Jane Smith" +``` + +## `Kind > given-name` [#](#kind--given-name) + +**Requirement:** Optional + +The given name of the contact + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Jane" +``` + +## `Kind > organization-name` [#](#kind--organization-name) + +**Requirement:** Optional + +The name of the organization to contact + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"National Climate Data Center" +``` + +## `Kind > tel` [#](#kind--tel) + +**Title:** telephone + +**Requirement:** Optional + +The telephone number for the contact + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"+1-555-123-4567" +``` + +## `Kind > title` [#](#kind--title) + +**Title:** position title + +**Requirement:** Optional + +The position role of the person to contact + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Senior Climate Data Scientist" +``` diff --git a/jsonschema/docs/catalog.md b/jsonschema/docs/catalog.md new file mode 100644 index 00000000..e92a33f8 --- /dev/null +++ b/jsonschema/docs/catalog.md @@ -0,0 +1,876 @@ + + +The catalog of datasets, services, and other information describing data assets. + +A curated collection of metadata about datasets, data services, or other resources + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Catalog", + "title": "National Climate Data Catalog", + "description": "A comprehensive catalog of climate and weather datasets from federal monitoring stations across the United States.", + "publisher": { + "@type": "Agent", + "name": "National Climate Data Center" + }, + "license": "https://creativecommons.org/publicdomain/zero/1.0/", + "dataset": [ + { + "@type": "Dataset", + "title": "Daily Climate Observations 2024", + "description": "Daily temperature, precipitation, and wind measurements.", + "contactPoint": { + "fn": "Climate Data Support", + "hasEmail": "mailto:climate@example.gov" + }, + "publisher": { + "name": "National Climate Data Center" + }, + "identifier": "https://example.gov/datasets/climate-observations-1" + } + ], + "homepage": { + "@type": "Document", + "title": "National Climate Data Catalog Homepage", + "accessURL": "https://example.gov/climate-data" + }, + "language": [ + "en" + ], + "issued": "2020-01-15", + "modified": "2024-06-01", + "rights": [ + "This catalog is maintained by the National Climate Data Center." + ], + "spatial": [ + { + "@type": "Location", + "prefLabel": "United States" + } + ], + "themeTaxonomy": [ + { + "@type": "ConceptScheme", + "title": "Climate Science Topics" + } + ], + "conformsTo": { + "@type": "Standard", + "title": "DCAT-US 3.0" + } +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#@id) | string | Optional | | +| [@type](#@type) | string | Optional | | +| [catalog](#catalog) | null or array of object | Optional | List of related catalogs that are useful in the context of this catalog | +| [contactPoint](#contactPoint) | null or array of [Kind](./agents.md#kind) classes | Optional | Contact information people can use to ask questions or send feedback about the catalog | +| [dataset](#dataset) | array of [Dataset](./dataset.md#root) classes | Mandatory | List of datasets included in the catalog. Use this together with service so the catalog is not empty. | +| [keyword](#keyword) | null or array of string | Optional | List of keywords or tags describing the catalog | +| [record](#record) | null or array of [CatalogRecord](./quality-governance.md#catalog-record) classes | Optional | A catalog record describing how a single resource (such as a dataset or data service) is registered in the catalog | +| [service](#service) | null or array of [DataService](./quality-governance.md#data-service) classes | Optional | List of data services included in the catalog. Use this together with dataset so the catalog is not empty. | +| [theme](#theme) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of themes or categories for the catalog. A catalog can have more than one theme. | +| [themeTaxonomy](#themeTaxonomy) | null or array of [ConceptScheme](./identifiers-and-relationships.md#concept-scheme) classes | Recommended | Controlled vocabulary or taxonomy used to classify catalog resources, such as datasets and services | +| [accessRights](#accessRights) | More than one type | Optional | Information about whether the catalog is publicly accessible, restricted, or not public | +| [conformsTo](#conformsTo) | More than one type | Recommended | Standard, schema, profile, or model that this catalog follows | +| [creator](#creator) | null or array of [Agent](./agents.md#agent) classes | Optional | Person or organization responsible for creating the catalog metadata | +| [description](#description) | null or string | Optional | Plain-language summary of the catalog | +| [hasPart](#hasPart) | null or array of object | Optional | List of catalogs that are contained within this catalog | +| [identifier](#identifier) | More than one type | Optional | Main unique identifier for the catalog, such as a URI or another persistent identifier | +| [otherIdentifier](#otherIdentifier) | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | Optional | A list of identifiers for the Catalog besides the main identifier, e.g. the URI or other unique identifiers | +| [issued](#issued) | More than one type | Recommended | Date when the catalog was formally issued, such as its initial publication date | +| [language](#language) | More than one type | Recommended | Language codes used for catalog metadata text (such as titles and descriptions), using ISO 639-1 codes like en or es | +| [license](#license) | More than one type | Optional | License that governs how the catalog can be used or reused | +| [modified](#modified) | More than one type | Recommended | Most recent date when the catalog content changed, not just catalog-record metadata | +| [publisher](#publisher) | More than one type | Optional | Person or organization responsible for publishing and making the catalog available | +| [rights](#rights) | null or array of string | Recommended | Rights statements about the catalog that are not already covered by license or accessRights, such as copyright or policy restrictions | +| [rightsHolder](#rightsHolder) | null or array of [Organization](./agents.md#organization) classes | Optional | Organizations that hold rights in the catalog | +| [spatial](#spatial) | null or array of [Location](./temporal-spatial-metrics.md#location) classes | Recommended | Geographic area covered by the catalog | +| [subject](#subject) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of subjects of the catalog | +| [temporal](#temporal) | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | Optional | Time periods covered by the catalog | +| [title](#title) | null or string | Optional | Human-readable title of the catalog | +| [category](#category) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of high-level categories for the catalog | +| [homepage](#homepage) | More than one type | Recommended | Main public web page for the catalog, usually an HTML page | +| [qualifiedAttribution](#qualifiedAttribution) | null or array of [Attribution](./quality-governance.md#attribution) classes | Optional | List of agents with specific responsibilities for the catalog | + +## `DCAT-US 3 Catalog > @id` [#](#@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/catalogs/federal-data-catalog" +``` + +## `DCAT-US 3 Catalog > @type` [#](#@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ----------- | +| **Default** | `"Catalog"` | + +## `DCAT-US 3 Catalog > catalog` [#](#catalog) + +**Title:** Related catalogs + +**Requirement:** Optional + +List of related catalogs that are useful in the context of this catalog + +| **Type** | null or array of object | +| -------- | ----------------------- | + +| Each item of this array must be | Description | +| ----------------------------------- | ---------------------------------------------------------------------------------- | +| [DCAT-US 3 Catalog](#root) | A curated collection of metadata about datasets, data services, or other resources | + +## `DCAT-US 3 Catalog > contactPoint` [#](#contactPoint) + +**Title:** Contact points + +**Requirement:** Optional + +Contact information people can use to ask questions or send feedback about the catalog + +| **Type** | null or array of [Kind](./agents.md#kind) classes | +| -------- | ------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | ----------------------------------------------- | +| [Kind](./agents.md#kind) | Contact information for an individual or entity | + +## `DCAT-US 3 Catalog > dataset` [#](#dataset) + +**Requirement:** Mandatory + +List of datasets included in the catalog. Use this together with service so the catalog is not empty. + +| **Type** | array of [Dataset](./dataset.md#root) classes | +| ------------ | --------------------------------------------- | +| **Required** | Yes | + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------------------------- | +| [Dataset](./dataset.md#root) | A collection of data published or curated by one provider | + +## `DCAT-US 3 Catalog > keyword` [#](#keyword) + +**Title:** keyword/tag + +**Requirement:** Optional + +List of keywords or tags describing the catalog + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "federal data", + "government", + "open data", + "public records" +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [keyword items](#keyword_items) | - | + +### Array Item [#](#keyword_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Min length** | 1 | + +## `DCAT-US 3 Catalog > record` [#](#record) + +**Title:** catalog record + +**Requirement:** Optional + +A catalog record describing how a single resource (such as a dataset or data service) is registered in the catalog + +| **Type** | null or array of [CatalogRecord](./quality-governance.md#catalog-record) classes | +| -------- | -------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------- | ----------------------------------------------------------------------- | +| [CatalogRecord](./quality-governance.md#catalog-record) | A record in a catalog, describing the registration of a single resource | + +## `DCAT-US 3 Catalog > service` [#](#service) + +**Requirement:** Optional + +List of data services included in the catalog. Use this together with dataset so the catalog is not empty. + +| **Type** | null or array of [DataService](./quality-governance.md#data-service) classes | +| -------- | ---------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| --------------------------------------------------- | ------------------------------------------------------------------- | +| [DataService](./quality-governance.md#data-service) | A service that provides access to data or data processing functions | + +## `DCAT-US 3 Catalog > theme` [#](#theme) + +**Title:** theme/category + +**Requirement:** Optional + +List of themes or categories for the catalog. A catalog can have more than one theme. + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `DCAT-US 3 Catalog > themeTaxonomy` [#](#themeTaxonomy) + +**Title:** themes + +**Requirement:** Recommended + +Controlled vocabulary or taxonomy used to classify catalog resources, such as datasets and services + +| **Type** | null or array of [ConceptScheme](./identifiers-and-relationships.md#concept-scheme) classes | +| -------- | ------------------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------ | --------------------------------------------------------------------- | +| [ConceptScheme](./identifiers-and-relationships.md#concept-scheme) | A controlled vocabulary or other list of approved terms for a concept | + +## `DCAT-US 3 Catalog > accessRights` [#](#accessRights) + +**Requirement:** Optional + +Information about whether the catalog is publicly accessible, restricted, or not public + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"Public access with no restrictions" +``` + +| Any of | +| -------------------------------------------------------- | +| [Null allowed when not required](#accessRights_anyOf_i0) | +| [item 1](#accessRights_anyOf_i1) | + +### `DCAT-US 3 Catalog > accessRights > anyOf > Null allowed when not required` [#](#accessRights_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > accessRights > anyOf > item 1` [#](#accessRights_anyOf_i1) + +Text description of the access rights + +| **Type** | `string` | +| -------- | -------- | + +## `DCAT-US 3 Catalog > conformsTo` [#](#conformsTo) + +**Title:** schema version + +**Requirement:** Recommended + +Standard, schema, profile, or model that this catalog follows + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------ | +| [Null allowed when not required](#conformsTo_anyOf_i0) | +| [Standard](#conformsTo_anyOf_i1) | + +### `DCAT-US 3 Catalog > conformsTo > anyOf > Null allowed when not required` [#](#conformsTo_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > conformsTo > anyOf > Standard` [#](#conformsTo_anyOf_i1) + +A standard or specification that another resource conforms to + +| **Type** | `object` | +| ------------------------- | -------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Standard](./quality-governance.md#standard) | + +## `DCAT-US 3 Catalog > creator` [#](#creator) + +**Requirement:** Optional + +Person or organization responsible for creating the catalog metadata + +| **Type** | null or array of [Agent](./agents.md#agent) classes | +| -------- | --------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | -------------------------------------------------------------------------------- | +| [Agent](./agents.md#agent) | A person, organization, software agent, or other entity involved with a resource | + +## `DCAT-US 3 Catalog > description` [#](#description) + +**Requirement:** Optional + +Plain-language summary of the catalog + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"A comprehensive catalog of climate and weather datasets from federal monitoring stations across the United States." +``` + +```json +"A comprehensive catalog of federal government data assets spanning multiple agencies and data domains." +``` + +## `DCAT-US 3 Catalog > hasPart` [#](#hasPart) + +**Requirement:** Optional + +List of catalogs that are contained within this catalog + +| **Type** | null or array of object | +| -------- | ----------------------- | + +| Each item of this array must be | Description | +| ----------------------------------- | ---------------------------------------------------------------------------------- | +| [DCAT-US 3 Catalog](#root) | A curated collection of metadata about datasets, data services, or other resources | + +## `DCAT-US 3 Catalog > identifier` [#](#identifier) + +**Requirement:** Optional + +Main unique identifier for the catalog, such as a URI or another persistent identifier + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------ | +| [Null allowed when not required](#identifier_anyOf_i0) | +| [Identifier](#identifier_anyOf_i1) | + +### `DCAT-US 3 Catalog > identifier > anyOf > Null allowed when not required` [#](#identifier_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > identifier > anyOf > Identifier` [#](#identifier_anyOf_i1) + +inline description of Identifier + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Identifier](./identifiers-and-relationships.md#identifier) | + +## `DCAT-US 3 Catalog > otherIdentifier` [#](#otherIdentifier) + +**Requirement:** Optional + +A list of identifiers for the Catalog besides the main identifier, e.g. the URI or other unique identifiers + +| **Type** | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | +| -------- | ------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [Identifier](./identifiers-and-relationships.md#identifier) | A unique identifier and optionally it's scheme and other relevant information | + +## `DCAT-US 3 Catalog > issued` [#](#issued) + +**Title:** release date + +**Requirement:** Recommended + +Date when the catalog was formally issued, such as its initial publication date + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2020-01-15" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#issued_anyOf_i0) | +| [Date string](#issued_anyOf_i1) | + +### `DCAT-US 3 Catalog > issued > anyOf > Null allowed when not required` [#](#issued_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > issued > anyOf > Date string` [#](#issued_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------- | +| [item 0](#issued_anyOf_i1_anyOf_i0) | +| [item 1](#issued_anyOf_i1_anyOf_i1) | +| [item 2](#issued_anyOf_i1_anyOf_i2) | +| [item 3](#issued_anyOf_i1_anyOf_i3) | + +#### `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 0` [#](#issued_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 1` [#](#issued_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 2` [#](#issued_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `DCAT-US 3 Catalog > issued > anyOf > Date string > anyOf > item 3` [#](#issued_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `DCAT-US 3 Catalog > language` [#](#language) + +**Requirement:** Recommended + +Language codes used for catalog metadata text (such as titles and descriptions), using ISO 639-1 codes like en or es + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +[ + "en" +] +``` + +```json +[ + "en", + "es" +] +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#language_anyOf_i0) | +| [Language code](#language_anyOf_i1) | +| [List of language codes](#language_anyOf_i2) | + +### `DCAT-US 3 Catalog > language > anyOf > Null allowed when not required` [#](#language_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > language > anyOf > Language code` [#](#language_anyOf_i1) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +### `DCAT-US 3 Catalog > language > anyOf > List of language codes` [#](#language_anyOf_i2) + +| **Type** | array of string | +| -------- | --------------- | + +| Each item of this array must be | Description | +| ----------------------------------------- | ----------- | +| [Language code](#language_anyOf_i2_items) | - | + +#### Language code [#](#language_anyOf_i2_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +## `DCAT-US 3 Catalog > license` [#](#license) + +**Requirement:** Optional + +License that governs how the catalog can be used or reused + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"https://creativecommons.org/publicdomain/zero/1.0/" +``` + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#license_anyOf_i0) | +| [item 1](#license_anyOf_i1) | + +### `DCAT-US 3 Catalog > license > anyOf > Null allowed when not required` [#](#license_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > license > anyOf > item 1` [#](#license_anyOf_i1) + +Full text of the license + +| **Type** | `string` | +| -------- | -------- | + +## `DCAT-US 3 Catalog > modified` [#](#modified) + +**Title:** update/modification date + +**Requirement:** Recommended + +Most recent date when the catalog content changed, not just catalog-record metadata + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-06-01" +``` + +```json +"2024-06-01T14:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#modified_anyOf_i0) | +| [Date string](#modified_anyOf_i1) | + +### `DCAT-US 3 Catalog > modified > anyOf > Null allowed when not required` [#](#modified_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > modified > anyOf > Date string` [#](#modified_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------- | +| [item 0](#modified_anyOf_i1_anyOf_i0) | +| [item 1](#modified_anyOf_i1_anyOf_i1) | +| [item 2](#modified_anyOf_i1_anyOf_i2) | +| [item 3](#modified_anyOf_i1_anyOf_i3) | + +#### `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 0` [#](#modified_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 1` [#](#modified_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 2` [#](#modified_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `DCAT-US 3 Catalog > modified > anyOf > Date string > anyOf > item 3` [#](#modified_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `DCAT-US 3 Catalog > publisher` [#](#publisher) + +**Requirement:** Optional + +Person or organization responsible for publishing and making the catalog available + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------------------------- | +| [Null allowed when not required](#publisher_anyOf_i0) | +| [Agent](#publisher_anyOf_i1) | + +### `DCAT-US 3 Catalog > publisher > anyOf > Null allowed when not required` [#](#publisher_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > publisher > anyOf > Agent` [#](#publisher_anyOf_i1) + +inline description of the publisher + +| **Type** | `object` | +| ------------------------- | -------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Agent](./agents.md#agent) | + +## `DCAT-US 3 Catalog > rights` [#](#rights) + +**Requirement:** Recommended + +Rights statements about the catalog that are not already covered by license or accessRights, such as copyright or policy restrictions + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Examples:** + +```json +[ + "This catalog is maintained by the National Climate Data Center." +] +``` + +```json +[ + "This catalog is maintained by the Federal Data Management Office.", + "Data within this catalog may be subject to individual dataset licensing terms." +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ---------------------------------- | +| [rights items](#rights_items) | Full text of a statement of rights | + +### Array Item [#](#rights_items) + +Full text of a statement of rights + +| **Type** | `string` | +| -------- | -------- | + +## `DCAT-US 3 Catalog > rightsHolder` [#](#rightsHolder) + +**Requirement:** Optional + +Organizations that hold rights in the catalog + +| **Type** | null or array of [Organization](./agents.md#organization) classes | +| -------- | ----------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ---------------------------------------- | --------------------------------------------------------------------------------- | +| [Organization](./agents.md#organization) | An organization involved with a resource, including parent or child organizations | + +## `DCAT-US 3 Catalog > spatial` [#](#spatial) + +**Title:** spatial/geographic coverage + +**Requirement:** Recommended + +Geographic area covered by the catalog + +| **Type** | null or array of [Location](./temporal-spatial-metrics.md#location) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | -------------------------------- | +| [Location](./temporal-spatial-metrics.md#location) | A named place or geographic area | + +## `DCAT-US 3 Catalog > subject` [#](#subject) + +**Requirement:** Optional + +List of subjects of the catalog + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `DCAT-US 3 Catalog > temporal` [#](#temporal) + +**Title:** temporal coverage + +**Requirement:** Optional + +Time periods covered by the catalog + +| **Type** | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | +| -------- | ------------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------------ | ---------------------------------------------------------------------- | +| [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) | Information about a specific time period with a start- and/or end-time | + +## `DCAT-US 3 Catalog > title` [#](#title) + +**Requirement:** Optional + +Human-readable title of the catalog + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"National Climate Data Catalog" +``` + +```json +"Federal Data Catalog" +``` + +## `DCAT-US 3 Catalog > category` [#](#category) + +**Requirement:** Optional + +List of high-level categories for the catalog + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `DCAT-US 3 Catalog > homepage` [#](#homepage) + +**Requirement:** Recommended + +Main public web page for the catalog, usually an HTML page + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#homepage_anyOf_i0) | +| [Document](#homepage_anyOf_i1) | + +### `DCAT-US 3 Catalog > homepage > anyOf > Null allowed when not required` [#](#homepage_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DCAT-US 3 Catalog > homepage > anyOf > Document` [#](#homepage_anyOf_i1) + +inline description of the home page + +| **Type** | `object` | +| ------------------------- | -------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Document](./quality-governance.md#document) | + +## `DCAT-US 3 Catalog > qualifiedAttribution` [#](#qualifiedAttribution) + +**Requirement:** Optional + +List of agents with specific responsibilities for the catalog + +| **Type** | null or array of [Attribution](./quality-governance.md#attribution) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | ------------------------------------------------- | +| [Attribution](./quality-governance.md#attribution) | A responsibility that an agent has for a resource | diff --git a/jsonschema/docs/constraints-and-restrictions.md b/jsonschema/docs/constraints-and-restrictions.md new file mode 100644 index 00000000..b89866f9 --- /dev/null +++ b/jsonschema/docs/constraints-and-restrictions.md @@ -0,0 +1,378 @@ +# Constraints and Restrictions + +Restriction classes describing access limits, controlled unclassified information, and rules on how a resource may be used. + + + +## Class AccessRestriction [#](#access-restriction) + +Rules or indicators that describe who can access a resource + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "AccessRestriction", + "restrictionStatus": "Restricted - Fully", + "specificRestriction": "PRMPA - National Security Classified (B)", + "restrictionNote": "Access restricted to authorized personnel only." +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------------------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#access-restriction--@id) | string | Optional | | +| [@type](#access-restriction--@type) | string | Optional | | +| [restrictionNote](#access-restriction--restrictionNote) | null or string | Optional | A note related to the access restriction | +| [restrictionStatus](#access-restriction--restrictionStatus) | object | Mandatory | The indication of whether or not there are access restrictions on the item, consider using a controlled vocabulary such as https://www.archives.gov/research/catalog/lcdrg/authority-lists/access-restriction-status | +| [specificRestriction](#access-restriction--specificRestriction) | More than one type | Recommended | Authority, code list entry, or policy reference that defines the specific access restriction; consider using a controlled vocabulary such as the NARA https://www.archives.gov/research/catalog/lcdrg/authority-lists/specific-access-restriction | + +## `AccessRestriction > @id` [#](#access-restriction--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `AccessRestriction > @type` [#](#access-restriction--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | --------------------- | +| **Default** | `"AccessRestriction"` | + +## `AccessRestriction > restrictionNote` [#](#access-restriction--restrictionNote) + +**Requirement:** Optional + +A note related to the access restriction + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Access restricted to authorized personnel only." +``` + +## `AccessRestriction > restrictionStatus` [#](#access-restriction--restrictionStatus) + +**Requirement:** Mandatory + +The indication of whether or not there are access restrictions on the item, consider using a controlled vocabulary such as https://www.archives.gov/research/catalog/lcdrg/authority-lists/access-restriction-status + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | +| **Defined in** | [Concept](./identifiers-and-relationships.md#concept) | + +**Examples:** + +```json +"Restricted - Fully" +``` + +```json +"Unrestricted" +``` + +## `AccessRestriction > specificRestriction` [#](#access-restriction--specificRestriction) + +**Requirement:** Recommended + +Authority, code list entry, or policy reference that defines the specific access restriction; consider using a controlled vocabulary such as the NARA https://www.archives.gov/research/catalog/lcdrg/authority-lists/specific-access-restriction + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"CRCCRCA 4(1)(A)" +``` + +```json +"PRMPA - National Security Classified (B)" +``` + +| Any of | +| --------------------------------------------------------------- | +| [Null allowed when not required](#access-restriction--specificRestriction_anyOf_i0) | +| [Concept](#access-restriction--specificRestriction_anyOf_i1) | + +### `AccessRestriction > specificRestriction > anyOf > Null allowed when not required` [#](#access-restriction--specificRestriction_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `AccessRestriction > specificRestriction > anyOf > Concept` [#](#access-restriction--specificRestriction_anyOf_i1) + +inline description of the specific restriction + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Concept](./identifiers-and-relationships.md#concept) | + +--- + + + +## Class CUIRestriction [#](#cui-restriction) + +Information describing Controlled Unclassified Information (CUI) restrictions for a resource + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "CUIRestriction", + "cuiBannerMarking": "CUI//SP-CTI", + "designationIndicator": "Controlled by: Agency XYZ" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------------------------------------------------- | ----------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#cui-restriction--@id) | string | Optional | | +| [@type](#cui-restriction--@type) | string | Optional | | +| [cuiBannerMarking](#cui-restriction--cuiBannerMarking) | string | Mandatory | CUI (Controlled Unclassified Information) banner marking is required for any unclassified information that is deemed sensitive and requires protection; see information at https://www.archives.gov/cui/registry/category-marking-list | +| [designationIndicator](#cui-restriction--designationIndicator) | string | Mandatory | Agency that designated the information as CUI; include at least "Controlled by:" and, when possible, contact information | +| [requiredIndicatorPerAuthority](#cui-restriction--requiredIndicatorPerAuthority) | null or array of string | Optional | List of free-text required indicators from the applicable authority (for example, category descriptions or distribution statements) | + +## `CUIRestriction > @id` [#](#cui-restriction--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/cui-restrictions/dataset-001" +``` + +## `CUIRestriction > @type` [#](#cui-restriction--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ------------------ | +| **Default** | `"CUIRestriction"` | + +## `CUIRestriction > cuiBannerMarking` [#](#cui-restriction--cuiBannerMarking) + +**Requirement:** Mandatory + +CUI (Controlled Unclassified Information) banner marking is required for any unclassified information that is deemed sensitive and requires protection; see information at https://www.archives.gov/cui/registry/category-marking-list + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"CUI//SP-CTI" +``` + +```json +"CUI//SP-PRVCY//SP-LEGAL" +``` + +## `CUIRestriction > designationIndicator` [#](#cui-restriction--designationIndicator) + +**Title:** CUI designation indicator + +**Requirement:** Mandatory + +Agency that designated the information as CUI; include at least "Controlled by:" and, when possible, contact information + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"Controlled by: Agency XYZ" +``` + +```json +"Controlled by: DOC; POC: Jane Smith, mailto:jane.smith@example.gov, XXX-XXX-XXXX" +``` + +## `CUIRestriction > requiredIndicatorPerAuthority` [#](#cui-restriction--requiredIndicatorPerAuthority) + +**Requirement:** Optional + +List of free-text required indicators from the applicable authority (for example, category descriptions or distribution statements) + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "Privacy Act of 1974", + "Federal Records Act" +] +``` + +| Each item of this array must be | Description | +| -------------------------------------------------------- | ----------- | +| [Indicator string](#cui-restriction--requiredIndicatorPerAuthority_items) | - | + +### Indicator string [#](#cui-restriction--requiredIndicatorPerAuthority_items) + +| **Type** | `string` | +| -------- | -------- | + +--- + + + +## Class UseRestriction [#](#use-restriction) + +Rules or legal limits on how a resource may be used + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "UseRestriction", + "restrictionStatus": "Restricted - Fully", + "specificRestriction": "Trademark", + "restrictionNote": "This data may be used for any purpose without restriction." +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------------------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#use-restriction--@id) | string | Optional | | +| [@type](#use-restriction--@type) | string | Optional | | +| [restrictionNote](#use-restriction--restrictionNote) | null or string | Optional | Significant information pertaining to the use or reproduction of the data | +| [restrictionStatus](#use-restriction--restrictionStatus) | object | Mandatory | Indication of whether or not there are use restrictions on the archival materials, consider using a controlled vocabulary such as https://www.archives.gov/research/catalog/lcdrg/authority-lists/use-restriction-status | +| [specificRestriction](#use-restriction--specificRestriction) | More than one type | Recommended | Authority, code list entry, or policy reference that defines the specific use restriction; consider using a controlled vocabulary such as the NARA https://www.archives.gov/research/catalog/lcdrg/authority-lists/specific-use-restriction | + +## `UseRestriction > @id` [#](#use-restriction--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/restrictions/use-restriction-001" +``` + +## `UseRestriction > @type` [#](#use-restriction--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ------------------ | +| **Default** | `"UseRestriction"` | + +## `UseRestriction > restrictionNote` [#](#use-restriction--restrictionNote) + +**Requirement:** Optional + +Significant information pertaining to the use or reproduction of the data + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"This data may be used for any purpose without restriction." +``` + +```json +"This data may be used for research purposes. Commercial use requires written permission from the data steward." +``` + +## `UseRestriction > restrictionStatus` [#](#use-restriction--restrictionStatus) + +**Requirement:** Mandatory + +Indication of whether or not there are use restrictions on the archival materials, consider using a controlled vocabulary such as https://www.archives.gov/research/catalog/lcdrg/authority-lists/use-restriction-status + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | +| **Defined in** | [Concept](./identifiers-and-relationships.md#concept) | + +**Examples:** + +```json +"Restricted - Fully" +``` + +```json +"Unrestricted" +``` + +## `UseRestriction > specificRestriction` [#](#use-restriction--specificRestriction) + +**Requirement:** Recommended + +Authority, code list entry, or policy reference that defines the specific use restriction; consider using a controlled vocabulary such as the NARA https://www.archives.gov/research/catalog/lcdrg/authority-lists/specific-use-restriction + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"Copyright" +``` + +```json +"Trademark" +``` + +| Any of | +| --------------------------------------------------------------- | +| [Null allowed when not required](#use-restriction--specificRestriction_anyOf_i0) | +| [Concept](#use-restriction--specificRestriction_anyOf_i1) | + +### `UseRestriction > specificRestriction > anyOf > Null allowed when not required` [#](#use-restriction--specificRestriction_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `UseRestriction > specificRestriction > anyOf > Concept` [#](#use-restriction--specificRestriction_anyOf_i1) + +inline description of the specific restriction + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Concept](./identifiers-and-relationships.md#concept) | diff --git a/jsonschema/docs/DatasetSeries.md b/jsonschema/docs/dataset-series.md similarity index 50% rename from jsonschema/docs/DatasetSeries.md rename to jsonschema/docs/dataset-series.md index 00876ddd..c4e3dd2c 100644 --- a/jsonschema/docs/DatasetSeries.md +++ b/jsonschema/docs/dataset-series.md @@ -1,6 +1,6 @@ + - -**Title:** DatasetSeries +Information about a dataset series, including its members, ordering, coverage, and publishing details. A group of related datasets that are published separately @@ -141,24 +141,24 @@ A group of related datasets that are published separately } ``` -| Property | Type | Title/Description | -| -------------------------------------------- | ------------------ | --------------------------- | -| - [@id](#@id ) | string | - | -| - [@type](#@type ) | string | - | -| - [contactPoint](#contactPoint ) | null or array | contact point | -| - [first](#first ) | More than one type | first | -| - [last](#last ) | More than one type | last | -| - [seriesMember](#seriesMember ) | null or array | series member | -| - [accrualPeriodicity](#accrualPeriodicity ) | More than one type | frequency | -| + [description](#description ) | string | description | -| - [issued](#issued ) | More than one type | release date | -| - [modified](#modified ) | More than one type | update/modification date | -| - [publisher](#publisher ) | More than one type | publisher | -| - [spatial](#spatial ) | null or array | spatial/geographic coverage | -| - [temporal](#temporal ) | null or array | temporal coverage | -| + [title](#title ) | string | title | - -## [Optional] Property `DatasetSeries > @id` +| Property | Type | Requirement Level | Title/Description | +| ------------------------------------------ | ------------------------------------------------------------------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#@id) | string | Optional | | +| [@type](#@type) | string | Optional | | +| [contactPoint](#contactPoint) | null or array of [Kind](./agents.md#kind) classes | Recommended | List of contacts people can use to ask questions or send feedback about the dataset series | +| [first](#first) | More than one type | Recommended | The first dataset in an ordered dataset series | +| [last](#last) | More than one type | Recommended | The last dataset in an ordered dataset series | +| [seriesMember](#seriesMember) | null or array of [Dataset](./dataset.md#root) classes | Recommended | List of members of the Dataset Series | +| [accrualPeriodicity](#accrualPeriodicity) | More than one type | Optional | The frequency at which the Dataset Series is updated. This is the series update frequency, not necessarily each dataset's frequency | +| [description](#description) | string | Mandatory | Plain-language summary of the dataset series | +| [issued](#issued) | More than one type | Optional | Date when the Dataset Series was formally established or published, not the release date of the oldest dataset in the series | +| [modified](#modified) | More than one type | Recommended | Most recent date when the Dataset Series changed, not the modified date of the newest dataset in the series | +| [publisher](#publisher) | More than one type | Recommended | Organization responsible for maintaining the Dataset Series as a coherent series; this may differ from publishers of individual datasets | +| [spatial](#spatial) | null or array of [Location](./temporal-spatial-metrics.md#location) classes | Recommended | A geographic region that is covered by the Dataset Series | +| [temporal](#temporal) | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | Recommended | Time periods covered by the dataset series | +| [title](#title) | string | Mandatory | Human-readable title of the dataset series | + +## `DatasetSeries > @id` [#](#@id) **Requirement:** Optional @@ -172,7 +172,7 @@ A group of related datasets that are published separately "https://example.gov/series/annual-climate-observations" ``` -## [Optional] Property `DatasetSeries > @type` +## `DatasetSeries > @type` [#](#@type) **Requirement:** Optional @@ -180,129 +180,97 @@ A group of related datasets that are published separately | ----------- | ----------------- | | **Default** | `"DatasetSeries"` | -## [Optional] Property `DatasetSeries > contactPoint` - -**Title:** contact point +## `DatasetSeries > contactPoint` [#](#contactPoint) -**Requirement:** Optional +**Requirement:** Recommended List of contacts people can use to ask questions or send feedback about the dataset series -| **Type** | `null or array` | -| -------- | --------------- | +| **Type** | null or array of [Kind](./agents.md#kind) classes | +| -------- | ------------------------------------------------- | | Each item of this array must be | Description | | ------------------------------- | ----------------------------------------------- | -| [Kind](#contactPoint_items) | Contact information for an individual or entity | - -### DatasetSeries > contactPoint > Kind - -**Title:** Kind +| [Kind](./agents.md#kind) | Contact information for an individual or entity | -Contact information for an individual or entity +## `DatasetSeries > first` [#](#first) -| **Type** | `object` | -| ------------------------- | ----------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Kind](./Kind.md) | - -## [Optional] Property `DatasetSeries > first` - -**Title:** first - -**Requirement:** Optional +**Requirement:** Recommended The first dataset in an ordered dataset series -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | -| Any of(Option) | +| Any of | | ------------------------------------------------- | | [Null allowed when not required](#first_anyOf_i0) | | [Dataset](#first_anyOf_i1) | -### Property `DatasetSeries > first > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required +### `DatasetSeries > first > anyOf > Null allowed when not required` [#](#first_anyOf_i0) | **Type** | `null` | | -------- | ------ | -### Property `DatasetSeries > first > anyOf > Dataset` - -**Title:** Dataset +### `DatasetSeries > first > anyOf > Dataset` [#](#first_anyOf_i1) inline description of the first dataset -| **Type** | `object` | -| ------------------------- | ----------------------- | -| **Additional properties** | Any type allowed | -| **Defined in** | [Dataset](./Dataset.md) | +| **Type** | `object` | +| ------------------------- | ---------------------------- | +| **Additional properties** | Any type allowed | +| **Defined in** | [Dataset](./dataset.md#root) | -## [Optional] Property `DatasetSeries > last` +--- +**See Also:** (related supporting classes) -**Title:** last +## `DatasetSeries > last` [#](#last) -**Requirement:** Optional +**Requirement:** Recommended The last dataset in an ordered dataset series -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | -| Any of(Option) | +| Any of | | ------------------------------------------------ | | [Null allowed when not required](#last_anyOf_i0) | | [Dataset](#last_anyOf_i1) | -### Property `DatasetSeries > last > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required +### `DatasetSeries > last > anyOf > Null allowed when not required` [#](#last_anyOf_i0) | **Type** | `null` | | -------- | ------ | -### Property `DatasetSeries > last > anyOf > Dataset` - -**Title:** Dataset +### `DatasetSeries > last > anyOf > Dataset` [#](#last_anyOf_i1) inline description of the last dataset -| **Type** | `object` | -| ------------------------- | -------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#first_anyOf_i1) | +| **Type** | `object` | +| ------------------------- | ---------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Dataset](./dataset.md#root) | -## [Optional] Property `DatasetSeries > seriesMember` +--- +**See Also:** (related supporting classes) -**Title:** series member +## `DatasetSeries > seriesMember` [#](#seriesMember) -**Requirement:** Optional +**Requirement:** Recommended List of members of the Dataset Series -| **Type** | `null or array` | -| -------- | --------------- | +| **Type** | null or array of [Dataset](./dataset.md#root) classes | +| -------- | ----------------------------------------------------- | | Each item of this array must be | Description | | ------------------------------- | --------------------------------------------------------- | -| [Dataset](#seriesMember_items) | A collection of data published or curated by one provider | - -### DatasetSeries > seriesMember > Dataset +| [Dataset](./dataset.md#root) | A collection of data published or curated by one provider | -**Title:** Dataset - -A collection of data published or curated by one provider - -| **Type** | `object` | -| ------------------------- | -------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Dataset](#first_anyOf_i1) | - -## [Optional] Property `DatasetSeries > accrualPeriodicity` +## `DatasetSeries > accrualPeriodicity` [#](#accrualPeriodicity) **Title:** frequency @@ -310,9 +278,9 @@ A collection of data published or curated by one provider The frequency at which the Dataset Series is updated. This is the series update frequency, not necessarily each dataset's frequency -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | **Example:** @@ -320,21 +288,19 @@ The frequency at which the Dataset Series is updated. This is the series update "annually" ``` -| Any of(Option) | +| Any of | | -------------------------------------------------------------- | | [Null allowed when not required](#accrualPeriodicity_anyOf_i0) | | [item 1](#accrualPeriodicity_anyOf_i1) | | [item 2](#accrualPeriodicity_anyOf_i2) | | [item 3](#accrualPeriodicity_anyOf_i3) | -### Property `DatasetSeries > accrualPeriodicity > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required +### `DatasetSeries > accrualPeriodicity > anyOf > Null allowed when not required` [#](#accrualPeriodicity_anyOf_i0) | **Type** | `null` | | -------- | ------ | -### Property `DatasetSeries > accrualPeriodicity > anyOf > item 1` +### `DatasetSeries > accrualPeriodicity > anyOf > item 1` [#](#accrualPeriodicity_anyOf_i1) ISO 19115 Maintenance Frequency code @@ -355,7 +321,7 @@ Must be one of: * "notPlanned" * "unknown" -### Property `DatasetSeries > accrualPeriodicity > anyOf > item 2` +### `DatasetSeries > accrualPeriodicity > anyOf > item 2` [#](#accrualPeriodicity_anyOf_i2) ISO-8601 Maintenance Frequency code for recurring values, see https://www.iso.org/standard/70907.html @@ -366,7 +332,7 @@ ISO-8601 Maintenance Frequency code for recurring values, see https://www.iso.or | --------------------------------- | ----------------------------------------------------------------- | | **Must match regular expression** | ```^R/P.+$``` [Test](https://regex101.com/?regex=%5ER%2FP.%2B%24) | -### Property `DatasetSeries > accrualPeriodicity > anyOf > item 3` +### `DatasetSeries > accrualPeriodicity > anyOf > item 3` [#](#accrualPeriodicity_anyOf_i3) Dublin Core Collection Frequency Vocabulary, see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/#vocabulary-terms @@ -392,11 +358,9 @@ Must be one of: * "semiweekly" * "threeTimesAWeek" -## [Optional] Property `DatasetSeries > description` - -**Title:** description +## `DatasetSeries > description` [#](#description) -**Requirement:** Optional +**Requirement:** Mandatory Plain-language summary of the dataset series @@ -410,7 +374,7 @@ Plain-language summary of the dataset series "An annual series of comprehensive climate observation datasets collected from monitoring stations across the United States. Each dataset in the series covers one calendar year of daily observations." ``` -## [Optional] Property `DatasetSeries > issued` +## `DatasetSeries > issued` [#](#issued) **Title:** release date @@ -418,9 +382,9 @@ Plain-language summary of the dataset series Date when the Dataset Series was formally established or published, not the release date of the oldest dataset in the series -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | **Examples:** @@ -440,46 +404,42 @@ Date when the Dataset Series was formally established or published, not the rele "2024-01" ``` -| Any of(Option) | +| Any of | | -------------------------------------------------- | | [Null allowed when not required](#issued_anyOf_i0) | | [Date string](#issued_anyOf_i1) | -### Property `DatasetSeries > issued > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required +### `DatasetSeries > issued > anyOf > Null allowed when not required` [#](#issued_anyOf_i0) | **Type** | `null` | | -------- | ------ | -### Property `DatasetSeries > issued > anyOf > Date string` - -**Title:** Date string +### `DatasetSeries > issued > anyOf > Date string` [#](#issued_anyOf_i1) -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | -| Any of(Option) | +| Any of | | ----------------------------------- | | [item 0](#issued_anyOf_i1_anyOf_i0) | | [item 1](#issued_anyOf_i1_anyOf_i1) | | [item 2](#issued_anyOf_i1_anyOf_i2) | | [item 3](#issued_anyOf_i1_anyOf_i3) | -#### Property `DatasetSeries > issued > anyOf > Date string > anyOf > item 0` +#### `DatasetSeries > issued > anyOf > Date string > anyOf > item 0` [#](#issued_anyOf_i1_anyOf_i0) | **Type** | `string` | | ---------- | ----------- | | **Format** | `date-time` | -#### Property `DatasetSeries > issued > anyOf > Date string > anyOf > item 1` +#### `DatasetSeries > issued > anyOf > Date string > anyOf > item 1` [#](#issued_anyOf_i1_anyOf_i1) | **Type** | `string` | | ---------- | -------- | | **Format** | `date` | -#### Property `DatasetSeries > issued > anyOf > Date string > anyOf > item 2` +#### `DatasetSeries > issued > anyOf > Date string > anyOf > item 2` [#](#issued_anyOf_i1_anyOf_i2) A year in YYYY format @@ -490,7 +450,7 @@ A year in YYYY format | --------------------------------- | --------------------------------------------------------------------------- | | **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | -#### Property `DatasetSeries > issued > anyOf > Date string > anyOf > item 3` +#### `DatasetSeries > issued > anyOf > Date string > anyOf > item 3` [#](#issued_anyOf_i1_anyOf_i3) A year and month in YYYY-MM format @@ -501,17 +461,17 @@ A year and month in YYYY-MM format | --------------------------------- | ----------------------------------------------------------------------------------------------------- | | **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | -## [Optional] Property `DatasetSeries > modified` +## `DatasetSeries > modified` [#](#modified) **Title:** update/modification date -**Requirement:** Optional +**Requirement:** Recommended Most recent date when the Dataset Series changed, not the modified date of the newest dataset in the series -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | **Examples:** @@ -535,46 +495,42 @@ Most recent date when the Dataset Series changed, not the modified date of the n "2024-01" ``` -| Any of(Option) | +| Any of | | ---------------------------------------------------- | | [Null allowed when not required](#modified_anyOf_i0) | | [Date string](#modified_anyOf_i1) | -### Property `DatasetSeries > modified > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required +### `DatasetSeries > modified > anyOf > Null allowed when not required` [#](#modified_anyOf_i0) | **Type** | `null` | | -------- | ------ | -### Property `DatasetSeries > modified > anyOf > Date string` +### `DatasetSeries > modified > anyOf > Date string` [#](#modified_anyOf_i1) -**Title:** Date string - -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | -| Any of(Option) | +| Any of | | ------------------------------------- | | [item 0](#modified_anyOf_i1_anyOf_i0) | | [item 1](#modified_anyOf_i1_anyOf_i1) | | [item 2](#modified_anyOf_i1_anyOf_i2) | | [item 3](#modified_anyOf_i1_anyOf_i3) | -#### Property `DatasetSeries > modified > anyOf > Date string > anyOf > item 0` +#### `DatasetSeries > modified > anyOf > Date string > anyOf > item 0` [#](#modified_anyOf_i1_anyOf_i0) | **Type** | `string` | | ---------- | ----------- | | **Format** | `date-time` | -#### Property `DatasetSeries > modified > anyOf > Date string > anyOf > item 1` +#### `DatasetSeries > modified > anyOf > Date string > anyOf > item 1` [#](#modified_anyOf_i1_anyOf_i1) | **Type** | `string` | | ---------- | -------- | | **Format** | `date` | -#### Property `DatasetSeries > modified > anyOf > Date string > anyOf > item 2` +#### `DatasetSeries > modified > anyOf > Date string > anyOf > item 2` [#](#modified_anyOf_i1_anyOf_i2) A year in YYYY format @@ -585,7 +541,7 @@ A year in YYYY format | --------------------------------- | --------------------------------------------------------------------------- | | **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | -#### Property `DatasetSeries > modified > anyOf > Date string > anyOf > item 3` +#### `DatasetSeries > modified > anyOf > Date string > anyOf > item 3` [#](#modified_anyOf_i1_anyOf_i3) A year and month in YYYY-MM format @@ -596,98 +552,68 @@ A year and month in YYYY-MM format | --------------------------------- | ----------------------------------------------------------------------------------------------------- | | **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | -## [Optional] Property `DatasetSeries > publisher` - -**Title:** publisher +## `DatasetSeries > publisher` [#](#publisher) -**Requirement:** Optional +**Requirement:** Recommended Organization responsible for maintaining the Dataset Series as a coherent series; this may differ from publishers of individual datasets -| **Type** | More than one type | -| ------------------------- | ------------------ | -| **Additional properties** | Any type allowed | +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | -| Any of(Option) | +| Any of | | ----------------------------------------------------- | | [Null allowed when not required](#publisher_anyOf_i0) | | [Agent](#publisher_anyOf_i1) | -### Property `DatasetSeries > publisher > anyOf > Null allowed when not required` - -**Title:** Null allowed when not required +### `DatasetSeries > publisher > anyOf > Null allowed when not required` [#](#publisher_anyOf_i0) | **Type** | `null` | | -------- | ------ | -### Property `DatasetSeries > publisher > anyOf > Agent` - -**Title:** Agent +### `DatasetSeries > publisher > anyOf > Agent` [#](#publisher_anyOf_i1) inline description of publisher -| **Type** | `object` | -| ------------------------- | ----------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Agent](#first_anyOf_i1_sample_items_accessService_items_creator_items) | +| **Type** | `object` | +| ------------------------- | -------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Agent](./agents.md#agent) | -## [Optional] Property `DatasetSeries > spatial` +## `DatasetSeries > spatial` [#](#spatial) **Title:** spatial/geographic coverage -**Requirement:** Optional +**Requirement:** Recommended A geographic region that is covered by the Dataset Series -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | -------------------------------- | -| [Location](#spatial_items) | A named place or geographic area | - -### DatasetSeries > spatial > Location - -**Title:** Location - -A named place or geographic area +| **Type** | null or array of [Location](./temporal-spatial-metrics.md#location) classes | +| -------- | --------------------------------------------------------------------------- | -| **Type** | `object` | -| ------------------------- | -------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [Location](#first_anyOf_i1_sample_items_accessService_items_spatial_items) | +| Each item of this array must be | Description | +| -------------------------------------------------- | -------------------------------- | +| [Location](./temporal-spatial-metrics.md#location) | A named place or geographic area | -## [Optional] Property `DatasetSeries > temporal` +## `DatasetSeries > temporal` [#](#temporal) **Title:** temporal coverage -**Requirement:** Optional +**Requirement:** Recommended Time periods covered by the dataset series -| **Type** | `null or array` | -| -------- | --------------- | - -| Each item of this array must be | Description | -| ------------------------------- | ---------------------------------------------------------------------- | -| [PeriodOfTime](#temporal_items) | Information about a specific time period with a start- and/or end-time | - -### DatasetSeries > temporal > PeriodOfTime - -**Title:** PeriodOfTime +| **Type** | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | +| -------- | ------------------------------------------------------------------------------------- | -Information about a specific time period with a start- and/or end-time +| Each item of this array must be | Description | +| ------------------------------------------------------------ | ---------------------------------------------------------------------- | +| [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) | Information about a specific time period with a start- and/or end-time | -| **Type** | More than one type | -| ------------------------- | ------------------------------------------------------------------------------- | -| **Additional properties** | Any type allowed | -| **Same definition as** | [PeriodOfTime](#first_anyOf_i1_sample_items_accessService_items_temporal_items) | +## `DatasetSeries > title` [#](#title) -## [Optional] Property `DatasetSeries > title` - -**Title:** title - -**Requirement:** Optional +**Requirement:** Mandatory Human-readable title of the dataset series @@ -704,4 +630,3 @@ Human-readable title of the dataset series ```json "Annual National Climate Observations Series" ``` - diff --git a/jsonschema/docs/dataset.md b/jsonschema/docs/dataset.md new file mode 100644 index 00000000..31fd2072 --- /dev/null +++ b/jsonschema/docs/dataset.md @@ -0,0 +1,1676 @@ + + +Information about a dataset, including identifiers, contacts, coverage, distributions, and related resources. + +A collection of data published or curated by one provider + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Dataset", + "title": "Daily Climate Observations 2024", + "description": "Daily temperature, precipitation, and wind measurements from monitoring stations across the United States.", + "identifier": "https://example.gov/datasets/climate-observations-2024", + "contactPoint": { + "fn": "Climate Data Support", + "hasEmail": "mailto:climate@example.gov" + }, + "publisher": { + "name": "National Climate Data Center" + }, + "keyword": [ + "climate", + "weather", + "temperature", + "precipitation" + ], + "issued": "2024-01-15", + "modified": "2024-06-01", + "accrualPeriodicity": "daily", + "accessRights": "public", + "landingPage": { + "@id": "https://example.gov/climate-data", + "@type": "Document", + "title": "Climate Data Landing Page" + }, + "describedBy": { + "@id": "https://example.gov/climate-data/data-dictionary", + "@type": "Distribution", + "title": "Data Dictionary", + "mediaType": "application/pdf" + }, + "spatial": { + "@type": "Location", + "bbox": { + "type": "Polygon", + "coordinates": [ + [ + [ + -125.0, + 24.0 + ], + [ + -66.0, + 24.0 + ], + [ + -66.0, + 50.0 + ], + [ + -125.0, + 50.0 + ], + [ + -125.0, + 24.0 + ] + ] + ] + } + }, + "theme": [ + "Climate Science" + ], + "distribution": [ + { + "title": "Climate Data CSV", + "downloadURL": "https://example.gov/downloads/climate-2024.csv", + "mediaType": "text/csv" + } + ], + "rights": [ + "Data is provided as-is without warranty. Please cite the National Climate Data Center when using this data." + ], + "temporal": [ + { + "@type": "PeriodOfTime", + "startDate": "2024-01-01", + "endDate": "2024-12-31" + } + ] +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#@id) | string | Optional | | +| [@type](#@type) | string | Optional | | +| [otherIdentifier](#otherIdentifier) | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | Optional | Additional identifiers for the dataset besides the main identifier, such as a DOI or other persistent ID | +| [sample](#sample) | null or array of [Distribution](./distribution.md#root) classes | Optional | List of sample distributions for the dataset | +| [status](#status) | More than one type | Optional | Lifecycle status of the dataset, such as completed, deprecated, under development, or withdrawn | +| [supportedSchema](#supportedSchema) | More than one type | Optional | supported schema for this dataset | +| [versionNotes](#versionNotes) | null or string | Optional | Notes describing how this version differs from earlier versions of the dataset | +| [contactPoint](#contactPoint) | More than one type | Mandatory | A contact point for questions about the Dataset (single contact or list). Include an email address that is continuously monitored | +| [distribution](#distribution) | null or array of [Distribution](./distribution.md#root) classes | Recommended | List of available distributions for the dataset. This can be omitted when no distribution is available yet. | +| [first](#first) | More than one type | Optional | the first item of the sequence the dataset belongs to | +| [hasCurrentVersion](#hasCurrentVersion) | More than one type | Optional | reference to the current (latest) version of a dataset | +| [hasVersion](#hasVersion) | null or array of [Dataset](./dataset.md#root) classes | Optional | List of related Datasets that are a version, edition, or adaptation of the described Dataset | +| [inSeries](#inSeries) | null or array of [DatasetSeries](./dataset-series.md#root) classes | Optional | Dataset series this dataset belongs to | +| [keyword](#keyword) | null or array of string | Recommended | List of keywords or tags describing the dataset | +| [landingPage](#landingPage) | More than one type | Recommended | A web page from the original data provider that gives access to the Dataset, its Distributions, and related information | +| [previousVersion](#previousVersion) | More than one type | Optional | reference to the previous dataset version | +| [qualifiedRelation](#qualifiedRelation) | null or array of [Relationship](./identifiers-and-relationships.md#relationship) classes | Optional | Detailed relationship between the dataset and another resource, including the role of that relationship | +| [spatialResolutionInMeters](#spatialResolutionInMeters) | null or string | Optional | Smallest spatial distance between data points, in meters, represented as a single value | +| [temporalResolution](#temporalResolution) | null or string | Optional | Smallest time interval between data points, using xsd:duration format (for example, P1D) | +| [theme](#theme) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Recommended | List of themes or categories for the dataset | +| [version](#version) | null or string | Optional | The version indicator (name or identifier) of a resource | +| [describedBy](#describedBy) | More than one type | Recommended | A distribution describing the Data Dictionary for this dataset | +| [liabilityStatement](#liabilityStatement) | More than one type | Optional | A liability statement about the dataset that may clarify limitations of responsibility, qualifications on the accuracy, reliability, and completeness of the data, or absence of endorsement by the data publisher or provider, among other considerations | +| [metadataDistribution](#metadataDistribution) | null or array of [Distribution](./distribution.md#root) classes | Optional | Distribution of the original metadata document this dataset was derived from | +| [purpose](#purpose) | null or string | Optional | The purpose of the dataset | +| [accessRights](#accessRights) | More than one type | Optional | Information about whether the dataset is publicly accessible, restricted, or not public | +| [accrualPeriodicity](#accrualPeriodicity) | More than one type | Optional | The frequency at which the Dataset is updated | +| [conformsTo](#conformsTo) | null or array of [Standard](./quality-governance.md#standard) classes | Optional | List of standards, schemas, or profiles the dataset follows | +| [contributor](#contributor) | null or array of [Agent](./agents.md#agent) classes | Optional | List of agents contributing to the Dataset | +| [created](#created) | More than one type | Optional | The date on which the Dataset was first created | +| [creator](#creator) | More than one type | Optional | Person or organization responsible for creating the dataset | +| [description](#description) | string | Mandatory | Plain-language summary of the dataset | +| [hasPart](#hasPart) | null or array of [Dataset](./dataset.md#root) classes | Optional | List of related datasets that are part of the described dataset | +| [identifier](#identifier) | More than one type | Mandatory | The unique identifier for the Dataset, e.g. the URI or other unique identifier in the context of the Catalog | +| [isReferencedBy](#isReferencedBy) | null or array of string | Optional | List of links to related resources, such as publications, that reference, cite, or otherwise point to the Dataset | +| [issued](#issued) | More than one type | Optional | Date when the dataset was first published. If the exact publication date is unknown, use the date it was first referenced in the catalog. | +| [language](#language) | More than one type | Optional | ISO 639-1 language code values used in the dataset text or metadata, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html | +| [modified](#modified) | More than one type | Recommended | Most recent date when the dataset's actual data changed, not just metadata | +| [provenance](#provenance) | null or array of string | Optional | List of statements about the lineage of a Dataset, including any changes in its ownership or custody since its creation that may be significant for its authenticity, integrity, or interpretation | +| [publisher](#publisher) | object | Mandatory | Organization responsible for publishing and making the dataset available | +| [relation](#relation) | null or array of string | Optional | List of links to related resources when the relationship is not otherwise specified | +| [replaces](#replaces) | null or array of [Dataset](./dataset.md#root) classes | Optional | List of Datasets replaced by this Dataset | +| [rights](#rights) | null or array of string | Recommended | Rights statements not already covered by license or accessRights, such as copyright or policy restrictions | +| [rightsHolder](#rightsHolder) | null or array of [Organization](./agents.md#organization) classes | Optional | List of agents (organizations) holding rights on the Dataset | +| [source](#source) | null or array of [Dataset](./dataset.md#root) classes | Optional | List of related Datasets from which the described Dataset is derived | +| [spatial](#spatial) | More than one type | Recommended | A geographic region or regions that are covered by the Dataset | +| [subject](#subject) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of primary subjects for the dataset, usually narrower than broad theme categories | +| [temporal](#temporal) | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | Recommended | Time periods covered by the dataset | +| [title](#title) | string | Mandatory | Human-readable title of the dataset | +| [category](#category) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of high-level categories for the dataset | +| [hasQualityMeasurement](#hasQualityMeasurement) | null or array of [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) classes | Optional | List of quality measurements for the dataset (for example, completeness, accuracy, or timeliness) beyond spatial or temporal resolution | +| [page](#page) | null or array of [Document](./quality-governance.md#document) classes | Optional | List of pages or documents about this dataset | +| [qualifiedAttribution](#qualifiedAttribution) | null or array of [Attribution](./quality-governance.md#attribution) classes | Optional | List of agents with specific responsibilities for the dataset | +| [wasAttributedTo](#wasAttributedTo) | null or array of [Agent](./agents.md#agent) classes | Optional | List of agents attributed to this dataset | +| [wasGeneratedBy](#wasGeneratedBy) | null or array of [Activity](./temporal-spatial-metrics.md#activity) classes | Optional | List of activities that generated, or provide the business context for the creation of the dataset | +| [wasUsedBy](#wasUsedBy) | null or array of [Activity](./temporal-spatial-metrics.md#activity) classes | Optional | List of activities that used the Dataset | +| [image](#image) | More than one type | Optional | Thumbnail image illustrating the dataset, especially useful for visual data such as maps, photos, or video | +| [scopeNote](#scopeNote) | null or string | Optional | usage note for the dataset | + +## `Dataset > @id` [#](#@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/datasets/national-climate-observations-2024" +``` + +## `Dataset > @type` [#](#@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ----------- | +| **Default** | `"Dataset"` | + +## `Dataset > otherIdentifier` [#](#otherIdentifier) + +**Requirement:** Optional + +Additional identifiers for the dataset besides the main identifier, such as a DOI or other persistent ID + +| **Type** | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | +| -------- | ------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [Identifier](./identifiers-and-relationships.md#identifier) | A unique identifier and optionally it's scheme and other relevant information | + +## `Dataset > sample` [#](#sample) + +**Requirement:** Optional + +List of sample distributions for the dataset + +| **Type** | null or array of [Distribution](./distribution.md#root) classes | +| -------- | --------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------- | ----------------------------------------------------------------------------- | +| [Distribution](./distribution.md#root) | A specific representation of a dataset, such as a file, feed, or API response | + +## `Dataset > status` [#](#status) + +**Title:** lifecycle status + +**Requirement:** Optional + +Lifecycle status of the dataset, such as completed, deprecated, under development, or withdrawn + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#status_anyOf_i0) | +| [Concept](#status_anyOf_i1) | + +### `Dataset > status > anyOf > Null allowed when not required` [#](#status_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > status > anyOf > Concept` [#](#status_anyOf_i1) + +inline description of Concept + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Concept](./identifiers-and-relationships.md#concept) | + +## `Dataset > supportedSchema` [#](#supportedSchema) + +**Requirement:** Optional + +supported schema for this dataset + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------------------------------- | +| [Null allowed when not required](#supportedSchema_anyOf_i0) | +| [Dataset](#supportedSchema_anyOf_i1) | + +### `Dataset > supportedSchema > anyOf > Null allowed when not required` [#](#supportedSchema_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > supportedSchema > anyOf > Dataset` [#](#supportedSchema_anyOf_i1) + +inline description of the supported schema + +| **Type** | `object` | +| ------------------------- | ---------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Dataset](./dataset.md#root) | + +--- +**See Also:** (related supporting classes) + +## `Dataset > versionNotes` [#](#versionNotes) + +**Requirement:** Optional + +Notes describing how this version differs from earlier versions of the dataset + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Initial release of 2024 climate observations data." +``` + +## `Dataset > contactPoint` [#](#contactPoint) + +**Requirement:** Mandatory + +A contact point for questions about the Dataset (single contact or list). Include an email address that is continuously monitored + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------ | +| [Kind](#contactPoint_anyOf_i0) | +| [List of contacts](#contactPoint_anyOf_i1) | + +### `Dataset > contactPoint > anyOf > Kind` [#](#contactPoint_anyOf_i0) + +inline description of Kind + +| **Type** | `object` | +| ------------------------- | ------------------------ | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Kind](./agents.md#kind) | + +### `Dataset > contactPoint > anyOf > List of contacts` [#](#contactPoint_anyOf_i1) + +| **Type** | array of [Kind](./agents.md#kind) classes | +| -------- | ----------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | ----------------------------------------------- | +| [Kind](./agents.md#kind) | Contact information for an individual or entity | + +## `Dataset > distribution` [#](#distribution) + +**Title:** dataset distribution + +**Requirement:** Recommended + +List of available distributions for the dataset. This can be omitted when no distribution is available yet. + +| **Type** | null or array of [Distribution](./distribution.md#root) classes | +| -------- | --------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------- | ----------------------------------------------------------------------------- | +| [Distribution](./distribution.md#root) | A specific representation of a dataset, such as a file, feed, or API response | + +## `Dataset > first` [#](#first) + +**Requirement:** Optional + +the first item of the sequence the dataset belongs to + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------- | +| [Null allowed when not required](#first_anyOf_i0) | +| [Dataset](#first_anyOf_i1) | + +### `Dataset > first > anyOf > Null allowed when not required` [#](#first_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > first > anyOf > Dataset` [#](#first_anyOf_i1) + +inline description of Dataset + +| **Type** | `object` | +| ------------------------- | ---------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Dataset](./dataset.md#root) | + +--- +**See Also:** (related supporting classes) + +## `Dataset > hasCurrentVersion` [#](#hasCurrentVersion) + +**Title:** current version + +**Requirement:** Optional + +reference to the current (latest) version of a dataset + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------------- | +| [Null allowed when not required](#hasCurrentVersion_anyOf_i0) | +| [Dataset](#hasCurrentVersion_anyOf_i1) | + +### `Dataset > hasCurrentVersion > anyOf > Null allowed when not required` [#](#hasCurrentVersion_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > hasCurrentVersion > anyOf > Dataset` [#](#hasCurrentVersion_anyOf_i1) + +inline description of Dataset + +| **Type** | `object` | +| ------------------------- | ---------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Dataset](./dataset.md#root) | + +--- +**See Also:** (related supporting classes) + +## `Dataset > hasVersion` [#](#hasVersion) + +**Requirement:** Optional + +List of related Datasets that are a version, edition, or adaptation of the described Dataset + +| **Type** | null or array of [Dataset](./dataset.md#root) classes | +| -------- | ----------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------------------------- | +| [Dataset](./dataset.md#root) | A collection of data published or curated by one provider | + +## `Dataset > inSeries` [#](#inSeries) + +**Requirement:** Optional + +Dataset series this dataset belongs to + +| **Type** | null or array of [DatasetSeries](./dataset-series.md#root) classes | +| -------- | ------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------- | --------------------------------------------------------- | +| [DatasetSeries](./dataset-series.md#root) | A group of related datasets that are published separately | + +## `Dataset > keyword` [#](#keyword) + +**Title:** keyword/tag + +**Requirement:** Recommended + +List of keywords or tags describing the dataset + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Examples:** + +```json +[ + "climate", + "weather", + "temperature", + "precipitation" +] +``` + +```json +[ + "climate", + "weather", + "temperature", + "precipitation", + "humidity", + "wind", + "meteorology" +] +``` + +| Each item of this array must be | Description | +| ---------------------------------- | ----------- | +| [Non-empty string](#keyword_items) | - | + +### Non-empty string [#](#keyword_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Min length** | 1 | + +## `Dataset > landingPage` [#](#landingPage) + +**Requirement:** Recommended + +A web page from the original data provider that gives access to the Dataset, its Distributions, and related information + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------- | +| [Null allowed when not required](#landingPage_anyOf_i0) | +| [Document](#landingPage_anyOf_i1) | + +### `Dataset > landingPage > anyOf > Null allowed when not required` [#](#landingPage_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > landingPage > anyOf > Document` [#](#landingPage_anyOf_i1) + +inline description of Document + +| **Type** | `object` | +| ------------------------- | -------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Document](./quality-governance.md#document) | + +## `Dataset > previousVersion` [#](#previousVersion) + +**Requirement:** Optional + +reference to the previous dataset version + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------------------------------- | +| [Null allowed when not required](#previousVersion_anyOf_i0) | +| [Dataset](#previousVersion_anyOf_i1) | + +### `Dataset > previousVersion > anyOf > Null allowed when not required` [#](#previousVersion_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > previousVersion > anyOf > Dataset` [#](#previousVersion_anyOf_i1) + +inline description of Dataset + +| **Type** | `object` | +| ------------------------- | ---------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Dataset](./dataset.md#root) | + +--- +**See Also:** (related supporting classes) + +## `Dataset > qualifiedRelation` [#](#qualifiedRelation) + +**Requirement:** Optional + +Detailed relationship between the dataset and another resource, including the role of that relationship + +| **Type** | null or array of [Relationship](./identifiers-and-relationships.md#relationship) classes | +| -------- | ---------------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| --------------------------------------------------------------- | ------------------------------------------------------------------- | +| [Relationship](./identifiers-and-relationships.md#relationship) | Additional information about how one resource is related to another | + +## `Dataset > spatialResolutionInMeters` [#](#spatialResolutionInMeters) + +**Title:** Spatial resolution (meters) + +**Requirement:** Optional + +Smallest spatial distance between data points, in meters, represented as a single value + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"1000" +``` + +## `Dataset > temporalResolution` [#](#temporalResolution) + +**Requirement:** Optional + +Smallest time interval between data points, using xsd:duration format (for example, P1D) + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"P1D" +``` + +## `Dataset > theme` [#](#theme) + +**Title:** theme/category + +**Requirement:** Recommended + +List of themes or categories for the dataset + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `Dataset > version` [#](#version) + +**Requirement:** Optional + +The version indicator (name or identifier) of a resource + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"2024.1" +``` + +## `Dataset > describedBy` [#](#describedBy) + +**Title:** data dictionary + +**Requirement:** Recommended + +A distribution describing the Data Dictionary for this dataset + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------- | +| [Null allowed when not required](#describedBy_anyOf_i0) | +| [Distribution](#describedBy_anyOf_i1) | + +### `Dataset > describedBy > anyOf > Null allowed when not required` [#](#describedBy_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > describedBy > anyOf > Distribution` [#](#describedBy_anyOf_i1) + +inline description of Distribution + +| **Type** | `object` | +| ------------------------- | -------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Distribution](./distribution.md#root) | + +--- +**See Also:** (related supporting classes) + +## `Dataset > liabilityStatement` [#](#liabilityStatement) + +**Requirement:** Optional + +A liability statement about the dataset that may clarify limitations of responsibility, qualifications on the accuracy, reliability, and completeness of the data, or absence of endorsement by the data publisher or provider, among other considerations + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"This dataset is provided as-is without warranty of any kind. Users are responsible for determining fitness for their intended use." +``` + +| Any of | +| -------------------------------------------------------------- | +| [Null allowed when not required](#liabilityStatement_anyOf_i0) | +| [item 1](#liabilityStatement_anyOf_i1) | + +### `Dataset > liabilityStatement > anyOf > Null allowed when not required` [#](#liabilityStatement_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > liabilityStatement > anyOf > item 1` [#](#liabilityStatement_anyOf_i1) + +Full text of the liability statement + +| **Type** | `string` | +| -------- | -------- | + +## `Dataset > metadataDistribution` [#](#metadataDistribution) + +**Requirement:** Optional + +Distribution of the original metadata document this dataset was derived from + +| **Type** | null or array of [Distribution](./distribution.md#root) classes | +| -------- | --------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------- | ----------------------------------------------------------------------------- | +| [Distribution](./distribution.md#root) | A specific representation of a dataset, such as a file, feed, or API response | + +## `Dataset > purpose` [#](#purpose) + +**Requirement:** Optional + +The purpose of the dataset + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"To provide comprehensive, high-quality climate observations for research, planning, and decision-making related to weather and climate." +``` + +## `Dataset > accessRights` [#](#accessRights) + +**Requirement:** Optional + +Information about whether the dataset is publicly accessible, restricted, or not public + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"public" +``` + +```json +"Public access with no restrictions. Data is freely available for download and use." +``` + +| Any of | +| -------------------------------------------------------- | +| [Null allowed when not required](#accessRights_anyOf_i0) | +| [item 1](#accessRights_anyOf_i1) | + +### `Dataset > accessRights > anyOf > Null allowed when not required` [#](#accessRights_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > accessRights > anyOf > item 1` [#](#accessRights_anyOf_i1) + +Text description of the access rights + +| **Type** | `string` | +| -------- | -------- | + +## `Dataset > accrualPeriodicity` [#](#accrualPeriodicity) + +**Title:** frequency + +**Requirement:** Optional + +The frequency at which the Dataset is updated + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"daily" +``` + +| Any of | +| -------------------------------------------------------------- | +| [Null allowed when not required](#accrualPeriodicity_anyOf_i0) | +| [item 1](#accrualPeriodicity_anyOf_i1) | +| [item 2](#accrualPeriodicity_anyOf_i2) | +| [item 3](#accrualPeriodicity_anyOf_i3) | + +### `Dataset > accrualPeriodicity > anyOf > Null allowed when not required` [#](#accrualPeriodicity_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > accrualPeriodicity > anyOf > item 1` [#](#accrualPeriodicity_anyOf_i1) + +ISO 19115 Maintenance Frequency code + +| **Type** | `enum (of string)` | +| -------- | ------------------ | + +Must be one of: +* "continual" +* "daily" +* "weekly" +* "fortnightly" +* "monthly" +* "quarterly" +* "biannually" +* "annually" +* "asNeeded" +* "irregular" +* "notPlanned" +* "unknown" + +### `Dataset > accrualPeriodicity > anyOf > item 2` [#](#accrualPeriodicity_anyOf_i2) + +ISO-8601 Maintenance Frequency code for recurring values, see https://www.iso.org/standard/70907.html + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------- | +| **Must match regular expression** | ```^R/P.+$``` [Test](https://regex101.com/?regex=%5ER%2FP.%2B%24) | + +### `Dataset > accrualPeriodicity > anyOf > item 3` [#](#accrualPeriodicity_anyOf_i3) + +Dublin Core Collection Frequency Vocabulary, see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/#vocabulary-terms + +| **Type** | `enum (of string)` | +| -------- | ------------------ | + +Must be one of: +* "continuous" +* "daily" +* "weekly" +* "biweekly" +* "monthly" +* "quarterly" +* "semiannual" +* "annual" +* "irregular" +* "triennial" +* "biennial" +* "threeTimesAYear" +* "bimonthly" +* "semimonthly" +* "threeTimesAMonth" +* "semiweekly" +* "threeTimesAWeek" + +## `Dataset > conformsTo` [#](#conformsTo) + +**Requirement:** Optional + +List of standards, schemas, or profiles the dataset follows + +| **Type** | null or array of [Standard](./quality-governance.md#standard) classes | +| -------- | --------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------- | ------------------------------------------------------------- | +| [Standard](./quality-governance.md#standard) | A standard or specification that another resource conforms to | + +## `Dataset > contributor` [#](#contributor) + +**Requirement:** Optional + +List of agents contributing to the Dataset + +| **Type** | null or array of [Agent](./agents.md#agent) classes | +| -------- | --------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | -------------------------------------------------------------------------------- | +| [Agent](./agents.md#agent) | A person, organization, software agent, or other entity involved with a resource | + +## `Dataset > created` [#](#created) + +**Title:** creation date + +**Requirement:** Optional + +The date on which the Dataset was first created + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-01-01" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#created_anyOf_i0) | +| [Date string](#created_anyOf_i1) | + +### `Dataset > created > anyOf > Null allowed when not required` [#](#created_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > created > anyOf > Date string` [#](#created_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------ | +| [item 0](#created_anyOf_i1_anyOf_i0) | +| [item 1](#created_anyOf_i1_anyOf_i1) | +| [item 2](#created_anyOf_i1_anyOf_i2) | +| [item 3](#created_anyOf_i1_anyOf_i3) | + +#### `Dataset > created > anyOf > Date string > anyOf > item 0` [#](#created_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Dataset > created > anyOf > Date string > anyOf > item 1` [#](#created_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Dataset > created > anyOf > Date string > anyOf > item 2` [#](#created_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Dataset > created > anyOf > Date string > anyOf > item 3` [#](#created_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Dataset > creator` [#](#creator) + +**Requirement:** Optional + +Person or organization responsible for creating the dataset + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#creator_anyOf_i0) | +| [Agent](#creator_anyOf_i1) | + +### `Dataset > creator > anyOf > Null allowed when not required` [#](#creator_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > creator > anyOf > Agent` [#](#creator_anyOf_i1) + +inline description of Agent + +| **Type** | `object` | +| ------------------------- | -------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Agent](./agents.md#agent) | + +## `Dataset > description` [#](#description) + +**Requirement:** Mandatory + +Plain-language summary of the dataset + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"Daily temperature, precipitation, and wind measurements from monitoring stations across the United States." +``` + +```json +"Comprehensive daily climate observations collected from monitoring stations across the United States, including temperature, precipitation, humidity, and wind measurements." +``` + +## `Dataset > hasPart` [#](#hasPart) + +**Requirement:** Optional + +List of related datasets that are part of the described dataset + +| **Type** | null or array of [Dataset](./dataset.md#root) classes | +| -------- | ----------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------------------------- | +| [Dataset](./dataset.md#root) | A collection of data published or curated by one provider | + +## `Dataset > identifier` [#](#identifier) + +**Requirement:** Mandatory + +The unique identifier for the Dataset, e.g. the URI or other unique identifier in the context of the Catalog + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------ | +| [Null allowed when not required](#identifier_anyOf_i0) | +| [Identifier](#identifier_anyOf_i1) | + +### `Dataset > identifier > anyOf > Null allowed when not required` [#](#identifier_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > identifier > anyOf > Identifier` [#](#identifier_anyOf_i1) + +inline description of Identifier + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Identifier](./identifiers-and-relationships.md#identifier) | + +## `Dataset > isReferencedBy` [#](#isReferencedBy) + +**Requirement:** Optional + +List of links to related resources, such as publications, that reference, cite, or otherwise point to the Dataset + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "https://example.gov/publications/climate-trends-2024" +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ------------------------- | +| [Link](#isReferencedBy_items) | reference iri of Resource | + +### Link [#](#isReferencedBy_items) + +reference iri of Resource + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Dataset > issued` [#](#issued) + +**Title:** release date + +**Requirement:** Optional + +Date when the dataset was first published. If the exact publication date is unknown, use the date it was first referenced in the catalog. + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-01-15" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#issued_anyOf_i0) | +| [Date string](#issued_anyOf_i1) | + +### `Dataset > issued > anyOf > Null allowed when not required` [#](#issued_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > issued > anyOf > Date string` [#](#issued_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------- | +| [item 0](#issued_anyOf_i1_anyOf_i0) | +| [item 1](#issued_anyOf_i1_anyOf_i1) | +| [item 2](#issued_anyOf_i1_anyOf_i2) | +| [item 3](#issued_anyOf_i1_anyOf_i3) | + +#### `Dataset > issued > anyOf > Date string > anyOf > item 0` [#](#issued_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Dataset > issued > anyOf > Date string > anyOf > item 1` [#](#issued_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Dataset > issued > anyOf > Date string > anyOf > item 2` [#](#issued_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Dataset > issued > anyOf > Date string > anyOf > item 3` [#](#issued_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Dataset > language` [#](#language) + +**Requirement:** Optional + +ISO 639-1 language code values used in the dataset text or metadata, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +[ + "en" +] +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#language_anyOf_i0) | +| [Language code](#language_anyOf_i1) | +| [List of languages](#language_anyOf_i2) | + +### `Dataset > language > anyOf > Null allowed when not required` [#](#language_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > language > anyOf > Language code` [#](#language_anyOf_i1) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +### `Dataset > language > anyOf > List of languages` [#](#language_anyOf_i2) + +| **Type** | array of string | +| -------- | --------------- | + +| Each item of this array must be | Description | +| ----------------------------------------- | ----------- | +| [Language code](#language_anyOf_i2_items) | - | + +#### Language code [#](#language_anyOf_i2_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +## `Dataset > modified` [#](#modified) + +**Title:** last modified + +**Requirement:** Recommended + +Most recent date when the dataset's actual data changed, not just metadata + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-06-01" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#modified_anyOf_i0) | +| [Date string](#modified_anyOf_i1) | + +### `Dataset > modified > anyOf > Null allowed when not required` [#](#modified_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > modified > anyOf > Date string` [#](#modified_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------- | +| [item 0](#modified_anyOf_i1_anyOf_i0) | +| [item 1](#modified_anyOf_i1_anyOf_i1) | +| [item 2](#modified_anyOf_i1_anyOf_i2) | +| [item 3](#modified_anyOf_i1_anyOf_i3) | + +#### `Dataset > modified > anyOf > Date string > anyOf > item 0` [#](#modified_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Dataset > modified > anyOf > Date string > anyOf > item 1` [#](#modified_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Dataset > modified > anyOf > Date string > anyOf > item 2` [#](#modified_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Dataset > modified > anyOf > Date string > anyOf > item 3` [#](#modified_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Dataset > provenance` [#](#provenance) + +**Requirement:** Optional + +List of statements about the lineage of a Dataset, including any changes in its ownership or custody since its creation that may be significant for its authenticity, integrity, or interpretation + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "Data collected from automated weather stations deployed at 2,500 locations across the continental United States.", + "Quality control procedures applied according to WMO guidelines." +] +``` + +| Each item of this array must be | Description | +| ------------------------------------- | ------------------------------------- | +| [provenance items](#provenance_items) | Full text of the provenance statement | + +### Array Item [#](#provenance_items) + +Full text of the provenance statement + +| **Type** | `string` | +| -------- | -------- | + +## `Dataset > publisher` [#](#publisher) + +**Requirement:** Mandatory + +Organization responsible for publishing and making the dataset available + +| **Type** | `object` | +| ------------------------- | ---------------------------------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | +| **Defined in** | [Organization](./agents.md#organization) | + +## `Dataset > relation` [#](#relation) + +**Title:** related resource + +**Requirement:** Optional + +List of links to related resources when the relationship is not otherwise specified + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "https://example.gov/datasets/historical-climate-averages" +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ------------------------- | +| [Link](#relation_items) | reference iri of Resource | + +### Link [#](#relation_items) + +reference iri of Resource + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Dataset > replaces` [#](#replaces) + +**Requirement:** Optional + +List of Datasets replaced by this Dataset + +| **Type** | null or array of [Dataset](./dataset.md#root) classes | +| -------- | ----------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------------------------- | +| [Dataset](./dataset.md#root) | A collection of data published or curated by one provider | + +## `Dataset > rights` [#](#rights) + +**Requirement:** Recommended + +Rights statements not already covered by license or accessRights, such as copyright or policy restrictions + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Examples:** + +```json +[ + "Data is provided as-is without warranty. Please cite the National Climate Data Center when using this data." +] +``` + +```json +[ + "This data is in the public domain and may be used without restriction." +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ---------------------------------- | +| [rights items](#rights_items) | Full text of a statement of rights | + +### Array Item [#](#rights_items) + +Full text of a statement of rights + +| **Type** | `string` | +| -------- | -------- | + +## `Dataset > rightsHolder` [#](#rightsHolder) + +**Requirement:** Optional + +List of agents (organizations) holding rights on the Dataset + +| **Type** | null or array of [Organization](./agents.md#organization) classes | +| -------- | ----------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ---------------------------------------- | --------------------------------------------------------------------------------- | +| [Organization](./agents.md#organization) | An organization involved with a resource, including parent or child organizations | + +## `Dataset > source` [#](#source) + +**Title:** data source + +**Requirement:** Optional + +List of related Datasets from which the described Dataset is derived + +| **Type** | null or array of [Dataset](./dataset.md#root) classes | +| -------- | ----------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------------------------- | +| [Dataset](./dataset.md#root) | A collection of data published or curated by one provider | + +## `Dataset > spatial` [#](#spatial) + +**Title:** spatial/geographic coverage + +**Requirement:** Recommended + +A geographic region or regions that are covered by the Dataset + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#spatial_anyOf_i0) | +| [Location](#spatial_anyOf_i1) | +| [List of geographic regions](#spatial_anyOf_i2) | + +### `Dataset > spatial > anyOf > Null allowed when not required` [#](#spatial_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > spatial > anyOf > Location` [#](#spatial_anyOf_i1) + +inline description of Location + +| **Type** | `object` | +| ------------------------- | -------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Location](./temporal-spatial-metrics.md#location) | + +### `Dataset > spatial > anyOf > List of geographic regions` [#](#spatial_anyOf_i2) + +| **Type** | array of [Location](./temporal-spatial-metrics.md#location) classes | +| -------- | ------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | -------------------------------- | +| [Location](./temporal-spatial-metrics.md#location) | A named place or geographic area | + +## `Dataset > subject` [#](#subject) + +**Requirement:** Optional + +List of primary subjects for the dataset, usually narrower than broad theme categories + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `Dataset > temporal` [#](#temporal) + +**Title:** temporal coverage + +**Requirement:** Recommended + +Time periods covered by the dataset + +| **Type** | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | +| -------- | ------------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------------ | ---------------------------------------------------------------------- | +| [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) | Information about a specific time period with a start- and/or end-time | + +## `Dataset > title` [#](#title) + +**Requirement:** Mandatory + +Human-readable title of the dataset + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"Daily Climate Observations 2024" +``` + +```json +"National Climate Observations 2024" +``` + +## `Dataset > category` [#](#category) + +**Requirement:** Optional + +List of high-level categories for the dataset + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `Dataset > hasQualityMeasurement` [#](#hasQualityMeasurement) + +**Title:** quality measurement + +**Requirement:** Optional + +List of quality measurements for the dataset (for example, completeness, accuracy, or timeliness) beyond spatial or temporal resolution + +| **Type** | null or array of [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) classes | +| -------- | ------------------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------------------- | ------------------------------------------------------------- | +| [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) | A measurement of a resource against a specific quality metric | + +## `Dataset > page` [#](#page) + +**Title:** documentation + +**Requirement:** Optional + +List of pages or documents about this dataset + +| **Type** | null or array of [Document](./quality-governance.md#document) classes | +| -------- | --------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------- | ----------------------------------------------------- | +| [Document](./quality-governance.md#document) | A publication or other document related to a resource | + +## `Dataset > qualifiedAttribution` [#](#qualifiedAttribution) + +**Requirement:** Optional + +List of agents with specific responsibilities for the dataset + +| **Type** | null or array of [Attribution](./quality-governance.md#attribution) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | ------------------------------------------------- | +| [Attribution](./quality-governance.md#attribution) | A responsibility that an agent has for a resource | + +## `Dataset > wasAttributedTo` [#](#wasAttributedTo) + +**Title:** attribution + +**Requirement:** Optional + +List of agents attributed to this dataset + +| **Type** | null or array of [Agent](./agents.md#agent) classes | +| -------- | --------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | -------------------------------------------------------------------------------- | +| [Agent](./agents.md#agent) | A person, organization, software agent, or other entity involved with a resource | + +## `Dataset > wasGeneratedBy` [#](#wasGeneratedBy) + +**Requirement:** Optional + +List of activities that generated, or provide the business context for the creation of the dataset + +| **Type** | null or array of [Activity](./temporal-spatial-metrics.md#activity) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | -------------------------------------------------------------- | +| [Activity](./temporal-spatial-metrics.md#activity) | An activity related to creating, changing, or using a resource | + +## `Dataset > wasUsedBy` [#](#wasUsedBy) + +**Title:** used by + +**Requirement:** Optional + +List of activities that used the Dataset + +| **Type** | null or array of [Activity](./temporal-spatial-metrics.md#activity) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | -------------------------------------------------------------- | +| [Activity](./temporal-spatial-metrics.md#activity) | An activity related to creating, changing, or using a resource | + +## `Dataset > image` [#](#image) + +**Requirement:** Optional + +Thumbnail image illustrating the dataset, especially useful for visual data such as maps, photos, or video + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------- | +| [Null allowed when not required](#image_anyOf_i0) | +| [Link](#image_anyOf_i1) | + +### `Dataset > image > anyOf > Null allowed when not required` [#](#image_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Dataset > image > anyOf > Link` [#](#image_anyOf_i1) + +The link to the image + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Dataset > scopeNote` [#](#scopeNote) + +**Title:** usage note + +**Requirement:** Optional + +usage note for the dataset + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"This dataset contains raw observational data. For derived products such as monthly averages or climate normals, see related datasets." +``` + +--- +**See Also:** (related supporting classes) diff --git a/jsonschema/docs/distribution.md b/jsonschema/docs/distribution.md new file mode 100644 index 00000000..2cda7b37 --- /dev/null +++ b/jsonschema/docs/distribution.md @@ -0,0 +1,1035 @@ + + +Information about a distribution, including access methods, formats, licenses, restrictions, and quality details. + +A specific representation of a dataset, such as a file, feed, or API response + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Distribution", + "title": "Climate Data CSV", + "description": "Daily climate observations in CSV format.", + "accessURL": "https://example.gov/data/climate", + "downloadURL": "https://example.gov/downloads/climate-2024.csv", + "mediaType": "text/csv", + "format": "CSV", + "byteSize": "52428800", + "license": "https://creativecommons.org/publicdomain/zero/1.0/", + "modified": "2024-06-01", + "rights": [ + "No rights reserved. This data is in the public domain." + ], + "describedBy": { + "@type": "Standard", + "title": "CSV Data Dictionary", + "accessURL": "https://example.gov/data/climate/dictionary" + }, + "accessRestriction": null, + "cuiRestriction": null, + "useRestriction": null +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#@id) | string | Optional | | +| [@type](#@type) | string | Optional | | +| [representationTechnique](#representationTechnique) | More than one type | Optional | Method or schema used to structure the distribution content (for example, CSV convention, XML schema, or spatial representation type) | +| [status](#status) | More than one type | Optional | The status of the distribution in the context of maturity lifecycle | +| [characterEncoding](#characterEncoding) | More than one type | Optional | List of character encodings used in the Distribution, using IANA character set names (for example, UTF-8) | +| [accessService](#accessService) | null or array of [DataService](./quality-governance.md#data-service) classes | Optional | A data service that gives access to the distribution of the dataset | +| [accessURL](#accessURL) | More than one type | Recommended | URL for indirect access to the Distribution (for example, a landing page, API docs, or request form), not a direct file download | +| [byteSize](#byteSize) | null or string | Optional | The size of a Distribution in bytes | +| [compressFormat](#compressFormat) | null or string | Optional | The format of the file in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file | +| [downloadURL](#downloadURL) | More than one type | Optional | Direct URL to a downloadable file for the Distribution; use accessURL for indirect access | +| [mediaType](#mediaType) | null or string | Optional | MIME type of the Distribution (for example, text/csv or application/json), from the IANA media types registry: https://www.iana.org/assignments/media-types/media-types.xhtml | +| [packageFormat](#packageFormat) | null or string | Optional | The format of the file in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together | +| [spatialResolutionInMeters](#spatialResolutionInMeters) | null or string | Optional | The minimum spatial separation resolvable in a dataset distribution, measured in meters | +| [temporalResolution](#temporalResolution) | null or string | Optional | The minimum time period resolvable in the dataset distribution | +| [availability](#availability) | More than one type | Optional | An indication how long it is planned to keep the Distribution of the Dataset available | +| [accessRestriction](#accessRestriction) | null or array of [AccessRestriction](./constraints-and-restrictions.md#access-restriction) classes | Recommended | List of access restrictions related to the distribution | +| [cuiRestriction](#cuiRestriction) | More than one type | Recommended | Controlled Unclassified Information restriction related to the distribution | +| [describedBy](#describedBy) | More than one type | Recommended | A distribution containing the Data Dictionary for this distribution | +| [useRestriction](#useRestriction) | null or array of [UseRestriction](./constraints-and-restrictions.md#use-restriction) classes | Recommended | Use restriction related to the distribution | +| [accessRights](#accessRights) | More than one type | Optional | Information about whether the distribution is publicly accessible, restricted, or not public | +| [conformsTo](#conformsTo) | null or array of [Standard](./quality-governance.md#standard) classes | Optional | List of standards, schemas, or reference systems the Distribution follows (prefer stable URIs when available) | +| [description](#description) | null or string | Recommended | Plain-language summary of the distribution | +| [format](#format) | null or string | Recommended | A human-readable description of the file format of the Distribution that provides useful information that might not be apparent from mediaType | +| [identifier](#identifier) | More than one type | Optional | The unique identifier for the Distribution (e.g. DOI, ISBN) | +| [otherIdentifier](#otherIdentifier) | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | Optional | A list of identifiers for the Distribution besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog | +| [issued](#issued) | More than one type | Optional | The date of formal issuance (e.g., publication) of the Distribution | +| [language](#language) | More than one type | Optional | ISO 639-1 language code values used in the distribution metadata text, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html | +| [license](#license) | More than one type | Recommended | License that governs how the distribution can be used or reused | +| [modified](#modified) | More than one type | Recommended | The most recent date on which the Distribution was changed or modified | +| [rights](#rights) | null or array of string | Recommended | Rights statements not already covered by license or accessRights, such as copyright or policy restrictions | +| [title](#title) | null or string | Recommended | Human-readable title of the distribution | +| [hasQualityMeasurement](#hasQualityMeasurement) | null or array of [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) classes | Optional | Quality measurements for the distribution (for example, completeness, accuracy, or timeliness) | +| [page](#page) | null or array of [Document](./quality-governance.md#document) classes | Optional | A page or document about this Distribution | +| [image](#image) | More than one type | Optional | A link to a thumbnail picture illustrating the content of the distribution | +| [checksum](#checksum) | More than one type | Optional | Checksum used to verify that the downloadable file content has not changed | + +## `Distribution > @id` [#](#@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/distributions/climate-data-csv-001" +``` + +## `Distribution > @type` [#](#@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ---------------- | +| **Default** | `"Distribution"` | + +## `Distribution > representationTechnique` [#](#representationTechnique) + +**Requirement:** Optional + +Method or schema used to structure the distribution content (for example, CSV convention, XML schema, or spatial representation type) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------------------- | +| [Null allowed when not required](#representationTechnique_anyOf_i0) | +| [Concept](#representationTechnique_anyOf_i1) | + +### `Distribution > representationTechnique > anyOf > Null allowed when not required` [#](#representationTechnique_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > representationTechnique > anyOf > Concept` [#](#representationTechnique_anyOf_i1) + +inline description of Concept + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Defined in** | [Concept](./identifiers-and-relationships.md#concept) | + +## `Distribution > status` [#](#status) + +**Title:** lifecycle status + +**Requirement:** Optional + +The status of the distribution in the context of maturity lifecycle + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#status_anyOf_i0) | +| [Concept](#status_anyOf_i1) | + +### `Distribution > status > anyOf > Null allowed when not required` [#](#status_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > status > anyOf > Concept` [#](#status_anyOf_i1) + +inline description of Concept + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Concept](./identifiers-and-relationships.md#concept) | + +## `Distribution > characterEncoding` [#](#characterEncoding) + +**Requirement:** Optional + +List of character encodings used in the Distribution, using IANA character set names (for example, UTF-8) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +[ + "UTF-8" +] +``` + +| Any of | +| ------------------------------------------------------------- | +| [Null allowed when not required](#characterEncoding_anyOf_i0) | +| [List of encodings](#characterEncoding_anyOf_i1) | + +### `Distribution > characterEncoding > anyOf > Null allowed when not required` [#](#characterEncoding_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > characterEncoding > anyOf > List of encodings` [#](#characterEncoding_anyOf_i1) + +| **Type** | array of string | +| -------- | --------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------- | ----------- | +| [Character encoding](#characterEncoding_anyOf_i1_items) | - | + +#### Character encoding [#](#characterEncoding_anyOf_i1_items) + +| **Type** | `string` | +| -------- | -------- | + +## `Distribution > accessService` [#](#accessService) + +**Requirement:** Optional + +A data service that gives access to the distribution of the dataset + +| **Type** | null or array of [DataService](./quality-governance.md#data-service) classes | +| -------- | ---------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| --------------------------------------------------- | ------------------------------------------------------------------- | +| [DataService](./quality-governance.md#data-service) | A service that provides access to data or data processing functions | + +## `Distribution > accessURL` [#](#accessURL) + +**Requirement:** Recommended + +URL for indirect access to the Distribution (for example, a landing page, API docs, or request form), not a direct file download + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"https://example.gov/data/climate" +``` + +```json +"https://example.gov/data/climate/access" +``` + +| Any of | +| ----------------------------------------------------- | +| [Null allowed when not required](#accessURL_anyOf_i0) | +| [URL](#accessURL_anyOf_i1) | + +### `Distribution > accessURL > anyOf > Null allowed when not required` [#](#accessURL_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > accessURL > anyOf > URL` [#](#accessURL_anyOf_i1) + +reference iri of Resource + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Distribution > byteSize` [#](#byteSize) + +**Requirement:** Optional + +The size of a Distribution in bytes + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"52428800" +``` + +## `Distribution > compressFormat` [#](#compressFormat) + +**Title:** compression format + +**Requirement:** Optional + +The format of the file in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"application/gzip" +``` + +## `Distribution > downloadURL` [#](#downloadURL) + +**Requirement:** Optional + +Direct URL to a downloadable file for the Distribution; use accessURL for indirect access + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"https://example.gov/data/climate/climate-data-2023.csv" +``` + +| Any of | +| ------------------------------------------------------- | +| [Null allowed when not required](#downloadURL_anyOf_i0) | +| [URL](#downloadURL_anyOf_i1) | + +### `Distribution > downloadURL > anyOf > Null allowed when not required` [#](#downloadURL_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > downloadURL > anyOf > URL` [#](#downloadURL_anyOf_i1) + +reference iri of Resource + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Distribution > mediaType` [#](#mediaType) + +**Requirement:** Optional + +MIME type of the Distribution (for example, text/csv or application/json), from the IANA media types registry: https://www.iana.org/assignments/media-types/media-types.xhtml + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"text/csv" +``` + +## `Distribution > packageFormat` [#](#packageFormat) + +**Title:** packaging format + +**Requirement:** Optional + +The format of the file in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"application/zip" +``` + +## `Distribution > spatialResolutionInMeters` [#](#spatialResolutionInMeters) + +**Title:** Spatial resolution (meters) + +**Requirement:** Optional + +The minimum spatial separation resolvable in a dataset distribution, measured in meters + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"1000" +``` + +## `Distribution > temporalResolution` [#](#temporalResolution) + +**Title:** termporal resolution + +**Requirement:** Optional + +The minimum time period resolvable in the dataset distribution + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"P1D" +``` + +## `Distribution > availability` [#](#availability) + +**Requirement:** Optional + +An indication how long it is planned to keep the Distribution of the Dataset available + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| -------------------------------------------------------- | +| [Null allowed when not required](#availability_anyOf_i0) | +| [Concept](#availability_anyOf_i1) | + +### `Distribution > availability > anyOf > Null allowed when not required` [#](#availability_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > availability > anyOf > Concept` [#](#availability_anyOf_i1) + +inline description of Concept + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Concept](./identifiers-and-relationships.md#concept) | + +## `Distribution > accessRestriction` [#](#accessRestriction) + +**Requirement:** Recommended + +List of access restrictions related to the distribution + +| **Type** | null or array of [AccessRestriction](./constraints-and-restrictions.md#access-restriction) classes | +| -------- | -------------------------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------------- | ----------------------------------------------------------- | +| [AccessRestriction](./constraints-and-restrictions.md#access-restriction) | Rules or indicators that describe who can access a resource | + +## `Distribution > cuiRestriction` [#](#cuiRestriction) + +**Requirement:** Recommended + +Controlled Unclassified Information restriction related to the distribution + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ---------------------------------------------------------- | +| [Null allowed when not required](#cuiRestriction_anyOf_i0) | +| [CUIRestriction](#cuiRestriction_anyOf_i1) | + +### `Distribution > cuiRestriction > anyOf > Null allowed when not required` [#](#cuiRestriction_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > cuiRestriction > anyOf > CUIRestriction` [#](#cuiRestriction_anyOf_i1) + +inline description of CUIRestriction + +| **Type** | `object` | +| ------------------------- | ------------------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [CUIRestriction](./constraints-and-restrictions.md#cui-restriction) | + +## `Distribution > describedBy` [#](#describedBy) + +**Title:** data dictionary + +**Requirement:** Recommended + +A distribution containing the Data Dictionary for this distribution + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------- | +| [Null allowed when not required](#describedBy_anyOf_i0) | +| [Distribution](#describedBy_anyOf_i1) | + +### `Distribution > describedBy > anyOf > Null allowed when not required` [#](#describedBy_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > describedBy > anyOf > Distribution` [#](#describedBy_anyOf_i1) + +inline description of the data dictionary + +| **Type** | `object` | +| ------------------------- | -------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Distribution](./distribution.md#root) | + +--- +**See Also:** (related supporting classes) + +## `Distribution > useRestriction` [#](#useRestriction) + +**Requirement:** Recommended + +Use restriction related to the distribution + +| **Type** | null or array of [UseRestriction](./constraints-and-restrictions.md#use-restriction) classes | +| -------- | -------------------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------------------- | --------------------------------------------------- | +| [UseRestriction](./constraints-and-restrictions.md#use-restriction) | Rules or legal limits on how a resource may be used | + +## `Distribution > accessRights` [#](#accessRights) + +**Requirement:** Optional + +Information about whether the distribution is publicly accessible, restricted, or not public + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"Public access without restrictions" +``` + +| Any of | +| -------------------------------------------------------- | +| [Null allowed when not required](#accessRights_anyOf_i0) | +| [item 1](#accessRights_anyOf_i1) | + +### `Distribution > accessRights > anyOf > Null allowed when not required` [#](#accessRights_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > accessRights > anyOf > item 1` [#](#accessRights_anyOf_i1) + +Text description of the access rights + +| **Type** | `string` | +| -------- | -------- | + +## `Distribution > conformsTo` [#](#conformsTo) + +**Title:** linked schemas + +**Requirement:** Optional + +List of standards, schemas, or reference systems the Distribution follows (prefer stable URIs when available) + +| **Type** | null or array of [Standard](./quality-governance.md#standard) classes | +| -------- | --------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------- | ------------------------------------------------------------- | +| [Standard](./quality-governance.md#standard) | A standard or specification that another resource conforms to | + +## `Distribution > description` [#](#description) + +**Requirement:** Recommended + +Plain-language summary of the distribution + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"Daily climate observations in CSV format." +``` + +```json +"A CSV file containing historical climate data including daily temperature and precipitation readings." +``` + +## `Distribution > format` [#](#format) + +**Requirement:** Recommended + +A human-readable description of the file format of the Distribution that provides useful information that might not be apparent from mediaType + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"CSV" +``` + +## `Distribution > identifier` [#](#identifier) + +**Requirement:** Optional + +The unique identifier for the Distribution (e.g. DOI, ISBN) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------ | +| [Null allowed when not required](#identifier_anyOf_i0) | +| [Identifier](#identifier_anyOf_i1) | + +### `Distribution > identifier > anyOf > Null allowed when not required` [#](#identifier_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > identifier > anyOf > Identifier` [#](#identifier_anyOf_i1) + +inline description of Identifier + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Identifier](./identifiers-and-relationships.md#identifier) | + +## `Distribution > otherIdentifier` [#](#otherIdentifier) + +**Requirement:** Optional + +A list of identifiers for the Distribution besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog + +| **Type** | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | +| -------- | ------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [Identifier](./identifiers-and-relationships.md#identifier) | A unique identifier and optionally it's scheme and other relevant information | + +## `Distribution > issued` [#](#issued) + +**Title:** release date + +**Requirement:** Optional + +The date of formal issuance (e.g., publication) of the Distribution + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2023-06-01" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#issued_anyOf_i0) | +| [Date string](#issued_anyOf_i1) | + +### `Distribution > issued > anyOf > Null allowed when not required` [#](#issued_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > issued > anyOf > Date string` [#](#issued_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------- | +| [item 0](#issued_anyOf_i1_anyOf_i0) | +| [item 1](#issued_anyOf_i1_anyOf_i1) | +| [item 2](#issued_anyOf_i1_anyOf_i2) | +| [item 3](#issued_anyOf_i1_anyOf_i3) | + +#### `Distribution > issued > anyOf > Date string > anyOf > item 0` [#](#issued_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Distribution > issued > anyOf > Date string > anyOf > item 1` [#](#issued_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Distribution > issued > anyOf > Date string > anyOf > item 2` [#](#issued_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Distribution > issued > anyOf > Date string > anyOf > item 3` [#](#issued_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Distribution > language` [#](#language) + +**Requirement:** Optional + +ISO 639-1 language code values used in the distribution metadata text, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"en" +``` + +```json +[ + "en", + "es" +] +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#language_anyOf_i0) | +| [Language code](#language_anyOf_i1) | +| [List of languages](#language_anyOf_i2) | + +### `Distribution > language > anyOf > Null allowed when not required` [#](#language_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > language > anyOf > Language code` [#](#language_anyOf_i1) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +### `Distribution > language > anyOf > List of languages` [#](#language_anyOf_i2) + +| **Type** | array of string | +| -------- | --------------- | + +| Each item of this array must be | Description | +| ----------------------------------------- | ----------- | +| [Language code](#language_anyOf_i2_items) | - | + +#### Language code [#](#language_anyOf_i2_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +## `Distribution > license` [#](#license) + +**Requirement:** Recommended + +License that governs how the distribution can be used or reused + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"https://creativecommons.org/publicdomain/zero/1.0/" +``` + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#license_anyOf_i0) | +| [item 1](#license_anyOf_i1) | + +### `Distribution > license > anyOf > Null allowed when not required` [#](#license_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > license > anyOf > item 1` [#](#license_anyOf_i1) + +Full text of the license + +| **Type** | `string` | +| -------- | -------- | + +## `Distribution > modified` [#](#modified) + +**Title:** last modified + +**Requirement:** Recommended + +The most recent date on which the Distribution was changed or modified + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-06-01" +``` + +```json +"2024-01-15" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#modified_anyOf_i0) | +| [Date string](#modified_anyOf_i1) | + +### `Distribution > modified > anyOf > Null allowed when not required` [#](#modified_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > modified > anyOf > Date string` [#](#modified_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------- | +| [item 0](#modified_anyOf_i1_anyOf_i0) | +| [item 1](#modified_anyOf_i1_anyOf_i1) | +| [item 2](#modified_anyOf_i1_anyOf_i2) | +| [item 3](#modified_anyOf_i1_anyOf_i3) | + +#### `Distribution > modified > anyOf > Date string > anyOf > item 0` [#](#modified_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Distribution > modified > anyOf > Date string > anyOf > item 1` [#](#modified_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Distribution > modified > anyOf > Date string > anyOf > item 2` [#](#modified_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Distribution > modified > anyOf > Date string > anyOf > item 3` [#](#modified_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Distribution > rights` [#](#rights) + +**Requirement:** Recommended + +Rights statements not already covered by license or accessRights, such as copyright or policy restrictions + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Examples:** + +```json +[ + "No rights reserved. This data is in the public domain." +] +``` + +```json +[ + "This data is in the public domain and may be used without restriction." +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ---------------------------------- | +| [rights items](#rights_items) | Full text of a statement of rights | + +### Array Item [#](#rights_items) + +Full text of a statement of rights + +| **Type** | `string` | +| -------- | -------- | + +## `Distribution > title` [#](#title) + +**Requirement:** Recommended + +Human-readable title of the distribution + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Climate Data CSV" +``` + +## `Distribution > hasQualityMeasurement` [#](#hasQualityMeasurement) + +**Title:** quality measurement + +**Requirement:** Optional + +Quality measurements for the distribution (for example, completeness, accuracy, or timeliness) + +| **Type** | null or array of [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) classes | +| -------- | ------------------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------------------- | ------------------------------------------------------------- | +| [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) | A measurement of a resource against a specific quality metric | + +## `Distribution > page` [#](#page) + +**Title:** documentation + +**Requirement:** Optional + +A page or document about this Distribution + +| **Type** | null or array of [Document](./quality-governance.md#document) classes | +| -------- | --------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------- | ----------------------------------------------------- | +| [Document](./quality-governance.md#document) | A publication or other document related to a resource | + +## `Distribution > image` [#](#image) + +**Requirement:** Optional + +A link to a thumbnail picture illustrating the content of the distribution + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------- | +| [Null allowed when not required](#image_anyOf_i0) | +| [Link](#image_anyOf_i1) | + +### `Distribution > image > anyOf > Null allowed when not required` [#](#image_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > image > anyOf > Link` [#](#image_anyOf_i1) + +The link to the image + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Distribution > checksum` [#](#checksum) + +**Requirement:** Optional + +Checksum used to verify that the downloadable file content has not changed + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#checksum_anyOf_i0) | +| [Checksum](#checksum_anyOf_i1) | + +### `Distribution > checksum > anyOf > Null allowed when not required` [#](#checksum_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Distribution > checksum > anyOf > Checksum` [#](#checksum_anyOf_i1) + +inline description of Checksum + +| **Type** | `object` | +| ------------------------- | ------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Checksum](./identifiers-and-relationships.md#checksum) | + +--- +**See Also:** (related supporting classes) diff --git a/jsonschema/docs/identifiers-and-relationships.md b/jsonschema/docs/identifiers-and-relationships.md new file mode 100644 index 00000000..6fc13bc1 --- /dev/null +++ b/jsonschema/docs/identifiers-and-relationships.md @@ -0,0 +1,1010 @@ +# Identifiers and Relationships + +Supporting classes for identifiers, relationships, checksums, and controlled concepts used to describe and connect resources. + + + +## Class Identifier [#](#identifier) + +A unique identifier and optionally it's scheme and other relevant information + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------- | +| [Simple string identifier](#identifier--anyOf_i0) | +| [Identifier as a complex object](#identifier--anyOf_i1) | + +## `Identifier > anyOf > Simple string identifier` [#](#identifier--anyOf_i0) + +| **Type** | `string` | +| -------- | -------- | + +## `Identifier > anyOf > Identifier as a complex object` [#](#identifier--anyOf_i1) + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Property | Type | Requirement Level | Title/Description | +| --------------------------------------- | ------------------ | ----------------- | ----------------------------------------------------------------- | +| [@id](#identifier--anyOf_i1_@id) | string | Optional | | +| [@type](#identifier--anyOf_i1_@type) | string | Optional | | +| [schemaAgency](#identifier--anyOf_i1_schemaAgency) | null or string | Optional | The name of the agency that issued the identifier | +| [creator](#identifier--anyOf_i1_creator) | More than one type | Optional | the agency that manages the identifier scheme | +| [issued](#identifier--anyOf_i1_issued) | More than one type | Optional | The date of formal issuance (e.g., publication) of the Identifier | +| [version](#identifier--anyOf_i1_version) | null or string | Optional | version of the identifier scheme | +| [notation](#identifier--anyOf_i1_notation) | null or string | Optional | abbreviation or code from code lists for an identifier | + +### `Identifier > anyOf > Identifier as a complex object > @id` [#](#identifier--anyOf_i1_@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +### `Identifier > anyOf > Identifier as a complex object > @type` [#](#identifier--anyOf_i1_@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | -------------- | +| **Default** | `"Identifier"` | + +### `Identifier > anyOf > Identifier as a complex object > schemaAgency` [#](#identifier--anyOf_i1_schemaAgency) + +**Requirement:** Optional + +The name of the agency that issued the identifier + +| **Type** | `null or string` | +| -------- | ---------------- | + +### `Identifier > anyOf > Identifier as a complex object > creator` [#](#identifier--anyOf_i1_creator) + +**Requirement:** Optional + +the agency that manages the identifier scheme + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------------ | +| [Null allowed when not required](#identifier--anyOf_i1_creator_anyOf_i0) | +| [Organization](#identifier--anyOf_i1_creator_anyOf_i1) | + +#### `Identifier > anyOf > Identifier as a complex object > creator > anyOf > Null allowed when not required` [#](#identifier--anyOf_i1_creator_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +#### `Identifier > anyOf > Identifier as a complex object > creator > anyOf > Organization` [#](#identifier--anyOf_i1_creator_anyOf_i1) + +inline description of the creator + +| **Type** | `object` | +| ------------------------- | ---------------------------------------- | +| **Additional properties** | Any type allowed | +| **Defined in** | [Organization](./agents.md#organization) | + +### `Identifier > anyOf > Identifier as a complex object > issued` [#](#identifier--anyOf_i1_issued) + +**Requirement:** Optional + +The date of formal issuance (e.g., publication) of the Identifier + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------------------------------- | +| [Null allowed when not required](#identifier--anyOf_i1_issued_anyOf_i0) | +| [Date string](#identifier--anyOf_i1_issued_anyOf_i1) | + +#### `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Null allowed when not required` [#](#identifier--anyOf_i1_issued_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +#### `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string` [#](#identifier--anyOf_i1_issued_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| -------------------------------------------- | +| [item 0](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i0) | +| [item 1](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i1) | +| [item 2](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i2) | +| [item 3](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i3) | + +##### `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 0` [#](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +##### `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 1` [#](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +##### `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 2` [#](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +##### `Identifier > anyOf > Identifier as a complex object > issued > anyOf > Date string > anyOf > item 3` [#](#identifier--anyOf_i1_issued_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +### `Identifier > anyOf > Identifier as a complex object > version` [#](#identifier--anyOf_i1_version) + +**Requirement:** Optional + +version of the identifier scheme + +| **Type** | `null or string` | +| -------- | ---------------- | + +### `Identifier > anyOf > Identifier as a complex object > notation` [#](#identifier--anyOf_i1_notation) + +**Requirement:** Optional + +abbreviation or code from code lists for an identifier + +| **Type** | `null or string` | +| -------- | ---------------- | + +--- + + + +## Class Relationship [#](#relationship) + +Additional information about how one resource is related to another + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Relationship", + "hadRole": "isInputTo", + "relation": "https://example.gov/models/climate-prediction" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------- | ------ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#relationship--@id) | string | Optional | | +| [@type](#relationship--@type) | string | Optional | | +| [hadRole](#relationship--hadRole) | string | Mandatory | The function of an entity or agent with respect to a dataset | +| [relation](#relationship--relation) | string | Mandatory | The entity related to the dataset. This string should unambiguously identify the related resource using an appropriate identifier. | + +## `Relationship > @id` [#](#relationship--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/relationships/dataset-001-data-provider" +``` + +## `Relationship > @type` [#](#relationship--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ---------------- | +| **Default** | `"Relationship"` | + +## `Relationship > hadRole` [#](#relationship--hadRole) + +**Title:** role + +**Requirement:** Mandatory + +The function of an entity or agent with respect to a dataset + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"isInputTo" +``` + +```json +"dataProvider" +``` + +## `Relationship > relation` [#](#relationship--relation) + +**Requirement:** Mandatory + +The entity related to the dataset. This string should unambiguously identify the related resource using an appropriate identifier. + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"https://example.gov/models/climate-prediction" +``` + +```json +"https://example.gov/organizations/national-weather-service" +``` + +--- + + + +## Class Checksum [#](#checksum) + +A mechanism that can be used to verify that the contents of a distribution have not changed + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Checksum", + "algorithm": "SHA-256", + "checksumValue": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------------------- | ------ | ----------------- | --------------------------------------------------------------------------------- | +| [@id](#checksum--@id) | string | Optional | | +| [@type](#checksum--@type) | string | Optional | | +| [algorithm](#checksum--algorithm) | string | Mandatory | The algorithm used to produce the checksum | +| [checksumValue](#checksum--checksumValue) | string | Mandatory | A lower case hexadecimal encoded digest value produced using a specific algorithm | + +## `Checksum > @id` [#](#checksum--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/checksums/dataset-001-sha256" +``` + +## `Checksum > @type` [#](#checksum--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ------------ | +| **Default** | `"Checksum"` | + +## `Checksum > algorithm` [#](#checksum--algorithm) + +**Requirement:** Mandatory + +The algorithm used to produce the checksum + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Example:** + +```json +"SHA-256" +``` + +## `Checksum > checksumValue` [#](#checksum--checksumValue) + +**Requirement:** Mandatory + +A lower case hexadecimal encoded digest value produced using a specific algorithm + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456" +``` + +```json +"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" +``` + +--- + + + +## Class Concept [#](#concept) + +A controlled term or label, optionally drawn from a concept scheme + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"Environment" +``` + +```json +"Climate Science" +``` + +```json +{ + "@type": "Concept", + "prefLabel": "Environment" +} +``` + +```json +{ + "@type": "Concept", + "prefLabel": "Climate Science", + "definition": "The scientific study of climate patterns and change.", + "inScheme": { + "@id": "https://example.gov/concept-schemes/science-domains", + "@type": "ConceptScheme", + "title": "Science Domains" + } +} +``` + +```json +{ + "@id": "https://example.gov/concepts/environment", + "@type": "Concept", + "prefLabel": "Environment", + "altLabel": "Ecology", + "definition": "The natural world, including air, water, land, plants, and animals, especially as affected by human activity.", + "notation": [ + "ENV", + "E01", + "ENVI" + ], + "inScheme": { + "@id": "https://example.gov/concept-schemes/data-themes", + "@type": "ConceptScheme", + "version": "2.0", + "description": "DCAT-US approved themes for categorizing datasets", + "title": "Data Themes" + } +} +``` + +| Any of | +| -------------------- | +| [Concept](#concept--anyOf_i0) | +| [item 1](#concept--anyOf_i1) | + +## `Concept > anyOf > Concept` [#](#concept--anyOf_i0) + +The value of the concept, expressed as a string. This is only used when the concept is not further described by the properties of the Concept object and is not linked to a concept scheme. + +| **Type** | `string` | +| -------- | -------- | + +**Examples:** + +```json +"Environment" +``` + +```json +"Climate Science" +``` + +## `Concept > anyOf > item 1` [#](#concept--anyOf_i1) + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +{ + "@type": "Concept", + "prefLabel": "Environment" +} +``` + +```json +{ + "@type": "Concept", + "prefLabel": "Climate Science", + "definition": "The scientific study of climate patterns and change.", + "inScheme": { + "@id": "https://example.gov/concept-schemes/science-domains", + "@type": "ConceptScheme", + "title": "Science Domains" + } +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ----------------------------------- | ------------------ | ----------------- | -------------------------------------------------------------- | +| [@id](#concept--anyOf_i1_@id) | string | Optional | | +| [@type](#concept--anyOf_i1_@type) | string | Optional | | +| [altLabel](#concept--anyOf_i1_altLabel) | null or string | Optional | Alternative label for a concept | +| [definition](#concept--anyOf_i1_definition) | null or string | Optional | Definition of the controlled vocabulary term | +| [inScheme](#concept--anyOf_i1_inScheme) | object | Optional | Concept scheme defining this concept | +| [notation](#concept--anyOf_i1_notation) | More than one type | Optional | List of abbreviations or codes from code lists for the Concept | +| [prefLabel](#concept--anyOf_i1_prefLabel) | string | Optional | Preferred label for the term | + +### `Concept > anyOf > item 1 > @id` [#](#concept--anyOf_i1_@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/concepts/environment" +``` + +### `Concept > anyOf > item 1 > @type` [#](#concept--anyOf_i1_@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ----------- | +| **Default** | `"Concept"` | + +### `Concept > anyOf > item 1 > altLabel` [#](#concept--anyOf_i1_altLabel) + +**Title:** alternate label + +**Requirement:** Optional + +Alternative label for a concept + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Ecology" +``` + +### `Concept > anyOf > item 1 > definition` [#](#concept--anyOf_i1_definition) + +**Requirement:** Optional + +Definition of the controlled vocabulary term + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"The scientific study of climate patterns and change." +``` + +```json +"The natural world, including air, water, land, plants, and animals, especially as affected by human activity." +``` + +### `Concept > anyOf > item 1 > inScheme` [#](#concept--anyOf_i1_inScheme) + +**Requirement:** Optional + +Concept scheme defining this concept + +| **Type** | `object` | +| ------------------------- | ------------------------------------------------------------------ | +| **Additional properties** | Any type allowed | +| **Defined in** | [ConceptScheme](./identifiers-and-relationships.md#concept-scheme) | + +**Examples:** + +```json +{ + "@id": "https://example.gov/concept-schemes/science-domains", + "@type": "ConceptScheme", + "title": "Science Domains" +} +``` + +```json +{ + "@id": "https://example.gov/concept-schemes/data-themes", + "@type": "ConceptScheme", + "version": "2.0", + "description": "DCAT-US approved themes for categorizing datasets", + "title": "Data Themes" +} +``` + +### `Concept > anyOf > item 1 > notation` [#](#concept--anyOf_i1_notation) + +**Requirement:** Optional + +List of abbreviations or codes from code lists for the Concept + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +[ + "ENV", + "E01", + "ENVI" +] +``` + +| Any of | +| ------------------------------------- | +| [item 0](#concept--anyOf_i1_notation_anyOf_i0) | +| [item 1](#concept--anyOf_i1_notation_anyOf_i1) | + +#### `Concept > anyOf > item 1 > notation > anyOf > item 0` [#](#concept--anyOf_i1_notation_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +#### `Concept > anyOf > item 1 > notation > anyOf > item 1` [#](#concept--anyOf_i1_notation_anyOf_i1) + +| **Type** | array of string | +| -------- | --------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------- | ----------- | +| [item 1 items](#concept--anyOf_i1_notation_anyOf_i1_items) | - | + +##### Array Item [#](#concept--anyOf_i1_notation_anyOf_i1_items) + +| **Type** | `string` | +| -------- | -------- | + +### `Concept > anyOf > item 1 > prefLabel` [#](#concept--anyOf_i1_prefLabel) + +**Title:** preferred label + +**Requirement:** Optional + +Preferred label for the term + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"Environment" +``` + +```json +"Climate Science" +``` + +--- + + + +## Class ConceptScheme [#](#concept-scheme) + +A controlled vocabulary or other list of approved terms for a concept + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "ConceptScheme", + "title": "Science Domains", + "description": "A classification scheme for scientific research domains.", + "issued": "2020-01-01" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------------- | ------------------ | ----------------- | ------------------------------------------------------------------------ | +| [@id](#concept-scheme--@id) | string | Optional | | +| [@type](#concept-scheme--@type) | string | Optional | | +| [version](#concept-scheme--version) | null or string | Optional | A version number or other version designation of the concept scheme | +| [created](#concept-scheme--created) | More than one type | Optional | The date on which the Concept Scheme was first created | +| [description](#concept-scheme--description) | null or string | Recommended | A description of the concept scheme | +| [issued](#concept-scheme--issued) | More than one type | Optional | The date of formal issuance (e.g., publication) of the concept scheme | +| [modified](#concept-scheme--modified) | More than one type | Optional | The most recent date at which the concept scheme was changed or modified | +| [title](#concept-scheme--title) | string | Mandatory | The title of the concept scheme | + +## `ConceptScheme > @id` [#](#concept-scheme--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/concept-schemes/data-classification" +``` + +## `ConceptScheme > @type` [#](#concept-scheme--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ----------------- | +| **Default** | `"ConceptScheme"` | + +## `ConceptScheme > version` [#](#concept-scheme--version) + +**Title:** version info + +**Requirement:** Optional + +A version number or other version designation of the concept scheme + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"2.0.1" +``` + +## `ConceptScheme > created` [#](#concept-scheme--created) + +**Title:** creation date + +**Requirement:** Optional + +The date on which the Concept Scheme was first created + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2020" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024-01-15" +``` + +```json +"2024-01" +``` + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#concept-scheme--created_anyOf_i0) | +| [Date string](#concept-scheme--created_anyOf_i1) | + +### `ConceptScheme > created > anyOf > Null allowed when not required` [#](#concept-scheme--created_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `ConceptScheme > created > anyOf > Date string` [#](#concept-scheme--created_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------ | +| [item 0](#concept-scheme--created_anyOf_i1_anyOf_i0) | +| [item 1](#concept-scheme--created_anyOf_i1_anyOf_i1) | +| [item 2](#concept-scheme--created_anyOf_i1_anyOf_i2) | +| [item 3](#concept-scheme--created_anyOf_i1_anyOf_i3) | + +#### `ConceptScheme > created > anyOf > Date string > anyOf > item 0` [#](#concept-scheme--created_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `ConceptScheme > created > anyOf > Date string > anyOf > item 1` [#](#concept-scheme--created_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `ConceptScheme > created > anyOf > Date string > anyOf > item 2` [#](#concept-scheme--created_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `ConceptScheme > created > anyOf > Date string > anyOf > item 3` [#](#concept-scheme--created_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `ConceptScheme > description` [#](#concept-scheme--description) + +**Requirement:** Recommended + +A description of the concept scheme + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"A classification scheme for scientific research domains." +``` + +```json +"A controlled vocabulary for classifying federal government data assets by sensitivity and access requirements." +``` + +## `ConceptScheme > issued` [#](#concept-scheme--issued) + +**Title:** publication date + +**Requirement:** Optional + +The date of formal issuance (e.g., publication) of the concept scheme + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2020-01-01" +``` + +```json +"2020" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024-01" +``` + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#concept-scheme--issued_anyOf_i0) | +| [Date string](#concept-scheme--issued_anyOf_i1) | + +### `ConceptScheme > issued > anyOf > Null allowed when not required` [#](#concept-scheme--issued_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `ConceptScheme > issued > anyOf > Date string` [#](#concept-scheme--issued_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------- | +| [item 0](#concept-scheme--issued_anyOf_i1_anyOf_i0) | +| [item 1](#concept-scheme--issued_anyOf_i1_anyOf_i1) | +| [item 2](#concept-scheme--issued_anyOf_i1_anyOf_i2) | +| [item 3](#concept-scheme--issued_anyOf_i1_anyOf_i3) | + +#### `ConceptScheme > issued > anyOf > Date string > anyOf > item 0` [#](#concept-scheme--issued_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `ConceptScheme > issued > anyOf > Date string > anyOf > item 1` [#](#concept-scheme--issued_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `ConceptScheme > issued > anyOf > Date string > anyOf > item 2` [#](#concept-scheme--issued_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `ConceptScheme > issued > anyOf > Date string > anyOf > item 3` [#](#concept-scheme--issued_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `ConceptScheme > modified` [#](#concept-scheme--modified) + +**Title:** update/modification date + +**Requirement:** Optional + +The most recent date at which the concept scheme was changed or modified + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024-01-15" +``` + +```json +"2024-01" +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#concept-scheme--modified_anyOf_i0) | +| [Date string](#concept-scheme--modified_anyOf_i1) | + +### `ConceptScheme > modified > anyOf > Null allowed when not required` [#](#concept-scheme--modified_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `ConceptScheme > modified > anyOf > Date string` [#](#concept-scheme--modified_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------- | +| [item 0](#concept-scheme--modified_anyOf_i1_anyOf_i0) | +| [item 1](#concept-scheme--modified_anyOf_i1_anyOf_i1) | +| [item 2](#concept-scheme--modified_anyOf_i1_anyOf_i2) | +| [item 3](#concept-scheme--modified_anyOf_i1_anyOf_i3) | + +#### `ConceptScheme > modified > anyOf > Date string > anyOf > item 0` [#](#concept-scheme--modified_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `ConceptScheme > modified > anyOf > Date string > anyOf > item 1` [#](#concept-scheme--modified_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `ConceptScheme > modified > anyOf > Date string > anyOf > item 2` [#](#concept-scheme--modified_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `ConceptScheme > modified > anyOf > Date string > anyOf > item 3` [#](#concept-scheme--modified_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `ConceptScheme > title` [#](#concept-scheme--title) + +**Requirement:** Mandatory + +The title of the concept scheme + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"Science Domains" +``` + +```json +"Federal Data Classification Scheme" +``` diff --git a/jsonschema/docs/index.md b/jsonschema/docs/index.md deleted file mode 100644 index 7e8a5a56..00000000 --- a/jsonschema/docs/index.md +++ /dev/null @@ -1,43 +0,0 @@ -# DCAT-US 3 Schema Documentation - -DCAT-US 3 is a schema for metadata about data assets. It's defined as a set of -JSON Schema files divided into "classes" that specify different types of information -that could appear in the metadata. - -## Catalog - -The top level class for DCAT-US 3 is [Catalog](./Catalog.md) which collects -information about other data elements and information about the overall -collection such as publisher, keywords, and contact information. - -## Other classes - -Inside of the DCAT-US 3 catalog, other classes are used to specify the format -of a particular metadata element. Alphabetically: - -- [AccessRestriction](./AccessRestriction.md) -- [Activity](./Activity.md) -- [Address](./Address.md) -- [Agent](./Agent.md) -- [Attribution](./Attribution.md) -- [Catalog](./Catalog.md) -- [CatalogRecord](./CatalogRecord.md) -- [Checksum](./Checksum.md) -- [Concept](./Concept.md) -- [ConceptScheme](./ConceptScheme.md) -- [CUIRestriction](./CUIRestriction.md) -- [DataService](./DataService.md) -- [Dataset](./Dataset.md) -- [DatasetSeries](./DatasetSeries.md) -- [Distribution](./Distribution.md) -- [Document](./Document.md) -- [Identifier](./Identifier.md) -- [Kind](./Kind.md) -- [Location](./Location.md) -- [Metric](./Metric.md) -- [Organization](./Organization.md) -- [PeriodOfTime](./PeriodOfTime.md) -- [QualityMeasurement](./QualityMeasurement.md) -- [Relationship](./Relationship.md) -- [Standard](./Standard.md) -- [UseRestriction](./UseRestriction.md) diff --git a/jsonschema/docs/quality-governance.md b/jsonschema/docs/quality-governance.md new file mode 100644 index 00000000..983cc9ff --- /dev/null +++ b/jsonschema/docs/quality-governance.md @@ -0,0 +1,2229 @@ +# Quality and Governance + +Supporting classes for standards, documents, catalog records, data services, and attribution used in governance and quality description. + + + +## Class Standard [#](#standard) + +A standard or specification that another resource conforms to + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Standard", + "title": "DCAT-US 3.0", + "description": "Data Catalog Vocabulary - United States Profile version 3.0", + "issued": "2024-01-15", + "identifier": { + "@type": "Identifier", + "notation": "DCAT-US-3.0", + "schemaAgency": "U.S. General Services Administration" + }, + "inScheme": { + "@type": "ConceptScheme", + "title": "Federal Data Standards", + "description": "A collection of data standards used by federal agencies" + } +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ------------------------------------ | ------------------------------------------------------------------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| [@id](#standard--@id) | string | Optional | | +| [@type](#standard--@type) | string | Optional | | +| [created](#standard--created) | More than one type | Optional | The date on which the Standard has been first created | +| [description](#standard--description) | null or string | Recommended | Plain-language summary of the standard | +| [identifier](#standard--identifier) | More than one type | Recommended | The unique identifier for the Standard, e.g. the URI or other unique identifier in the context of the Catalog | +| [otherIdentifier](#standard--otherIdentifier) | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | Optional | A list of identifiers for the Standard besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog | +| [issued](#standard--issued) | More than one type | Recommended | The date of formal issuance (e.g., publication) of the Standard | +| [modified](#standard--modified) | More than one type | Optional | The most recent date on which the Standard was changed or modified | +| [title](#standard--title) | null or string | Recommended | Human-readable title of the standard | +| [category](#standard--category) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of categories for the Standard | +| [inScheme](#standard--inScheme) | More than one type | Recommended | The reference register to which the Standard belongs | + +## `Standard > @id` [#](#standard--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/standards/dcat-us-3" +``` + +## `Standard > @type` [#](#standard--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ------------ | +| **Default** | `"Standard"` | + +## `Standard > created` [#](#standard--created) + +**Title:** creation date + +**Requirement:** Optional + +The date on which the Standard has been first created + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2023-01-01" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#standard--created_anyOf_i0) | +| [Date string](#standard--created_anyOf_i1) | + +### `Standard > created > anyOf > Null allowed when not required` [#](#standard--created_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Standard > created > anyOf > Date string` [#](#standard--created_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------ | +| [item 0](#standard--created_anyOf_i1_anyOf_i0) | +| [item 1](#standard--created_anyOf_i1_anyOf_i1) | +| [item 2](#standard--created_anyOf_i1_anyOf_i2) | +| [item 3](#standard--created_anyOf_i1_anyOf_i3) | + +#### `Standard > created > anyOf > Date string > anyOf > item 0` [#](#standard--created_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Standard > created > anyOf > Date string > anyOf > item 1` [#](#standard--created_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Standard > created > anyOf > Date string > anyOf > item 2` [#](#standard--created_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Standard > created > anyOf > Date string > anyOf > item 3` [#](#standard--created_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Standard > description` [#](#standard--description) + +**Requirement:** Recommended + +Plain-language summary of the standard + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"Data Catalog Vocabulary - United States Profile version 3.0" +``` + +```json +"The DCAT-US 3.0 schema defines a standard metadata format for data catalogs in the United States government, based on W3C DCAT." +``` + +## `Standard > identifier` [#](#standard--identifier) + +**Requirement:** Recommended + +The unique identifier for the Standard, e.g. the URI or other unique identifier in the context of the Catalog + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------ | +| [Null allowed when not required](#standard--identifier_anyOf_i0) | +| [Identifier](#standard--identifier_anyOf_i1) | + +### `Standard > identifier > anyOf > Null allowed when not required` [#](#standard--identifier_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Standard > identifier > anyOf > Identifier` [#](#standard--identifier_anyOf_i1) + +inline description of Identifier + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Defined in** | [Identifier](./identifiers-and-relationships.md#identifier) | + +## `Standard > otherIdentifier` [#](#standard--otherIdentifier) + +**Requirement:** Optional + +A list of identifiers for the Standard besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog + +| **Type** | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | +| -------- | ------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [Identifier](./identifiers-and-relationships.md#identifier) | A unique identifier and optionally it's scheme and other relevant information | + +## `Standard > issued` [#](#standard--issued) + +**Requirement:** Recommended + +The date of formal issuance (e.g., publication) of the Standard + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-01-15" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#standard--issued_anyOf_i0) | +| [Date string](#standard--issued_anyOf_i1) | + +### `Standard > issued > anyOf > Null allowed when not required` [#](#standard--issued_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Standard > issued > anyOf > Date string` [#](#standard--issued_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------- | +| [item 0](#standard--issued_anyOf_i1_anyOf_i0) | +| [item 1](#standard--issued_anyOf_i1_anyOf_i1) | +| [item 2](#standard--issued_anyOf_i1_anyOf_i2) | +| [item 3](#standard--issued_anyOf_i1_anyOf_i3) | + +#### `Standard > issued > anyOf > Date string > anyOf > item 0` [#](#standard--issued_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Standard > issued > anyOf > Date string > anyOf > item 1` [#](#standard--issued_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Standard > issued > anyOf > Date string > anyOf > item 2` [#](#standard--issued_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Standard > issued > anyOf > Date string > anyOf > item 3` [#](#standard--issued_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Standard > modified` [#](#standard--modified) + +**Title:** last modified + +**Requirement:** Optional + +The most recent date on which the Standard was changed or modified + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-06-01" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#standard--modified_anyOf_i0) | +| [Date string](#standard--modified_anyOf_i1) | + +### `Standard > modified > anyOf > Null allowed when not required` [#](#standard--modified_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Standard > modified > anyOf > Date string` [#](#standard--modified_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------- | +| [item 0](#standard--modified_anyOf_i1_anyOf_i0) | +| [item 1](#standard--modified_anyOf_i1_anyOf_i1) | +| [item 2](#standard--modified_anyOf_i1_anyOf_i2) | +| [item 3](#standard--modified_anyOf_i1_anyOf_i3) | + +#### `Standard > modified > anyOf > Date string > anyOf > item 0` [#](#standard--modified_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Standard > modified > anyOf > Date string > anyOf > item 1` [#](#standard--modified_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Standard > modified > anyOf > Date string > anyOf > item 2` [#](#standard--modified_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Standard > modified > anyOf > Date string > anyOf > item 3` [#](#standard--modified_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Standard > title` [#](#standard--title) + +**Requirement:** Recommended + +Human-readable title of the standard + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"DCAT-US 3.0" +``` + +```json +"DCAT-US 3.0 - Data Catalog Vocabulary United States Profile" +``` + +## `Standard > category` [#](#standard--category) + +**Requirement:** Optional + +List of categories for the Standard + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `Standard > inScheme` [#](#standard--inScheme) + +**Requirement:** Recommended + +The reference register to which the Standard belongs + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#standard--inScheme_anyOf_i0) | +| [ConceptScheme](#standard--inScheme_anyOf_i1) | + +### `Standard > inScheme > anyOf > Null allowed when not required` [#](#standard--inScheme_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Standard > inScheme > anyOf > ConceptScheme` [#](#standard--inScheme_anyOf_i1) + +inline description of ConceptScheme + +| **Type** | `object` | +| ------------------------- | ------------------------------------------------------------------ | +| **Additional properties** | Any type allowed | +| **Same definition as** | [ConceptScheme](./identifiers-and-relationships.md#concept-scheme) | + +--- + + + +## Class Document [#](#document) + +A publication or other document related to a resource + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Document", + "title": "Climate Data User Guide", + "description": "A guide for accessing and using the National Climate Data Center's data products.", + "accessURL": "https://example.gov/docs/climate-user-guide", + "mediaType": "application/pdf", + "identifier": "NCDC-UG-2024-001", + "issued": "2024-03-15", + "publisher": [ + { + "@type": "Organization", + "name": "National Climate Data Center" + } + ], + "bibliographicCitation": "National Climate Data Center. (2024). Climate Data User Guide. Retrieved from https://example.gov/docs/climate-user-guide" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ------------------------------------------------ | ------------------------------------------------------------------------------------ | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [@id](#document--@id) | string | Optional | | +| [@type](#document--@type) | string | Optional | | +| [accessURL](#document--accessURL) | More than one type | Optional | A URL that gives access to the Document | +| [downloadURL](#document--downloadURL) | More than one type | Optional | A URL that is a direct link to a downloadable file of the Document in a given format | +| [creator](#document--creator) | null or array of [Kind](./agents.md#kind) classes | Optional | The individual(s) responsible for creating the Document | +| [mediaType](#document--mediaType) | null or string | Optional | The file format of the Document as defined in the official register of media types managed by IANA: https://www.iana.org/assignments/media-types/media-types.xhtml | +| [abstract](#document--abstract) | null or string | Optional | Text abstract of the Document | +| [bibliographicCitation](#document--bibliographicCitation) | null or string | Recommended | Bibliographic citation as text | +| [conformsTo](#document--conformsTo) | null or array of [Standard](./quality-governance.md#standard) classes | Optional | List of standards or specifications the document follows | +| [corporateCreator](#document--corporateCreator) | null or array of [Organization](./agents.md#organization) classes | Optional | The corporate organization(s) responsible for creating the Document | +| [description](#document--description) | null or string | Recommended | Plain-language summary of the document | +| [identifier](#document--identifier) | More than one type | Recommended | The unique identifier for the Document (e.g. DOI, ISBN) | +| [otherIdentifier](#document--otherIdentifier) | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | Optional | A list of identifiers for the Document besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog | +| [issued](#document--issued) | More than one type | Recommended | Publication date of the Document | +| [publisher](#document--publisher) | null or array of [Organization](./agents.md#organization) classes | Recommended | The organization(s) that published the Document | +| [title](#document--title) | string | Mandatory | The title of the Document | +| [category](#document--category) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of categories/genres for the Document | + +## `Document > @id` [#](#document--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/documents/climate-user-guide-001" +``` + +## `Document > @type` [#](#document--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ------------ | +| **Default** | `"Document"` | + +## `Document > accessURL` [#](#document--accessURL) + +**Requirement:** Optional + +A URL that gives access to the Document + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"https://example.gov/docs/climate-user-guide" +``` + +| Any of | +| ----------------------------------------------------- | +| [Null allowed when not required](#document--accessURL_anyOf_i0) | +| [URL](#document--accessURL_anyOf_i1) | + +### `Document > accessURL > anyOf > Null allowed when not required` [#](#document--accessURL_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Document > accessURL > anyOf > URL` [#](#document--accessURL_anyOf_i1) + +reference iri of Document + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Document > downloadURL` [#](#document--downloadURL) + +**Requirement:** Optional + +A URL that is a direct link to a downloadable file of the Document in a given format + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"https://example.gov/docs/climate-user-guide.pdf" +``` + +| Any of | +| ------------------------------------------------------- | +| [Null allowed when not required](#document--downloadURL_anyOf_i0) | +| [URL](#document--downloadURL_anyOf_i1) | + +### `Document > downloadURL > anyOf > Null allowed when not required` [#](#document--downloadURL_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Document > downloadURL > anyOf > URL` [#](#document--downloadURL_anyOf_i1) + +reference iri of Document + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `Document > creator` [#](#document--creator) + +**Title:** author + +**Requirement:** Optional + +The individual(s) responsible for creating the Document + +| **Type** | null or array of [Kind](./agents.md#kind) classes | +| -------- | ------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | ----------------------------------------------- | +| [Kind](./agents.md#kind) | Contact information for an individual or entity | + +## `Document > mediaType` [#](#document--mediaType) + +**Requirement:** Optional + +The file format of the Document as defined in the official register of media types managed by IANA: https://www.iana.org/assignments/media-types/media-types.xhtml + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"application/pdf" +``` + +## `Document > abstract` [#](#document--abstract) + +**Requirement:** Optional + +Text abstract of the Document + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"This document provides detailed instructions for using climate data products, including API access, file formats, and data interpretation guidelines." +``` + +## `Document > bibliographicCitation` [#](#document--bibliographicCitation) + +**Requirement:** Recommended + +Bibliographic citation as text + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"National Climate Data Center. (2024). Climate Data User Guide. Retrieved from https://example.gov/docs/climate-user-guide" +``` + +```json +"National Climate Data Center. (2024). Climate Data User Guide. U.S. Department of Commerce." +``` + +## `Document > conformsTo` [#](#document--conformsTo) + +**Requirement:** Optional + +List of standards or specifications the document follows + +| **Type** | null or array of [Standard](./quality-governance.md#standard) classes | +| -------- | --------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------- | ------------------------------------------------------------- | +| [Standard](./quality-governance.md#standard) | A standard or specification that another resource conforms to | + +## `Document > corporateCreator` [#](#document--corporateCreator) + +**Title:** corporate author + +**Requirement:** Optional + +The corporate organization(s) responsible for creating the Document + +| **Type** | null or array of [Organization](./agents.md#organization) classes | +| -------- | ----------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ---------------------------------------- | --------------------------------------------------------------------------------- | +| [Organization](./agents.md#organization) | An organization involved with a resource, including parent or child organizations | + +## `Document > description` [#](#document--description) + +**Requirement:** Recommended + +Plain-language summary of the document + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"A guide for accessing and using the National Climate Data Center's data products." +``` + +```json +"A comprehensive guide for accessing and using the National Climate Data Center's data products and services." +``` + +## `Document > identifier` [#](#document--identifier) + +**Requirement:** Recommended + +The unique identifier for the Document (e.g. DOI, ISBN) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------ | +| [Null allowed when not required](#document--identifier_anyOf_i0) | +| [Identifier](#document--identifier_anyOf_i1) | + +### `Document > identifier > anyOf > Null allowed when not required` [#](#document--identifier_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Document > identifier > anyOf > Identifier` [#](#document--identifier_anyOf_i1) + +inline description of Identifier + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Identifier](./identifiers-and-relationships.md#identifier) | + +## `Document > otherIdentifier` [#](#document--otherIdentifier) + +**Requirement:** Optional + +A list of identifiers for the Document besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog + +| **Type** | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | +| -------- | ------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [Identifier](./identifiers-and-relationships.md#identifier) | A unique identifier and optionally it's scheme and other relevant information | + +## `Document > issued` [#](#document--issued) + +**Title:** publication date + +**Requirement:** Recommended + +Publication date of the Document + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-01-15" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#document--issued_anyOf_i0) | +| [item 1](#document--issued_anyOf_i1) | + +### `Document > issued > anyOf > Null allowed when not required` [#](#document--issued_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Document > issued > anyOf > item 1` [#](#document--issued_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------- | +| [item 0](#document--issued_anyOf_i1_anyOf_i0) | +| [item 1](#document--issued_anyOf_i1_anyOf_i1) | +| [item 2](#document--issued_anyOf_i1_anyOf_i2) | +| [item 3](#document--issued_anyOf_i1_anyOf_i3) | + +#### `Document > issued > anyOf > item 1 > anyOf > item 0` [#](#document--issued_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `Document > issued > anyOf > item 1 > anyOf > item 1` [#](#document--issued_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `Document > issued > anyOf > item 1 > anyOf > item 2` [#](#document--issued_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `Document > issued > anyOf > item 1 > anyOf > item 3` [#](#document--issued_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `Document > publisher` [#](#document--publisher) + +**Requirement:** Recommended + +The organization(s) that published the Document + +| **Type** | null or array of [Organization](./agents.md#organization) classes | +| -------- | ----------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ---------------------------------------- | --------------------------------------------------------------------------------- | +| [Organization](./agents.md#organization) | An organization involved with a resource, including parent or child organizations | + +## `Document > title` [#](#document--title) + +**Requirement:** Mandatory + +The title of the Document + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Example:** + +```json +"Climate Data User Guide" +``` + +## `Document > category` [#](#document--category) + +**Requirement:** Optional + +List of categories/genres for the Document + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +--- + + + +## Class CatalogRecord [#](#catalog-record) + +A record in a catalog, describing the registration of a single resource + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "CatalogRecord", + "modified": "2024-06-15", + "primaryTopic": "https://example.gov/datasets/climate-data-2024", + "title": "Climate Data 2024 Catalog Entry", + "issued": [ + "2024-01-15" + ], + "status": "published", + "conformsTo": { + "@type": "Standard", + "title": "DCAT-US 3.0" + } +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ------------------------------ | ----------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [@id](#catalog-record--@id) | string | Optional | | +| [@type](#catalog-record--@type) | string | Optional | | +| [status](#catalog-record--status) | More than one type | Recommended | The status of the catalog record in the context of editorial flow of the dataset and data service descriptions | +| [conformsTo](#catalog-record--conformsTo) | More than one type | Recommended | An Application Profile that the Catalog Record's metadata conforms to | +| [description](#catalog-record--description) | null or array of string | Optional | A list of free-text accounts of the catalog record | +| [issued](#catalog-record--issued) | null or array of object | Optional | List of dates on which the catalog record was included in the catalog | +| [language](#catalog-record--language) | More than one type | Optional | Language code used in catalog record metadata text, using ISO 639-1 values such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html | +| [modified](#catalog-record--modified) | More than one type | Mandatory | The most recent date on which the catalog record was changed or modified | +| [source](#catalog-record--source) | null or string | Optional | The original metadata that was used in creating metadata for the items in the catalog record, either a URL referencing the source metadata or a string of the source metadata itself | +| [title](#catalog-record--title) | null or string | Optional | A name given to the Catalog Record | +| [primaryTopic](#catalog-record--primaryTopic) | string | Mandatory | A link to the Dataset, Data service or Catalog described in the Catalog Record | + +## `CatalogRecord > @id` [#](#catalog-record--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/catalog-records/climate-dataset-record-001" +``` + +## `CatalogRecord > @type` [#](#catalog-record--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ----------------- | +| **Default** | `"CatalogRecord"` | + +## `CatalogRecord > status` [#](#catalog-record--status) + +**Title:** change type + +**Requirement:** Recommended + +The status of the catalog record in the context of editorial flow of the dataset and data service descriptions + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| -------------------------------------------------- | +| [Null allowed when not required](#catalog-record--status_anyOf_i0) | +| [Concept](#catalog-record--status_anyOf_i1) | + +### `CatalogRecord > status > anyOf > Null allowed when not required` [#](#catalog-record--status_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `CatalogRecord > status > anyOf > Concept` [#](#catalog-record--status_anyOf_i1) + +inline description of status + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Defined in** | [Concept](./identifiers-and-relationships.md#concept) | + +## `CatalogRecord > conformsTo` [#](#catalog-record--conformsTo) + +**Title:** application profile + +**Requirement:** Recommended + +An Application Profile that the Catalog Record's metadata conforms to + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------------------------ | +| [Null allowed when not required](#catalog-record--conformsTo_anyOf_i0) | +| [Standard](#catalog-record--conformsTo_anyOf_i1) | + +### `CatalogRecord > conformsTo > anyOf > Null allowed when not required` [#](#catalog-record--conformsTo_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `CatalogRecord > conformsTo > anyOf > Standard` [#](#catalog-record--conformsTo_anyOf_i1) + +inline description of application profile + +| **Type** | `object` | +| ------------------------- | -------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Defined in** | [Standard](./quality-governance.md#standard) | + +## `CatalogRecord > description` [#](#catalog-record--description) + +**Title:** Descriptions + +**Requirement:** Optional + +A list of free-text accounts of the catalog record + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "This catalog record describes the registration of the Climate Data 2023 dataset.", + "Contains metadata about when the dataset was added and last updated." +] +``` + +| Each item of this array must be | Description | +| ---------------------------------------- | ----------- | +| [Description string](#catalog-record--description_items) | - | + +### Description string [#](#catalog-record--description_items) + +| **Type** | `string` | +| -------- | -------- | + +## `CatalogRecord > issued` [#](#catalog-record--issued) + +**Title:** listing date + +**Requirement:** Optional + +List of dates on which the catalog record was included in the catalog + +| **Type** | null or array of object | +| -------- | ----------------------- | + +**Examples:** + +```json +[ + "2024-01-15T10:30:00Z" +] +``` + +```json +[ + "2024-01-15" +] +``` + +```json +[ + "2024" +] +``` + +```json +[ + "2024-01" +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [Date string](#catalog-record--issued_items) | - | + +### Date string [#](#catalog-record--issued_items) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| -------------------------------- | +| [item 0](#catalog-record--issued_items_anyOf_i0) | +| [item 1](#catalog-record--issued_items_anyOf_i1) | +| [item 2](#catalog-record--issued_items_anyOf_i2) | +| [item 3](#catalog-record--issued_items_anyOf_i3) | + +#### `CatalogRecord > issued > Date string > anyOf > item 0` [#](#catalog-record--issued_items_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `CatalogRecord > issued > Date string > anyOf > item 1` [#](#catalog-record--issued_items_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `CatalogRecord > issued > Date string > anyOf > item 2` [#](#catalog-record--issued_items_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `CatalogRecord > issued > Date string > anyOf > item 3` [#](#catalog-record--issued_items_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `CatalogRecord > language` [#](#catalog-record--language) + +**Requirement:** Optional + +Language code used in catalog record metadata text, using ISO 639-1 values such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"en" +``` + +```json +[ + "en", + "es" +] +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#catalog-record--language_anyOf_i0) | +| [Language code](#catalog-record--language_anyOf_i1) | +| [Array of language codes](#catalog-record--language_anyOf_i2) | + +### `CatalogRecord > language > anyOf > Null allowed when not required` [#](#catalog-record--language_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `CatalogRecord > language > anyOf > Language code` [#](#catalog-record--language_anyOf_i1) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +### `CatalogRecord > language > anyOf > Array of language codes` [#](#catalog-record--language_anyOf_i2) + +| **Type** | array of string | +| -------- | --------------- | + +| Each item of this array must be | Description | +| ----------------------------------------- | ----------- | +| [Language code](#catalog-record--language_anyOf_i2_items) | - | + +#### Language code [#](#catalog-record--language_anyOf_i2_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +## `CatalogRecord > modified` [#](#catalog-record--modified) + +**Title:** update/modification date + +**Requirement:** Mandatory + +The most recent date on which the catalog record was changed or modified + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-06-15" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| ---------------------------- | +| [item 0](#catalog-record--modified_anyOf_i0) | +| [item 1](#catalog-record--modified_anyOf_i1) | +| [item 2](#catalog-record--modified_anyOf_i2) | +| [item 3](#catalog-record--modified_anyOf_i3) | + +### `CatalogRecord > modified > anyOf > item 0` [#](#catalog-record--modified_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +### `CatalogRecord > modified > anyOf > item 1` [#](#catalog-record--modified_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +### `CatalogRecord > modified > anyOf > item 2` [#](#catalog-record--modified_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +### `CatalogRecord > modified > anyOf > item 3` [#](#catalog-record--modified_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `CatalogRecord > source` [#](#catalog-record--source) + +**Title:** source metadata + +**Requirement:** Optional + +The original metadata that was used in creating metadata for the items in the catalog record, either a URL referencing the source metadata or a string of the source metadata itself + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"Original metadata harvested from NOAA data portal" +``` + +## `CatalogRecord > title` [#](#catalog-record--title) + +**Requirement:** Optional + +A name given to the Catalog Record + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"Climate Data 2024 Catalog Entry" +``` + +```json +"Climate Data 2023 Catalog Record" +``` + +## `CatalogRecord > primaryTopic` [#](#catalog-record--primaryTopic) + +**Requirement:** Mandatory + +A link to the Dataset, Data service or Catalog described in the Catalog Record + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"https://example.gov/datasets/climate-data-2024" +``` + +```json +"https://example.gov/datasets/climate-data-2023" +``` + +--- + + + +## Class DataService [#](#data-service) + +A service that provides access to data or data processing functions + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "DataService", + "title": "Climate Data API", + "description": "RESTful API providing access to historical climate observations.", + "endpointURL": [ + "https://api.example.gov/climate/v1" + ], + "endpointDescription": [ + "https://api.example.gov/climate/v1/openapi.json" + ], + "contactPoint": [ + { + "fn": "API Support Team", + "hasEmail": "mailto:api-support@example.gov" + } + ], + "publisher": { + "name": "National Climate Data Center" + }, + "keyword": [ + "climate", + "weather", + "API" + ], + "license": "https://creativecommons.org/publicdomain/zero/1.0/", + "servesDataset": [ + { + "@id": "https://example.gov/datasets/climate-observations-2024", + "@type": "Dataset", + "title": "Climate Observations 2024", + "description": "Annual climate observation data.", + "contactPoint": { + "fn": "Climate Support", + "hasEmail": "mailto:climate@example.gov" + }, + "publisher": { + "name": "National Climate Data Center" + }, + "identifier": "https://example.gov/datasets/climate-observations-2024" + } + ], + "identifier": "https://example.gov/services/climate-api" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#data-service--@id) | string | Optional | | +| [@type](#data-service--@type) | string | Optional | | +| [contactPoint](#data-service--contactPoint) | array of [Kind](./agents.md#kind) classes | Mandatory | Contact information for questions about the Data Service. Include an email address that is continuously monitored | +| [endpointDescription](#data-service--endpointDescription) | null or array of string | Recommended | List of endpoint descriptions with operations and parameters (for example, OpenAPI or similar service documentation) | +| [endpointURL](#data-service--endpointURL) | array of string | Mandatory | A list of root locations or primary endpoints of the service (a Web-resolvable IRI) | +| [keyword](#data-service--keyword) | null or array of string | Optional | List of keywords or tags describing the data service | +| [servesDataset](#data-service--servesDataset) | null or array of [Dataset](./dataset.md#root) classes | Recommended | List of datasets this service provides access to | +| [spatialResolutionInMeters](#data-service--spatialResolutionInMeters) | null or string | Optional | The minimum spatial separation resolvable in a Data Service, measured in meters | +| [temporalResolution](#data-service--temporalResolution) | null or string | Optional | The minimum time period resolvable by the Data Service | +| [theme](#data-service--theme) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of themes or categories for the data service | +| [accessRights](#data-service--accessRights) | More than one type | Optional | Information about whether the data service is publicly accessible, restricted, or not public | +| [conformsTo](#data-service--conformsTo) | null or array of [Standard](./quality-governance.md#standard) classes | Optional | List of general standards or specifications that the Data Service endpoints implement | +| [created](#data-service--created) | More than one type | Optional | The date on which the Data Service was first created | +| [creator](#data-service--creator) | null or array of [Agent](./agents.md#agent) classes | Optional | List of agents primarily responsible for producing the Data Service | +| [description](#data-service--description) | null or string | Optional | Plain-language summary of the data service | +| [identifier](#data-service--identifier) | More than one type | Optional | The unique identifier for the Data Service, e.g. the URI or other unique identifier in the context of the Catalog | +| [otherIdentifier](#data-service--otherIdentifier) | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | Optional | A list of identifiers for the Data Service besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog | +| [language](#data-service--language) | More than one type | Optional | ISO 639-1 language code values supported by the data service, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html | +| [license](#data-service--license) | More than one type | Recommended | License that governs how the data service can be used or reused | +| [modified](#data-service--modified) | More than one type | Optional | The most recent date on which the Data Service was changed or modified | +| [publisher](#data-service--publisher) | object | Mandatory | Person or organization responsible for publishing and making the data service available | +| [rights](#data-service--rights) | null or array of string | Optional | Rights statements not already covered by license or accessRights, such as copyright or policy restrictions | +| [rightsHolder](#data-service--rightsHolder) | null or array of [Organization](./agents.md#organization) classes | Optional | A list of Agents (organizations) holding rights on the Data Service | +| [spatial](#data-service--spatial) | null or array of [Location](./temporal-spatial-metrics.md#location) classes | Optional | A geographic region that is covered by the Data Service | +| [temporal](#data-service--temporal) | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | Optional | Time periods covered by the data service | +| [title](#data-service--title) | string | Mandatory | Human-readable title of the data service | +| [category](#data-service--category) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of high-level categories for the data service | +| [hasQualityMeasurement](#data-service--hasQualityMeasurement) | null or array of [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) classes | Optional | Quality measurements for the data service (for example, availability, response time, or reliability) | +| [qualifiedAttribution](#data-service--qualifiedAttribution) | null or array of [Attribution](./quality-governance.md#attribution) classes | Optional | List of agents with specific responsibilities for the data service | +| [wasUsedBy](#data-service--wasUsedBy) | null or array of [Activity](./temporal-spatial-metrics.md#activity) classes | Optional | List of activities that used or tested the data service | + +## `DataService > @id` [#](#data-service--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/data-services/climate-api-001" +``` + +## `DataService > @type` [#](#data-service--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | --------------- | +| **Default** | `"DataService"` | + +## `DataService > contactPoint` [#](#data-service--contactPoint) + +**Requirement:** Mandatory + +Contact information for questions about the Data Service. Include an email address that is continuously monitored + +| **Type** | array of [Kind](./agents.md#kind) classes | +| ------------ | ----------------------------------------- | +| **Required** | Yes | + +| Each item of this array must be | Description | +| ------------------------------- | ----------------------------------------------- | +| [Kind](./agents.md#kind) | Contact information for an individual or entity | + +## `DataService > endpointDescription` [#](#data-service--endpointDescription) + +**Requirement:** Recommended + +List of endpoint descriptions with operations and parameters (for example, OpenAPI or similar service documentation) + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Examples:** + +```json +[ + "https://api.example.gov/climate/v1/openapi.json" +] +``` + +```json +[ + "https://api.example.gov/climate/docs/openapi.json" +] +``` + +| Each item of this array must be | Description | +| ------------------------------------------------------- | ----------- | +| [endpointDescription items](#data-service--endpointDescription_items) | - | + +### Array Item [#](#data-service--endpointDescription_items) + +| **Type** | `string` | +| -------- | -------- | + +## `DataService > endpointURL` [#](#data-service--endpointURL) + +**Requirement:** Mandatory + +A list of root locations or primary endpoints of the service (a Web-resolvable IRI) + +| **Type** | array of string | +| ------------ | --------------- | +| **Required** | Yes | + +**Examples:** + +```json +[ + "https://api.example.gov/climate/v1" +] +``` + +```json +[ + "https://api.example.gov/climate/v1", + "https://api.example.gov/climate/v2" +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------------------------------------------- | +| [URLs](#data-service--endpointURL_items) | The root location or primary endpoint of the service (a Web-resolvable IRI) | + +### URLs [#](#data-service--endpointURL_items) + +The root location or primary endpoint of the service (a Web-resolvable IRI) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +## `DataService > keyword` [#](#data-service--keyword) + +**Title:** keyword/tag + +**Requirement:** Optional + +List of keywords or tags describing the data service + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Examples:** + +```json +[ + "climate", + "weather", + "API" +] +``` + +```json +[ + "climate", + "weather", + "temperature", + "API", + "REST" +] +``` + +| Each item of this array must be | Description | +| ----------------------------------- | ----------- | +| [Non-empty strings](#data-service--keyword_items) | - | + +### Non-empty strings [#](#data-service--keyword_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Min length** | 1 | + +## `DataService > servesDataset` [#](#data-service--servesDataset) + +**Requirement:** Recommended + +List of datasets this service provides access to + +| **Type** | null or array of [Dataset](./dataset.md#root) classes | +| -------- | ----------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | --------------------------------------------------------- | +| [Dataset](./dataset.md#root) | A collection of data published or curated by one provider | + +## `DataService > spatialResolutionInMeters` [#](#data-service--spatialResolutionInMeters) + +**Requirement:** Optional + +The minimum spatial separation resolvable in a Data Service, measured in meters + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"1000" +``` + +## `DataService > temporalResolution` [#](#data-service--temporalResolution) + +**Requirement:** Optional + +The minimum time period resolvable by the Data Service + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"P1D" +``` + +## `DataService > theme` [#](#data-service--theme) + +**Title:** theme/category + +**Requirement:** Optional + +List of themes or categories for the data service + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `DataService > accessRights` [#](#data-service--accessRights) + +**Requirement:** Optional + +Information about whether the data service is publicly accessible, restricted, or not public + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"Public access with no restrictions" +``` + +| Any of | +| -------------------------------- | +| [item 0](#data-service--accessRights_anyOf_i0) | +| [item 1](#data-service--accessRights_anyOf_i1) | + +### `DataService > accessRights > anyOf > item 0` [#](#data-service--accessRights_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DataService > accessRights > anyOf > item 1` [#](#data-service--accessRights_anyOf_i1) + +Text description of the access rights + +| **Type** | `string` | +| -------- | -------- | + +## `DataService > conformsTo` [#](#data-service--conformsTo) + +**Requirement:** Optional + +List of general standards or specifications that the Data Service endpoints implement + +| **Type** | null or array of [Standard](./quality-governance.md#standard) classes | +| -------- | --------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------- | ------------------------------------------------------------- | +| [Standard](./quality-governance.md#standard) | A standard or specification that another resource conforms to | + +## `DataService > created` [#](#data-service--created) + +**Title:** creation date + +**Requirement:** Optional + +The date on which the Data Service was first created + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2020-01-15" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| -------------------------------- | +| [item 0](#data-service--created_anyOf_i0) | +| [Date string](#data-service--created_anyOf_i1) | + +### `DataService > created > anyOf > item 0` [#](#data-service--created_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DataService > created > anyOf > Date string` [#](#data-service--created_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------ | +| [item 0](#data-service--created_anyOf_i1_anyOf_i0) | +| [item 1](#data-service--created_anyOf_i1_anyOf_i1) | +| [item 2](#data-service--created_anyOf_i1_anyOf_i2) | +| [item 3](#data-service--created_anyOf_i1_anyOf_i3) | + +#### `DataService > created > anyOf > Date string > anyOf > item 0` [#](#data-service--created_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `DataService > created > anyOf > Date string > anyOf > item 1` [#](#data-service--created_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `DataService > created > anyOf > Date string > anyOf > item 2` [#](#data-service--created_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `DataService > created > anyOf > Date string > anyOf > item 3` [#](#data-service--created_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `DataService > creator` [#](#data-service--creator) + +**Requirement:** Optional + +List of agents primarily responsible for producing the Data Service + +| **Type** | null or array of [Agent](./agents.md#agent) classes | +| -------- | --------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------- | -------------------------------------------------------------------------------- | +| [Agent](./agents.md#agent) | A person, organization, software agent, or other entity involved with a resource | + +## `DataService > description` [#](#data-service--description) + +**Requirement:** Optional + +Plain-language summary of the data service + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"A RESTful API providing access to historical and real-time climate data including temperature, precipitation, and atmospheric conditions." +``` + +## `DataService > identifier` [#](#data-service--identifier) + +**Requirement:** Optional + +The unique identifier for the Data Service, e.g. the URI or other unique identifier in the context of the Catalog + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ---------------------------------- | +| [item 0](#data-service--identifier_anyOf_i0) | +| [Identifier](#data-service--identifier_anyOf_i1) | + +### `DataService > identifier > anyOf > item 0` [#](#data-service--identifier_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DataService > identifier > anyOf > Identifier` [#](#data-service--identifier_anyOf_i1) + +inline description of Identifier + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Same definition as** | [Identifier](./identifiers-and-relationships.md#identifier) | + +## `DataService > otherIdentifier` [#](#data-service--otherIdentifier) + +**Requirement:** Optional + +A list of identifiers for the Data Service besides the main identifier, e.g. the URI or other unique identifiers in the context of the Catalog + +| **Type** | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | +| -------- | ------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [Identifier](./identifiers-and-relationships.md#identifier) | A unique identifier and optionally it's scheme and other relevant information | + +## `DataService > language` [#](#data-service--language) + +**Requirement:** Optional + +ISO 639-1 language code values supported by the data service, such as en or es, full list can be seen at https://id.loc.gov/vocabulary/iso639-1.html + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"en" +``` + +```json +[ + "en", + "es" +] +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#data-service--language_anyOf_i0) | +| [Language code](#data-service--language_anyOf_i1) | +| [List of lanuages](#data-service--language_anyOf_i2) | + +### `DataService > language > anyOf > Null allowed when not required` [#](#data-service--language_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DataService > language > anyOf > Language code` [#](#data-service--language_anyOf_i1) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +### `DataService > language > anyOf > List of lanuages` [#](#data-service--language_anyOf_i2) + +| **Type** | array of string | +| -------- | --------------- | + +| Each item of this array must be | Description | +| ----------------------------------------- | ----------- | +| [Language code](#data-service--language_anyOf_i2_items) | - | + +#### Language code [#](#data-service--language_anyOf_i2_items) + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| -------------- | - | +| **Max length** | 2 | + +## `DataService > license` [#](#data-service--license) + +**Requirement:** Recommended + +License that governs how the data service can be used or reused + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +"https://creativecommons.org/publicdomain/zero/1.0/" +``` + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#data-service--license_anyOf_i0) | +| [item 1](#data-service--license_anyOf_i1) | + +### `DataService > license > anyOf > Null allowed when not required` [#](#data-service--license_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DataService > license > anyOf > item 1` [#](#data-service--license_anyOf_i1) + +Full text of the license + +| **Type** | `string` | +| -------- | -------- | + +## `DataService > modified` [#](#data-service--modified) + +**Title:** update/modification date + +**Requirement:** Optional + +The most recent date on which the Data Service was changed or modified + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-03-20" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| ---------------------------------------------------- | +| [Null allowed when not required](#data-service--modified_anyOf_i0) | +| [Date string](#data-service--modified_anyOf_i1) | + +### `DataService > modified > anyOf > Null allowed when not required` [#](#data-service--modified_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `DataService > modified > anyOf > Date string` [#](#data-service--modified_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------- | +| [item 0](#data-service--modified_anyOf_i1_anyOf_i0) | +| [item 1](#data-service--modified_anyOf_i1_anyOf_i1) | +| [item 2](#data-service--modified_anyOf_i1_anyOf_i2) | +| [item 3](#data-service--modified_anyOf_i1_anyOf_i3) | + +#### `DataService > modified > anyOf > Date string > anyOf > item 0` [#](#data-service--modified_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `DataService > modified > anyOf > Date string > anyOf > item 1` [#](#data-service--modified_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `DataService > modified > anyOf > Date string > anyOf > item 2` [#](#data-service--modified_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `DataService > modified > anyOf > Date string > anyOf > item 3` [#](#data-service--modified_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `DataService > publisher` [#](#data-service--publisher) + +**Requirement:** Mandatory + +Person or organization responsible for publishing and making the data service available + +| **Type** | `object` | +| ------------------------- | -------------------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | +| **Defined in** | [Agent](./agents.md#agent) | + +## `DataService > rights` [#](#data-service--rights) + +**Requirement:** Optional + +Rights statements not already covered by license or accessRights, such as copyright or policy restrictions + +| **Type** | null or array of string | +| -------- | ----------------------- | + +**Example:** + +```json +[ + "Data provided by the National Climate Data Center is in the public domain." +] +``` + +| Each item of this array must be | Description | +| ------------------------------- | ----------- | +| [rights items](#data-service--rights_items) | - | + +### Array Item [#](#data-service--rights_items) + +| **Type** | `string` | +| -------- | -------- | + +## `DataService > rightsHolder` [#](#data-service--rightsHolder) + +**Requirement:** Optional + +A list of Agents (organizations) holding rights on the Data Service + +| **Type** | null or array of [Organization](./agents.md#organization) classes | +| -------- | ----------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ---------------------------------------- | --------------------------------------------------------------------------------- | +| [Organization](./agents.md#organization) | An organization involved with a resource, including parent or child organizations | + +## `DataService > spatial` [#](#data-service--spatial) + +**Title:** spatial/geographic coverage + +**Requirement:** Optional + +A geographic region that is covered by the Data Service + +| **Type** | null or array of [Location](./temporal-spatial-metrics.md#location) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | -------------------------------- | +| [Location](./temporal-spatial-metrics.md#location) | A named place or geographic area | + +## `DataService > temporal` [#](#data-service--temporal) + +**Title:** temporal coverage + +**Requirement:** Optional + +Time periods covered by the data service + +| **Type** | null or array of [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) classes | +| -------- | ------------------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| ------------------------------------------------------------ | ---------------------------------------------------------------------- | +| [PeriodOfTime](./temporal-spatial-metrics.md#period-of-time) | Information about a specific time period with a start- and/or end-time | + +## `DataService > title` [#](#data-service--title) + +**Requirement:** Mandatory + +Human-readable title of the data service + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Example:** + +```json +"Climate Data REST API" +``` + +## `DataService > category` [#](#data-service--category) + +**Requirement:** Optional + +List of high-level categories for the data service + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `DataService > hasQualityMeasurement` [#](#data-service--hasQualityMeasurement) + +**Title:** quality measurement + +**Requirement:** Optional + +Quality measurements for the data service (for example, availability, response time, or reliability) + +| **Type** | null or array of [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) classes | +| -------- | ------------------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------------------- | ------------------------------------------------------------- | +| [QualityMeasurement](./temporal-spatial-metrics.md#quality-measurement) | A measurement of a resource against a specific quality metric | + +## `DataService > qualifiedAttribution` [#](#data-service--qualifiedAttribution) + +**Requirement:** Optional + +List of agents with specific responsibilities for the data service + +| **Type** | null or array of [Attribution](./quality-governance.md#attribution) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | ------------------------------------------------- | +| [Attribution](./quality-governance.md#attribution) | A responsibility that an agent has for a resource | + +## `DataService > wasUsedBy` [#](#data-service--wasUsedBy) + +**Requirement:** Optional + +List of activities that used or tested the data service + +| **Type** | null or array of [Activity](./temporal-spatial-metrics.md#activity) classes | +| -------- | --------------------------------------------------------------------------- | + +| Each item of this array must be | Description | +| -------------------------------------------------- | -------------------------------------------------------------- | +| [Activity](./temporal-spatial-metrics.md#activity) | An activity related to creating, changing, or using a resource | + +--- + + + +## Class Attribution [#](#attribution) + +A responsibility that an agent has for a resource + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Attribution", + "hadRole": "Data Steward", + "agent": { + "name": "Environmental Data Management Office" + } +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------- | ------ | ----------------- | ----------------------------------------------------------------------------- | +| [@id](#attribution--@id) | string | Optional | | +| [@type](#attribution--@type) | string | Optional | | +| [hadRole](#attribution--hadRole) | string | Mandatory | The function of an entity or agent with respect to another entity or resource | +| [agent](#attribution--agent) | object | Mandatory | The agent that plays a role in the resource | + +## `Attribution > @id` [#](#attribution--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/attributions/dataset-steward-001" +``` + +## `Attribution > @type` [#](#attribution--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | --------------- | +| **Default** | `"Attribution"` | + +## `Attribution > hadRole` [#](#attribution--hadRole) + +**Title:** role + +**Requirement:** Mandatory + +The function of an entity or agent with respect to another entity or resource + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Example:** + +```json +"Data Steward" +``` + +## `Attribution > agent` [#](#attribution--agent) + +**Requirement:** Mandatory + +The agent that plays a role in the resource + +| **Type** | `object` | +| ------------------------- | -------------------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | +| **Defined in** | [Agent](./agents.md#agent) | diff --git a/jsonschema/docs/temporal-spatial-metrics.md b/jsonschema/docs/temporal-spatial-metrics.md new file mode 100644 index 00000000..5fde2a41 --- /dev/null +++ b/jsonschema/docs/temporal-spatial-metrics.md @@ -0,0 +1,1237 @@ +# Temporal, Spatial, and Metrics + +Supporting classes for time periods, locations, quality metrics, measurements, activities, and addresses. + + + +## Class PeriodOfTime [#](#period-of-time) + +Information about a specific time period with a start- and/or end-time + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "PeriodOfTime", + "startDate": "2024-01-01", + "endDate": "2024-12-31" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ------------------------ | ------------------ | ----------------- | ------------------------------------ | +| [@id](#period-of-time--@id) | string | Optional | | +| [@type](#period-of-time--@type) | string | Optional | | +| [endDate](#period-of-time--endDate) | More than one type | Recommended | The end date of the period of time | +| [startDate](#period-of-time--startDate) | More than one type | Recommended | The start date of the period of time | + +| Any of | +| ------------------- | +| [item 0](#period-of-time--anyOf_i0) | +| [item 1](#period-of-time--anyOf_i1) | + +## `PeriodOfTime > anyOf > item 0` [#](#period-of-time--anyOf_i0) + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +### The following properties are required [#](#period-of-time--autogenerated_heading_2) +* startDate + +## `PeriodOfTime > anyOf > item 1` [#](#period-of-time--anyOf_i1) + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +### The following properties are required [#](#period-of-time--autogenerated_heading_3) +* endDate + +## `PeriodOfTime > @id` [#](#period-of-time--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/periods/fiscal-year-2024" +``` + +## `PeriodOfTime > @type` [#](#period-of-time--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ---------------- | +| **Default** | `"PeriodOfTime"` | + +## `PeriodOfTime > endDate` [#](#period-of-time--endDate) + +**Requirement:** Recommended + +The end date of the period of time + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2024-12-31" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| --------------------------------------------------- | +| [Null allowed when not required](#period-of-time--endDate_anyOf_i0) | +| [item 1](#period-of-time--endDate_anyOf_i1) | + +### `PeriodOfTime > endDate > anyOf > Null allowed when not required` [#](#period-of-time--endDate_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `PeriodOfTime > endDate > anyOf > item 1` [#](#period-of-time--endDate_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ------------------------------------ | +| [item 0](#period-of-time--endDate_anyOf_i1_anyOf_i0) | +| [item 1](#period-of-time--endDate_anyOf_i1_anyOf_i1) | +| [item 2](#period-of-time--endDate_anyOf_i1_anyOf_i2) | +| [item 3](#period-of-time--endDate_anyOf_i1_anyOf_i3) | + +#### `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 0` [#](#period-of-time--endDate_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 1` [#](#period-of-time--endDate_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 2` [#](#period-of-time--endDate_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `PeriodOfTime > endDate > anyOf > item 1 > anyOf > item 3` [#](#period-of-time--endDate_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +## `PeriodOfTime > startDate` [#](#period-of-time--startDate) + +**Requirement:** Recommended + +The start date of the period of time + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"2023-10-01" +``` + +```json +"2024-01-15T10:30:00Z" +``` + +```json +"2024" +``` + +```json +"2024-01" +``` + +| Any of | +| ----------------------------------------------------- | +| [Null allowed when not required](#period-of-time--startDate_anyOf_i0) | +| [item 1](#period-of-time--startDate_anyOf_i1) | + +### `PeriodOfTime > startDate > anyOf > Null allowed when not required` [#](#period-of-time--startDate_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `PeriodOfTime > startDate > anyOf > item 1` [#](#period-of-time--startDate_anyOf_i1) + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| -------------------------------------- | +| [item 0](#period-of-time--startDate_anyOf_i1_anyOf_i0) | +| [item 1](#period-of-time--startDate_anyOf_i1_anyOf_i1) | +| [item 2](#period-of-time--startDate_anyOf_i1_anyOf_i2) | +| [item 3](#period-of-time--startDate_anyOf_i1_anyOf_i3) | + +#### `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 0` [#](#period-of-time--startDate_anyOf_i1_anyOf_i0) + +| **Type** | `string` | +| ---------- | ----------- | +| **Format** | `date-time` | + +#### `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 1` [#](#period-of-time--startDate_anyOf_i1_anyOf_i1) + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `date` | + +#### `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 2` [#](#period-of-time--startDate_anyOf_i1_anyOf_i2) + +A year in YYYY format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | --------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D%24) | + +#### `PeriodOfTime > startDate > anyOf > item 1 > anyOf > item 3` [#](#period-of-time--startDate_anyOf_i1_anyOf_i3) + +A year and month in YYYY-MM format + +| **Type** | `string` | +| -------- | -------- | + +| Restrictions | | +| --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| **Must match regular expression** | ```^[0-9]{4}-[0-9]{2}$``` [Test](https://regex101.com/?regex=%5E%5B0-9%5D%7B4%7D-%5B0-9%5D%7B2%7D%24) | + +--- + + + +## Class Location [#](#location) + +A named place or geographic area + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +{ + "@type": "Location", + "prefLabel": "Continental United States", + "bbox": "POLYGON((-125 24, -66 24, -66 50, -125 50, -125 24))" +} +``` + +```json +{ + "@type": "Location", + "prefLabel": "Continental United States", + "bbox": { + "type": "Polygon", + "coordinates": [ + [ + [ + -77.119759, + 38.791645 + ], + [ + -76.909393, + 38.791645 + ], + [ + -76.909393, + 38.99538 + ], + [ + -77.119759, + 38.99538 + ], + [ + -77.119759, + 38.791645 + ] + ] + ] + } +} +``` + +```json +{ + "@type": "Location", + "prefLabel": "Null Island", + "bbox": "POINT (0.0 0.0)" +} +``` + +```json +{ + "@type": "Location", + "prefLabel": "Random object", + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -77.0402, + 38.7916 + ], + [ + -76.9094, + 38.8921 + ], + [ + -76.9115, + 38.9355 + ], + [ + -76.9286, + 38.9784 + ], + [ + -77.0024, + 38.9657 + ], + [ + -77.0389, + 38.9939 + ], + [ + -77.0672, + 38.9687 + ], + [ + -77.0782, + 38.9143 + ], + [ + -77.1198, + 38.9342 + ], + [ + -77.1198, + 38.8456 + ], + [ + -77.0402, + 38.7916 + ] + ] + ] + } +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ------------------------------------ | ------------------------------------------------------------------------------------ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#location--@id) | string | Optional | | +| [@type](#location--@type) | string | Optional | | +| [bbox](#location--bbox) | More than one type | Recommended | Bounding box for the location, described in WKT, GeoJSON, or GML format | +| [centroid](#location--centroid) | More than one type | Optional | The geographic center (centroid) of a location described in WKT, GeoJSON, or GML format | +| [identifier](#location--identifier) | More than one type | Optional | The unique geographic identifier for the Location, e.g., the URI or other unique identifier in the context of the relevant gazetteer | +| [otherIdentifier](#location--otherIdentifier) | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | Optional | A list of geographic identifiers for the Location besides the main identifier, e.g. the URI or other unique identifiers in the context of the relevant gazetteer | +| [geometry](#location--geometry) | More than one type | Optional | Associates a location with a corresponding geometry described in WKT, GeoJSON, or GML format | +| [inScheme](#location--inScheme) | More than one type | Optional | The gazetteer to which the location belongs | +| [altLabel](#location--altLabel) | null or string | Optional | An alternative label or name for a location | +| [prefLabel](#location--prefLabel) | null or string | Recommended | Preferred label or name of the Location | + +## `Location > @id` [#](#location--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/locations/washington-dc" +``` + +## `Location > @type` [#](#location--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ------------ | +| **Default** | `"Location"` | + +## `Location > bbox` [#](#location--bbox) + +**Title:** bounding box + +**Requirement:** Recommended + +Bounding box for the location, described in WKT, GeoJSON, or GML format + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Examples:** + +```json +"POLYGON((-125 24, -66 24, -66 50, -125 50, -125 24))" +``` + +```json +{ + "type": "Polygon", + "coordinates": [ + [ + [ + -77.119759, + 38.791645 + ], + [ + -76.909393, + 38.791645 + ], + [ + -76.909393, + 38.99538 + ], + [ + -77.119759, + 38.99538 + ], + [ + -77.119759, + 38.791645 + ] + ] + ] +} +``` + +| Any of | +| ------------------------ | +| [item 0](#location--bbox_anyOf_i0) | +| [item 1](#location--bbox_anyOf_i1) | +| [item 2](#location--bbox_anyOf_i2) | + +### `Location > bbox > anyOf > item 0` [#](#location--bbox_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Location > bbox > anyOf > item 1` [#](#location--bbox_anyOf_i1) + +Bounding box represented in WKT, GeoJSON (stringified), or GML format + +| **Type** | `string` | +| -------- | -------- | + +### `Location > bbox > anyOf > item 2` [#](#location--bbox_anyOf_i2) + +Bounding box represented in GeoJSON format, either as a Polygon or in bbox array format + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Property | Type | Requirement Level | Title/Description | +| ------------------------------------------ | ----- | ----------------- | ----------------- | +| [coordinates](#location--bbox_anyOf_i2_coordinates) | array | Optional | | +| [type](#location--bbox_anyOf_i2_type) | const | Optional | | + +#### `Location > bbox > anyOf > item 2 > coordinates` [#](#location--bbox_anyOf_i2_coordinates) + +**Requirement:** Optional + +| **Type** | `array` | +| ------------ | ------- | +| **Required** | Yes | + +#### `Location > bbox > anyOf > item 2 > type` [#](#location--bbox_anyOf_i2_type) + +**Requirement:** Optional + +| **Type** | `const` | +| ------------ | ------- | +| **Required** | Yes | + +Specific value: `"Polygon"` + +## `Location > centroid` [#](#location--centroid) + +**Requirement:** Optional + +The geographic center (centroid) of a location described in WKT, GeoJSON, or GML format + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "type": "Point", + "coordinates": [ + -77.0369, + 38.9072 + ] +} +``` + +| Any of | +| ---------------------------- | +| [item 0](#location--centroid_anyOf_i0) | +| [item 1](#location--centroid_anyOf_i1) | +| [item 2](#location--centroid_anyOf_i2) | + +### `Location > centroid > anyOf > item 0` [#](#location--centroid_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Location > centroid > anyOf > item 1` [#](#location--centroid_anyOf_i1) + +Center point represented in WKT, GeoJSON (stringified), or GML format + +| **Type** | `string` | +| -------- | -------- | + +### `Location > centroid > anyOf > item 2` [#](#location--centroid_anyOf_i2) + +Centroid represented in GeoJSON format; force point usage with coordinates of longitude and latitude + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Property | Type | Requirement Level | Title/Description | +| ---------------------------------------------- | --------------- | ----------------- | ----------------- | +| [coordinates](#location--centroid_anyOf_i2_coordinates) | array of number | Optional | | +| [type](#location--centroid_anyOf_i2_type) | const | Optional | | + +#### `Location > centroid > anyOf > item 2 > coordinates` [#](#location--centroid_anyOf_i2_coordinates) + +**Requirement:** Optional + +| **Type** | array of number | +| ------------ | --------------- | +| **Required** | Yes | + +| Each item of this array must be | Description | +| --------------------------------------------------------- | ----------- | +| [coordinates items](#location--centroid_anyOf_i2_coordinates_items) | - | + +##### Array Item [#](#location--centroid_anyOf_i2_coordinates_items) + +| **Type** | `number` | +| -------- | -------- | + +#### `Location > centroid > anyOf > item 2 > type` [#](#location--centroid_anyOf_i2_type) + +**Requirement:** Optional + +| **Type** | `const` | +| ------------ | ------- | +| **Required** | Yes | + +Specific value: `"Point"` + +## `Location > identifier` [#](#location--identifier) + +**Requirement:** Optional + +The unique geographic identifier for the Location, e.g., the URI or other unique identifier in the context of the relevant gazetteer + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ---------------------------------- | +| [item 0](#location--identifier_anyOf_i0) | +| [Identifier](#location--identifier_anyOf_i1) | + +### `Location > identifier > anyOf > item 0` [#](#location--identifier_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Location > identifier > anyOf > Identifier` [#](#location--identifier_anyOf_i1) + +inline description of Identifier + +| **Type** | `combining` | +| ------------------------- | ----------------------------------------------------------- | +| **Additional properties** | Any type allowed | +| **Defined in** | [Identifier](./identifiers-and-relationships.md#identifier) | + +## `Location > otherIdentifier` [#](#location--otherIdentifier) + +**Requirement:** Optional + +A list of geographic identifiers for the Location besides the main identifier, e.g. the URI or other unique identifiers in the context of the relevant gazetteer + +| **Type** | null or array of [Identifier](./identifiers-and-relationships.md#identifier) classes | +| -------- | ------------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | +| [Identifier](./identifiers-and-relationships.md#identifier) | A unique identifier and optionally it's scheme and other relevant information | + +## `Location > geometry` [#](#location--geometry) + +**Requirement:** Optional + +Associates a location with a corresponding geometry described in WKT, GeoJSON, or GML format + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "type": "Polygon", + "coordinates": [ + [ + [ + -77.0402, + 38.7916 + ], + [ + -76.9094, + 38.8921 + ], + [ + -76.9115, + 38.9355 + ], + [ + -76.9286, + 38.9784 + ], + [ + -77.0024, + 38.9657 + ], + [ + -77.0389, + 38.9939 + ], + [ + -77.0672, + 38.9687 + ], + [ + -77.0782, + 38.9143 + ], + [ + -77.1198, + 38.9342 + ], + [ + -77.1198, + 38.8456 + ], + [ + -77.0402, + 38.7916 + ] + ] + ] +} +``` + +| Any of | +| ---------------------------- | +| [item 0](#location--geometry_anyOf_i0) | +| [item 1](#location--geometry_anyOf_i1) | +| [item 2](#location--geometry_anyOf_i2) | + +### `Location > geometry > anyOf > item 0` [#](#location--geometry_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Location > geometry > anyOf > item 1` [#](#location--geometry_anyOf_i1) + +String format of the full geometry of the location in WKT, GeoJSON, or GML format + +| **Type** | `string` | +| -------- | -------- | + +### `Location > geometry > anyOf > item 2` [#](#location--geometry_anyOf_i2) + +Geometry represented in GeoJSON format + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +#### The following properties are required [#](#location--autogenerated_heading_1) +* type +* coordinates + +## `Location > inScheme` [#](#location--inScheme) + +**Title:** gazetteer + +**Requirement:** Optional + +The gazetteer to which the location belongs + +| **Type** | `combining` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +| Any of | +| ----------------------------------- | +| [item 0](#location--inScheme_anyOf_i0) | +| [ConceptScheme](#location--inScheme_anyOf_i1) | + +### `Location > inScheme > anyOf > item 0` [#](#location--inScheme_anyOf_i0) + +| **Type** | `null` | +| -------- | ------ | + +### `Location > inScheme > anyOf > ConceptScheme` [#](#location--inScheme_anyOf_i1) + +inline description of the gazetteer + +| **Type** | `object` | +| ------------------------- | ------------------------------------------------------------------ | +| **Additional properties** | Any type allowed | +| **Defined in** | [ConceptScheme](./identifiers-and-relationships.md#concept-scheme) | + +## `Location > altLabel` [#](#location--altLabel) + +**Title:** alternative name + +**Requirement:** Optional + +An alternative label or name for a location + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"DC" +``` + +## `Location > prefLabel` [#](#location--prefLabel) + +**Title:** geographic name + +**Requirement:** Recommended + +Preferred label or name of the Location + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"Continental United States" +``` + +```json +"Washington, D.C." +``` + +--- + + + +## Class Metric [#](#metric) + +A standard used to measure one aspect of data quality + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Metric", + "expectedDataType": "xsd:decimal", + "inDimension": "https://example.gov/dimensions/completeness", + "definition": "Percentage of non-null values in the dataset." +} +``` + +| Property | Type | Requirement Level | Title/Description | +| -------------------------------------- | -------------- | ----------------- | -------------------------------------------------------------------------------------------------------- | +| [@id](#metric--@id) | string | Optional | | +| [@type](#metric--@type) | string | Optional | | +| [expectedDataType](#metric--expectedDataType) | string | Mandatory | Represents the expected data type for the metric's observed value (e.g., xsd:boolean, xsd:double etc...) | +| [inDimension](#metric--inDimension) | string | Mandatory | Represents the dimensions a quality metric, certificate and annotation allow a measurement of. | +| [definition](#metric--definition) | null or string | Recommended | Definition of the metric. | + +## `Metric > @id` [#](#metric--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/metrics/record-completeness" +``` + +## `Metric > @type` [#](#metric--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ---------- | +| **Default** | `"Metric"` | + +## `Metric > expectedDataType` [#](#metric--expectedDataType) + +**Requirement:** Mandatory + +Represents the expected data type for the metric's observed value (e.g., xsd:boolean, xsd:double etc...) + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"xsd:decimal" +``` + +```json +"xsd:double" +``` + +## `Metric > inDimension` [#](#metric--inDimension) + +**Requirement:** Mandatory + +Represents the dimensions a quality metric, certificate and annotation allow a measurement of. + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"https://example.gov/dimensions/completeness" +``` + +```json +"https://www.w3.org/TR/vocab-dqv/#dqv:completeness" +``` + +## `Metric > definition` [#](#metric--definition) + +**Requirement:** Recommended + +Definition of the metric. + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"Percentage of non-null values in the dataset." +``` + +```json +"The percentage of non-null values for required fields in a dataset. A value of 1.0 indicates 100% completeness." +``` + +--- + + + +## Class QualityMeasurement [#](#quality-measurement) + +A measurement of a resource against a specific quality metric + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "QualityMeasurement", + "isMeasurementOf": { + "expectedDataType": "xsd:decimal", + "inDimension": "https://example.gov/dimensions/completeness" + }, + "value": "98.5", + "unitMeasure": "percent" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ------------------------------------ | -------------- | ----------------- | ----------------------------------------- | +| [@id](#quality-measurement--@id) | string | Optional | | +| [@type](#quality-measurement--@type) | string | Optional | | +| [isMeasurementOf](#quality-measurement--isMeasurementOf) | object | Mandatory | The metric being observed | +| [value](#quality-measurement--value) | string | Mandatory | The value computed by metric | +| [unitMeasure](#quality-measurement--unitMeasure) | null or string | Optional | Unit of measure associated with the value | + +## `QualityMeasurement > @id` [#](#quality-measurement--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/quality-measurements/completeness-001" +``` + +## `QualityMeasurement > @type` [#](#quality-measurement--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ---------------------- | +| **Default** | `"QualityMeasurement"` | + +## `QualityMeasurement > isMeasurementOf` [#](#quality-measurement--isMeasurementOf) + +**Requirement:** Mandatory + +The metric being observed + +| **Type** | `object` | +| ------------------------- | ---------------------------------------------- | +| **Required** | Yes | +| **Additional properties** | Any type allowed | +| **Defined in** | [Metric](./temporal-spatial-metrics.md#metric) | + +## `QualityMeasurement > value` [#](#quality-measurement--value) + +**Requirement:** Mandatory + +The value computed by metric + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Example:** + +```json +"98.5" +``` + +## `QualityMeasurement > unitMeasure` [#](#quality-measurement--unitMeasure) + +**Title:** unit of measure + +**Requirement:** Optional + +Unit of measure associated with the value + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"percent" +``` + +--- + + + +## Class Activity [#](#activity) + +An activity related to creating, changing, or using a resource + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Activity", + "label": "Data Collection", + "category": [ + "https://example.gov/concepts/data-collection" + ] +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------- | ------------------------------------------------------------------------------ | ----------------- | --------------------------------------- | +| [@id](#activity--@id) | string | Optional | | +| [@type](#activity--@type) | string | Optional | | +| [category](#activity--category) | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | Optional | List of categories for the Activity | +| [label](#activity--label) | string | Mandatory | A human-readable label for the activity | + +## `Activity > @id` [#](#activity--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/activities/data-processing-001" +``` + +## `Activity > @type` [#](#activity--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ------------ | +| **Default** | `"Activity"` | + +## `Activity > category` [#](#activity--category) + +**Requirement:** Optional + +List of categories for the Activity + +| **Type** | null or array of [Concept](./identifiers-and-relationships.md#concept) classes | +| -------- | ------------------------------------------------------------------------------ | + +| Each item of this array must be | Description | +| ----------------------------------------------------- | ------------------------------------------------------------------ | +| [Concept](./identifiers-and-relationships.md#concept) | A controlled term or label, optionally drawn from a concept scheme | + +## `Activity > label` [#](#activity--label) + +**Requirement:** Mandatory + +A human-readable label for the activity + +| **Type** | `string` | +| ------------ | -------- | +| **Required** | Yes | + +**Examples:** + +```json +"Data Collection" +``` + +```json +"Data Processing and Quality Assurance" +``` + +--- + + + +## Class Address [#](#address) + +A single physical address + +| **Type** | `object` | +| ------------------------- | ---------------- | +| **Additional properties** | Any type allowed | + +**Example:** + +```json +{ + "@type": "Address", + "street-address": "151 Patton Avenue", + "locality": "Asheville", + "region": "NC", + "postal-code": "28801", + "country-name": "United States" +} +``` + +| Property | Type | Requirement Level | Title/Description | +| ---------------------------------- | -------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| [@id](#address--@id) | string | Optional | | +| [@type](#address--@type) | string | Optional | | +| [country-name](#address--country-name) | null or string | Recommended | The country of the Address | +| [locality](#address--locality) | null or string | Recommended | The city of the Address | +| [postal-code](#address--postal-code) | null or string | Recommended | The postal code of the Address | +| [region](#address--region) | null or string | Recommended | The administrative area of the Address. Depending on the country, this corresponds to a province, a county, a region, or a state | +| [street-address](#address--street-address) | null or string | Recommended | The street name and civic number of an Address | + +## `Address > @id` [#](#address--@id) + +**Requirement:** Optional + +| **Type** | `string` | +| ---------- | -------- | +| **Format** | `iri` | + +**Example:** + +```json +"https://example.gov/addresses/hq-001" +``` + +## `Address > @type` [#](#address--@type) + +**Requirement:** Optional + +| **Type** | `string` | +| ----------- | ----------- | +| **Default** | `"Address"` | + +## `Address > country-name` [#](#address--country-name) + +**Title:** country + +**Requirement:** Recommended + +The country of the Address + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Example:** + +```json +"United States" +``` + +## `Address > locality` [#](#address--locality) + +**Requirement:** Recommended + +The city of the Address + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"Asheville" +``` + +```json +"Washington" +``` + +## `Address > postal-code` [#](#address--postal-code) + +**Requirement:** Recommended + +The postal code of the Address + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"28801" +``` + +```json +"20230" +``` + +## `Address > region` [#](#address--region) + +**Title:** administrative area + +**Requirement:** Recommended + +The administrative area of the Address. Depending on the country, this corresponds to a province, a county, a region, or a state + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"NC" +``` + +```json +"DC" +``` + +## `Address > street-address` [#](#address--street-address) + +**Requirement:** Recommended + +The street name and civic number of an Address + +| **Type** | `null or string` | +| -------- | ---------------- | + +**Examples:** + +```json +"151 Patton Avenue" +``` + +```json +"1401 Constitution Ave NW" +``` diff --git a/jsonschema/generate_schema_docs.py b/jsonschema/generate_schema_docs.py index f55039b5..0fe9075c 100644 --- a/jsonschema/generate_schema_docs.py +++ b/jsonschema/generate_schema_docs.py @@ -19,6 +19,86 @@ from json_schema_for_humans.template_renderer import TemplateRenderer +MAIN_CLASS_PAGES = [ + { + "source": "Catalog.md", + "output": "catalog.md", + "title": "Catalog", + "intro": "The catalog of datasets, services, and other information describing data assets.", + }, + { + "source": "Dataset.md", + "output": "dataset.md", + "title": "Dataset", + "intro": "Information about a dataset, including identifiers, contacts, coverage, distributions, and related resources.", + }, + { + "source": "DatasetSeries.md", + "output": "dataset-series.md", + "title": "Dataset Series", + "intro": "Information about a dataset series, including its members, ordering, coverage, and publishing details.", + }, + { + "source": "Distribution.md", + "output": "distribution.md", + "title": "Distribution", + "intro": "Information about a distribution, including access methods, formats, licenses, restrictions, and quality details.", + }, +] + +GROUPED_CLASS_PAGES = [ + { + "output": "agents.md", + "title": "Agents", + "intro": "Data information classes including Agent, Organization, and Kind, which describe organizations, people, and contact information.", + "classes": ["Agent.md", "Organization.md", "Kind.md"], + }, + { + "output": "constraints-and-restrictions.md", + "title": "Constraints and Restrictions", + "intro": "Restriction classes describing access limits, controlled unclassified information, and rules on how a resource may be used.", + "classes": ["AccessRestriction.md", "CUIRestriction.md", "UseRestriction.md"], + }, + { + "output": "identifiers-and-relationships.md", + "title": "Identifiers and Relationships", + "intro": "Supporting classes for identifiers, relationships, checksums, and controlled concepts used to describe and connect resources.", + "classes": [ + "Identifier.md", + "Relationship.md", + "Checksum.md", + "Concept.md", + "ConceptScheme.md", + ], + }, + { + "output": "temporal-spatial-metrics.md", + "title": "Temporal, Spatial, and Metrics", + "intro": "Supporting classes for time periods, locations, quality metrics, measurements, activities, and addresses.", + "classes": [ + "PeriodOfTime.md", + "Location.md", + "Metric.md", + "QualityMeasurement.md", + "Activity.md", + "Address.md", + ], + }, + { + "output": "quality-governance.md", + "title": "Quality and Governance", + "intro": "Supporting classes for standards, documents, catalog records, data services, and attribution used in governance and quality description.", + "classes": [ + "Standard.md", + "Document.md", + "CatalogRecord.md", + "DataService.md", + "Attribution.md", + ], + }, +] + + def _any_differences(comp_object): """Check this directory and all of its subdirectories for differences. @@ -83,6 +163,214 @@ def _func_that_wraps(*args, **kwargs): return _func_that_wraps +def _class_name_from_file(file_name): + return Path(file_name).stem + + +def _class_anchor(class_name): + slug = re.sub(r"([A-Z]+)([A-Z][a-z])", r"\1-\2", class_name) + slug = re.sub(r"([a-z0-9])([A-Z])", r"\1-\2", slug) + return slug.lower() + + +def _build_class_link_map(): + link_map = {} + + for page in MAIN_CLASS_PAGES: + class_name = _class_name_from_file(page["source"]) + target = f"./{page['output']}#root" + link_map[class_name.lower()] = target + + for page in GROUPED_CLASS_PAGES: + for class_file in page["classes"]: + class_name = _class_name_from_file(class_file) + target = f"./{page['output']}#{_class_anchor(class_name)}" + link_map[class_name.lower()] = target + + return link_map + + +CLASS_LINK_MAP = _build_class_link_map() +CLASS_DISPLAY_NAME_MAP = { + _class_name_from_file(page["source"]).lower(): _class_name_from_file(page["source"]) + for page in MAIN_CLASS_PAGES +} +CLASS_DISPLAY_NAME_MAP.update( + { + _class_name_from_file(class_file).lower(): _class_name_from_file(class_file) + for page in GROUPED_CLASS_PAGES + for class_file in page["classes"] + } +) + + +def _canonical_class_doc_link(schema_node): + if schema_node is None: + return None + + candidates = [schema_node, schema_node.refers_to, schema_node.refers_to_merged] + for candidate in candidates: + if candidate is None: + continue + + class_name = None + if getattr(candidate, "ref_path", None): + class_name = candidate.ref_path.split("/")[-1] + elif getattr(candidate, "definition_name", None): + class_name = candidate.definition_name + + if not class_name: + continue + + normalized_name = class_name.lower() + target = CLASS_LINK_MAP.get(normalized_name) + if target: + display_name = CLASS_DISPLAY_NAME_MAP.get(normalized_name, class_name) + return f"[{display_name}]({target})" + + return None + + +def _rewrite_class_doc_links(content): + def _replace(match): + label = match.group(1) + basename = match.group(2).lower() + target = CLASS_LINK_MAP.get(basename) + if target is None: + return match.group(0) + return f"[{label}]({target})" + + return re.sub(r"\[([^\]]+)\]\(\./([A-Za-z0-9]+)\.md\)", _replace, content) + + +def _rewrite_local_anchors(content, anchor_prefix="", root_anchor="root"): + def _replace_anchor(match): + anchor_name = match.group(1) + if anchor_name == "root": + return f'' + return f'' + + def _replace_fragment(match): + anchor_name = match.group(1).strip() + if anchor_name == "root": + return f"](#{root_anchor})" + return f"](#{anchor_prefix}{anchor_name})" + + content = re.sub(r'', _replace_anchor, content) + return re.sub(r"\]\(#([^\)]+?)\s*\)", _replace_fragment, content) + + +def _add_heading_anchor_links(content): + lines = content.splitlines() + + for index, line in enumerate(lines): + inline_match = re.match(r'^(#{1,6}) (.+)$', line) + if inline_match: + heading_marks, anchor_name, heading_text = inline_match.groups() + if f'](#{anchor_name})' not in heading_text: + lines[index] = ( + f'{heading_marks} ' + f'{heading_text} [#](#{anchor_name})' + ) + continue + + anchor_match = re.match(r'^$', line) + if not anchor_match: + continue + + anchor_name = anchor_match.group(1) + next_index = index + 1 + while next_index < len(lines) and not lines[next_index].strip(): + next_index += 1 + + if next_index >= len(lines): + continue + + heading_match = re.match(r'^(#{1,6}) (.+)$', lines[next_index]) + if heading_match and f'](#{anchor_name})' not in lines[next_index]: + heading_marks, heading_text = heading_match.groups() + lines[next_index] = f'{heading_marks} {heading_text} [#](#{anchor_name})' + + return "\n".join(lines) + + +def _rewrite_unresolved_self_item_links(content, page_title): + anchors = set(re.findall(r'', content)) + self_labels = {page_title, f"DCAT-US 3 {page_title}"} + + def _replace(match): + label = match.group(1) + fragment = match.group(2) + if fragment in anchors: + return match.group(0) + if fragment.endswith("_items") and label in self_labels: + return f"[{label}](#root)" + return match.group(0) + + return re.sub(r'\[([^\]]+)\]\(#([^\)]+)\)', _replace, content) + + +def _normalize_doc_content(content, anchor_prefix="", root_anchor="root"): + content = content.strip() + content = _rewrite_class_doc_links(content) + content = _rewrite_local_anchors( + content, + anchor_prefix=anchor_prefix, + root_anchor=root_anchor, + ) + return _add_heading_anchor_links(content) + + +def _write_text(output_path, content): + output_path.parent.mkdir(parents=True, exist_ok=True) + output_path.write_text(f"{content.rstrip()}\n", encoding="utf-8") + + +def _read_generated_doc(docs_dir, file_name): + path = Path(docs_dir) / file_name + return path.read_text(encoding="utf-8") + + +def _clear_generated_markdown(output_dir): + for markdown_file in Path(output_dir).glob("*.md"): + if markdown_file.name == "README.md": + continue + markdown_file.unlink() + + +def _build_public_docs(rendered_docs_dir, output_dir): + output_dir = Path(output_dir) + _clear_generated_markdown(output_dir) + + for page in MAIN_CLASS_PAGES: + raw_content = _read_generated_doc(rendered_docs_dir, page["source"]) + page_content = _normalize_doc_content(raw_content, root_anchor="root") + page_content = _rewrite_unresolved_self_item_links(page_content, page["title"]) + page_content = f'\n\n{page["intro"]}\n\n{page_content}' + _write_text(output_dir / page["output"], page_content) + + for page in GROUPED_CLASS_PAGES: + sections = [] + for class_file in page["classes"]: + class_name = _class_name_from_file(class_file) + section_anchor = _class_anchor(class_name) + raw_content = _read_generated_doc(rendered_docs_dir, class_file) + section_content = _normalize_doc_content( + raw_content, + anchor_prefix=f"{section_anchor}--", + root_anchor=section_anchor, + ) + sections.append( + f'\n\n## Class {class_name} [#](#{section_anchor})\n\n{section_content}' + ) + + page_content = "\n\n---\n\n".join(sections) + _write_text( + output_dir / page["output"], + f"# {page['title']}\n\n{page['intro']}\n\n{page_content}", + ) + + def _normalize_requirement_level(value): """Return a normalized requirement level label.""" if not value: @@ -96,6 +384,70 @@ def _normalize_requirement_level(value): return "Optional" +def _normalize_label(value): + if value is None: + return "" + return re.sub(r"[^a-z0-9]+", "", str(value).strip().lower()) + + +def _escape_for_table(value): + if value is None: + return "" + return str(value).translate(str.maketrans({"|": "\\|", "`": "\\`", "\n": "
"})) + + +def should_render_title(schema): + """Return False when the title just repeats the current node label.""" + title = getattr(schema, "title", None) + normalized_title = _normalize_label(title) + if not normalized_title: + return False + + candidate_labels = { + _normalize_label(getattr(schema, "property_name", None)), + _normalize_label(getattr(schema, "name_for_breadcrumbs", None)), + } + candidate_labels.discard("") + return normalized_title not in candidate_labels + + +def property_summary_text(schema): + """Return the preferred summary text for property tables.""" + description = getattr(schema, "description", None) + if description: + return description + + title = getattr(schema, "title", None) + if should_render_title(schema): + return title + + return "" + + +def _array_item_type_label(item_schema): + canonical_link = _canonical_class_doc_link(item_schema) + if canonical_link: + return f"{canonical_link} classes" + + title = getattr(item_schema, "title", None) + if should_render_title(item_schema): + return title + + return getattr(item_schema, "type_name", "item") + + +def _display_type_label(schema): + array_item = getattr(schema, "array_items_def", None) + tuple_items = getattr(schema, "tuple_validation_items", None) or [] + if array_item and not tuple_items: + label = f"array of {_array_item_type_label(array_item)}" + if "null" in str(getattr(schema, "type_name", "")).lower(): + return f"null or {label}" + return label + + return None + + def schema_requirement_level(schema): """Template helper for property requirement level. @@ -107,7 +459,10 @@ def schema_requirement_level(schema): if isinstance(keywords, dict): # New location for requirement metadata. if "requirementLevel" in keywords: - return _normalize_requirement_level(keywords.get("requirementLevel")) + requirement_level = keywords.get("requirementLevel") + if hasattr(requirement_level, "literal"): + requirement_level = requirement_level.literal + return _normalize_requirement_level(requirement_level) old_docs = {} if isinstance(keywords, dict): @@ -121,23 +476,43 @@ def schema_requirement_level(schema): return _normalize_requirement_level(old_docs.get("requirementLevel")) -def requirement_badge(schema): - """Template helper that formats requirement level as an inline badge.""" - requirement = schema_requirement_level(schema) - return f"[{requirement}]" - - def properties_table_wrap(properties_list, schema): """Edit the properties list for our preferred format. properties_list is a list of lists that will eventually be formatted into a table. """ - for line in properties_list: + property_nodes = list(schema.iterate_properties) + + for index, line in enumerate(properties_list): if "Combination" in line: # replace combining with something better line[line.index("Combination")] = "More than one type" + if not line: + continue + + if index == 0: + line = list(line) + properties_list[index] = line + property_column_index = line.index("Property") + line.insert(property_column_index + 2, "Requirement Level") + continue + + property_column_index = 0 + if line[property_column_index].startswith(("+ ", "- ")): + line[property_column_index] = line[property_column_index][2:] + + property_node = property_nodes[index - 1] + display_type = _display_type_label(property_node) + if display_type: + line[property_column_index + 1] = display_type + requirement = schema_requirement_level(property_node) + line.insert(property_column_index + 2, requirement) + line[property_column_index + 3] = _escape_for_table( + property_summary_text(property_node) + ) + # remove lines def _remove_me(line): return (line[0].strip("*") == "Required" and line[1] == "No") or ( @@ -147,20 +522,51 @@ def _remove_me(line): return [line for line in properties_list if not _remove_me(line)] -def type_info_table_wrap(type_info_list): +def array_items_restrictions_wrap(items_restrictions, schema): + if not items_restrictions: + return items_restrictions + + items = ([schema.array_items_def] if schema.array_items_def else []) + schema.tuple_validation_items + for row, item in zip(items_restrictions[1:], items): + canonical_link = _canonical_class_doc_link(item) + if canonical_link: + row[0] = canonical_link + continue + + item_title = getattr(item, "title", None) + schema_title = getattr(schema, "title", None) + if item_title and schema_title and item_title == schema_title: + row[0] = f"[{item_title}](#root)" + + return items_restrictions + + +def type_info_table_wrap(type_info_list, schema): """Edit the type info table for our preferred format. type_info_list is a list of lists that will eventually be formatted into a table. """ + canonical_link = _canonical_class_doc_link(schema) + # edit lines for line in type_info_list: - if line[0].strip("*") == "Defined in": - # This is a link to another type, so turn it into a relative link - match = re.match(r"^/dcat-us/3.0.0/definitions/(\w+)", line[1]) - class_name = match.group(1) - line[1] = f"[{class_name.title()}](./{class_name.title()}.md)" + line_label = line[0].strip("*") + if line_label == "Type": + display_type = _display_type_label(schema) + if display_type: + line[1] = display_type + elif line_label == "Defined in": + if canonical_link: + line[1] = canonical_link + else: + # This is a link to another type, so turn it into a relative link + match = re.match(r"^/dcat-us/3.0.0/definitions/(\w+)", line[1]) + class_name = match.group(1) + line[1] = f"[{class_name.title()}](./{class_name.title()}.md)" + elif line_label == "Same definition as" and canonical_link: + line[1] = canonical_link elif "`combining`" in line: # replace combining with something better line[line.index("`combining`")] = "More than one type" @@ -174,20 +580,17 @@ def _remove_me(line): return [line for line in type_info_list if not _remove_me(line)] -def generate_docs(output_dir): - """Generate the schema documentation into output_dir.""" +def _render_raw_docs(output_dir): + """Generate the unmerged schema documentation into output_dir.""" schema_files = sorted(glob.glob("definitions/*.json")) - # We need to preload the schemas at their relative ids loaded_schemas = {} for schema_file in schema_files: with open(schema_file) as f: schema = json.load(f) - # get path from $id _, _, path, _, _ = urlsplit(schema["$id"]) loaded_schemas[path] = schema - # generation config config = { "link_to_reused_ref": True, "show_breadcrumbs": True, @@ -210,24 +613,40 @@ def generate_docs(output_dir): ) template_renderer = TemplateRenderer(final_config) - # hack the rendering process original_md_properties_table = template_renderer.template.environment.filters[ "md_properties_table" ] + template_renderer.template.environment.filters["should_render_title"] = ( + should_render_title + ) template_renderer.template.environment.filters["schema_requirement_level"] = ( schema_requirement_level ) - template_renderer.template.environment.filters["requirement_badge"] = requirement_badge template_renderer.template.environment.filters["md_properties_table"] = ( lambda schema: properties_table_wrap( original_md_properties_table(schema), schema, ) ) + original_md_array_items_restrictions = template_renderer.template.environment.filters[ + "md_array_items_restrictions" + ] + original_md_type_info_table = template_renderer.template.environment.filters[ + "md_type_info_table" + ] + template_renderer.template.environment.filters["canonical_class_doc_link"] = ( + _canonical_class_doc_link + ) + template_renderer.template.environment.filters["md_array_items_restrictions"] = ( + lambda schema: array_items_restrictions_wrap( + original_md_array_items_restrictions(schema), + schema, + ) + ) template_renderer.template.environment.filters["md_type_info_table"] = ( - _wrapped_filter( - template_renderer.template.environment.filters["md_type_info_table"], - type_info_table_wrap, + lambda schema: type_info_table_wrap( + original_md_type_info_table(schema), + schema, ) ) @@ -235,6 +654,14 @@ def generate_docs(output_dir): generate.copy_additional_files_to_target(schemas_to_render, final_config) +def generate_docs(output_dir): + """Generate the schema documentation into output_dir.""" + with tempfile.TemporaryDirectory() as temp_dir: + temp_path = Path(temp_dir) + _render_raw_docs(temp_path) + _build_public_docs(temp_path, output_dir) + + @click.command() @click.option("-o", "--output-dir", help="Output directory", default="docs") @click.option( diff --git a/jsonschema/merge_dcat-us-docs.js b/jsonschema/merge_dcat-us-docs.js new file mode 100644 index 00000000..f0b5e0fb --- /dev/null +++ b/jsonschema/merge_dcat-us-docs.js @@ -0,0 +1,136 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const path = require("path"); +const { execSync } = require("child_process"); + +const repoRoot = path.resolve(__dirname, ".."); +const submodulePath = path.join(repoRoot, "_external", "dcat-us"); +const docsSourceDir = path.join(submodulePath, "jsonschema", "docs"); +const outputDir = path.join(repoRoot, "pages", "_data_standards", "dcat-us-3"); + +const mainClassMap = [ + { source: "Catalog.md", output: "catalog.md", title: "Catalog" }, + { source: "Dataset.md", output: "dataset.md", title: "Dataset" }, + { source: "DatasetSeries.md", output: "dataset-series.md", title: "Dataset Series" }, + { source: "Distribution.md", output: "distribution.md", title: "Distribution" }, +]; + +const groupedClassPages = [ + { + output: "agents.md", + title: "Agents", + classes: ["Agent.md", "Organization.md", "Kind.md"], + }, + { + output: "constraints-and-restrictions.md", + title: "Constraints and Restrictions", + classes: ["AccessRestriction.md", "CUIRestriction.md", "UseRestriction.md"], + }, + { + output: "identifiers-and-relationships.md", + title: "Identifiers and Relationships", + classes: ["Identifier.md", "Relationship.md", "Checksum.md", "Concept.md", "ConceptScheme.md"], + }, + { + output: "temporal-spatial-metrics.md", + title: "Temporal, Spatial, and Metrics", + classes: ["PeriodOfTime.md", "Location.md", "Metric.md", "QualityMeasurement.md", "Activity.md", "Address.md"], + }, + { + output: "quality-governance.md", + title: "Quality and Governance", + classes: ["Standard.md", "Document.md", "CatalogRecord.md", "DataService.md", "Attribution.md"], + }, +]; + +function runCommand(command, cwd = repoRoot) { + execSync(command, { cwd, stdio: "pipe" }); +} + +function ensureSubmoduleReady() { + if (!fs.existsSync(path.join(submodulePath, ".git"))) { + runCommand("git submodule update --init --depth 1 _external/dcat-us"); + } + + runCommand("git sparse-checkout init --no-cone", submodulePath); + runCommand('printf "/jsonschema/definitions/\\n/jsonschema/docs/\\n" | git sparse-checkout set --stdin', submodulePath); +} + +function readSourceDoc(fileName) { + const fullPath = path.join(docsSourceDir, fileName); + if (!fs.existsSync(fullPath)) { + throw new Error(`Missing expected source doc: ${fullPath}`); + } + + return fs.readFileSync(fullPath, "utf8").trim(); +} + +function buildFrontMatter(title, permalink) { + return [ + "---", + `title: DCAT-US 3.0: ${title}`, + "layout: page", + `permalink: ${permalink}`, + "primary_nav_section: Data Standards", + "category_name: Data standards", + "---", + "", + ].join("\n"); +} + +function writeFile(outputPath, content) { + fs.mkdirSync(path.dirname(outputPath), { recursive: true }); + fs.writeFileSync(outputPath, `${content.trim()}\n`, "utf8"); +} + +function buildMainClassPages() { + mainClassMap.forEach((item) => { + const sourceContent = readSourceDoc(item.source); + const permalink = `/standards/catalog/dcat-us-3/${item.output.replace(".md", "")}/`; + const pageContent = `${buildFrontMatter(item.title, permalink)}${sourceContent}`; + writeFile(path.join(outputDir, item.output), pageContent); + }); +} + +function buildGroupedPages() { + groupedClassPages.forEach((group) => { + const permalink = `/standards/catalog/dcat-us-3/${group.output.replace(".md", "")}/`; + const sections = group.classes.map((classFile) => { + const className = classFile.replace(".md", ""); + const sourceContent = readSourceDoc(classFile); + return `## ${className}\n\n${sourceContent}`; + }); + + const pageContent = [ + buildFrontMatter(group.title, permalink), + `This page combines supporting DCAT-US 3.0 classes used with the main schema classes.`, + "", + sections.join("\n\n---\n\n"), + "", + ].join("\n"); + + writeFile(path.join(outputDir, group.output), pageContent); + }); +} + +function main() { + try { + ensureSubmoduleReady(); + + if (!fs.existsSync(docsSourceDir)) { + throw new Error(`Source docs directory not found: ${docsSourceDir}`); + } + + fs.mkdirSync(outputDir, { recursive: true }); + buildMainClassPages(); + buildGroupedPages(); + + process.stdout.write("Merged DCAT-US 3.0 docs into pages/_data_standards/dcat-us-3/\n"); + } catch (error) { + process.stderr.write(`${error.message}\n`); + process.exit(1); + } +} + +main();