URN V10

From FMR Knowledge Base
Revision as of 06:47, 25 August 2022 by Vmurrell (talk | contribs) (URN Identifiers)
Jump to navigation Jump to search

Overview

A URN is an abbreviation for Uniform Resource Name. The URN, as used by the SDMX specification, is a globally unique identifier to any Identifiable SDMX Structure.

The URN is used as a mechanism to link structures together without having to know the exact location of the structure, this is how the URN differs from a URL, the former provides a long lasting references which is agnostic to location, the latter provides a precise location of where to obtain the resource.

Structure of a SDMX URN

A URN is made up of 2 to 3 parts, depending on the type of structure being referenced.

  1. Namespace
  2. Reference to the Maintainable Structure
  3. Reference to the Identifiable Structure (if the URN is referencing a Structure within a Maintainable, i.e a Code within a Codelist)

URN Namespace

The URN Namespaces are defined by SDMX, and take the following syntax:

URN Namespace.png

The prefix for all SDMX Structural Metadata is urn:sdmx:org.sdmx.infomodel. The Package and Class are used to represent the type of structure being referenced.


URN Identifiers

The URN Namespace identifies which type of Structure is being referenced, i.e., a Codelist, Data Structure, Concept, etc.

The subsequent properties in the URN Namespace are used to Identify the structure, starting with the Maintainable identifiers, which are:

  1. Agency Id
  2. Id
  3. Version

URN Maintainable.png

If the structure is not a Maintainable structure, but instead lives inside one, i.e a Code which lives inside a Codelist or a Dimension which lives inside a Data Structure, then the remainder of the URN is used to identify the structure inside the Maintainable parent.

URN Identifiable.png

For structures which live nested inside others, i.e., a Category which is a number of levels deep, the nesting is part of the URN identification.


urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:STAT_SUBJECT_MATTER(1.0).DEMO_SOCIAL_STAT.HEALTH


Where the HEALTH Category is a child of the DEMO_SOCIAL_STAT Category.

URN Examples

Structure Type Package Class Parent Example
Agency Scheme base AgencyScheme - urn:sdmx:org.sdmx.infomodel.base.AgencyScheme=SDMX:AGENCIES(1.0)
Agency base Agency AgencyScheme urn:sdmx:org.sdmx.infomodel.base.Agency=SDMX
Data Provider Scheme base DataProviderScheme - urn:sdmx:org.sdmx.infomodel.base.DataProviderScheme=FAO:DATA_PROVIDERS(1.0)
Data Provider base DataProvider DataProviderScheme urn:sdmx:org.sdmx.infomodel.base.DataProvider=FAO:DATA_PROVIDERS(1.0).FR2
Data Consumer Scheme base DataConsumerScheme - urn:sdmx:org.sdmx.infomodel.base.DataConsumerScheme=FAO:DATA_CONSUMERS(1.0)
Data Consumer base DataConsumer DataConsumerScheme urn:sdmx:org.sdmx.infomodel.base.DataConsumer=FAO:DATA_CONSUMER(1.0).FR2
Organisation Unit Scheme base OrganisationUnitScheme - urn:sdmx:org.sdmx.infomodel.base.OrganisationUnitScheme=FAO:UNITSCHEME_A(1.0)
Organisation Unit base OrganisationUnit OrganisationUnitScheme urn:sdmx:org.sdmx.infomodel.base.OrganisationUnit=FAO:UNITSCHEME_A(1.0).STATS
Categorisation categoryscheme Categorisation - urn:sdmx:org.sdmx.infomodel.categoryscheme.Categorisation=IMF:CAT1(1.0)
Category Scheme categoryscheme CategoryScheme - urn:sdmx:org.sdmx.infomodel.categoryscheme.CategoryScheme=SDMX:STAT_SUBJECT_MATTER(1.0)
Category categoryscheme Category CategoryScheme urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:STAT_SUBJECT_MATTER(1.0).DEMO_SOCIAL_STAT
Reporting Taxonomy categoryscheme ReportingTaxonomy - urn:sdmx:org.sdmx.infomodel.categoryscheme.ReportingTaxonomy=SDMX:RT(1.0)
Reporting Category categoryscheme ReportingCategory ReportingTaxonomy urn:sdmx:org.sdmx.infomodel.categoryscheme.ReportingCategory=SDMX:RT(1.0).CAT1
Concept Scheme conceptscheme ConceptScheme - urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=SDMX:CROSS_DOMAIN_CONCEPTS(2.0)
Concept conceptscheme Concept ConceptScheme urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=SDMX:CROSS_DOMAIN_CONCEPTS(2.0).FREQ
Codelist codelist Codelist - urn:sdmx:org.sdmx.infomodel.codelist.Codelist=SDMX:CL_FREQ(2.0)
Code codelist Code Codelist urn:sdmx:org.sdmx.infomodel.codelist.Code=SDMX:CL_FREQ(2.0).A
Data Structure datastructure DataStructure - urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ESTAT:CPI(1.1)
Attribute List datastructure AttributeDescriptor DataStructure urn:sdmx:org.sdmx.infomodel.datastructure.AttributeDescriptor=ESTAT:CPI(1.1).AttributeDescriptor
Attribute datastructure DataAttribute AttributeDescriptor urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ESTAT:CPI(1.0).DISS_ORG
Dimension List datastructure DimensionDescriptor DataStructure urn:sdmx:org.sdmx.infomodel.datastructure.DimensionDescriptor=ESTAT:CPI(1.1).DimensionDescriptor
Dimension datastructure Dimension DimensionDescriptor urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ESTAT:CPI(1.0).FREQ
Group List datastructure GroupDimensionDescriptor DataStructure urn:sdmx:org.sdmx.infomodel.datastructure.GroupDimensionDescriptor=ESTAT:CPI(1.1).SiblingGroup
Measure List datastructure MeasureDescriptor DataStructure urn:sdmx:org.sdmx.infomodel.datastructure.MeasureDescriptor=ESTAT:CPI(1.1).MeasureDescriptor
Primary Measure datastructure PrimaryMeasure MeasureDescriptor urn:sdmx:org.sdmx.infomodel.datastructure.PrimaryMeasure=ESTAT:CPI(1.1).OBS_VALUE
Time Dimension datastructure TimeDimension DataStructure urn:sdmx:org.sdmx.infomodel.datastructure.TimeDimension=ESTAT:CPI(1.0).TIME_PERIOD
Metadata Structure metadatastructure MetadataStructure -
Report Structure metadatastructure ReportStructure MetadataStructure
Metadata Attribute metadatastructure MetadataAttribute ReportStructure
Metadata Target metadatastructure MetadataTarget MetadataStructure
Metadata Target (URN) metadatastructure IdentifiableObjectTarget MetadataTarget
Metadata Target (Dimension Values) metadatastructure DimensionDescriptorValuesTarget -
Metadataflow metadatastructure Metadataflow -
Process process Process -
Process Step process ProcessStep Process
Transition process Transition ProcessStep
Provision Agreement registry ProvisionAgreement -
Content Constraint registry ContentConstraint -
Structure Set mapping StructureSet -
Structure Map mapping Structure Map StructureSet
Category Scheme Map mapping CategorySchemeMap StructureSet
Concept Scheme Map mapping ConceptSchemeMap StructureSet
Codelist Map mapping CodelistMap StructureSet
Component Map mapping ComponentMap StructureSet
Organisation Scheme Map mapping OrganisationSchemeMap StructureSet