QuantityKind Vocabulary Submission Guidelines - qudt/qudt-public-repo GitHub Wiki

This document describes the required procedures to submit a conforming quantity kind to an existing quantity kind vocabulary file, as well as the required metadata for submitting a new quantity kind vocabulary file (such as a new domain-specific vocabulary). Please follow our git best practices.

Adding a quantity kind to an existing vocabulary file (Recommended method)

Adding a new quantity kind vocabulary file


Adding a quantity kind to an existing vocabulary file. (Recommended method)

To add a new quantity kind to the existing vocabularies, code should be added either directly to the file, quantity kinds vocabulary file, vocab/unit/VOCAB_QUDT-QUANTITY-KINDS-ALL.ttl (preferred), or to a staging file in the /submissions folder (If there is uncertainty, please ask). Example entries are given below. The following 5 naming rules apply:

Qname naming rules

Of course, each qname must be unique in the quantitykind: namespace.

  • Rule 1: Title Case notation except in cases of acronyms, abbreviations, and predefined nomenclature such as chemical symbols. No hyphens or underscores allowed except as per Rule 6

    Examples:
    Action
    AbsoluteActivity
    APIGravity, where API is an acronym
    
  • Rule 2: Concept qualifiers (sub types, as in skos:broader) precede the base quantity kind. No underscores or hyphens are allowed except as noted in Rule 6

    Examples:
    AtmosphericPressure, where Atmospheric is the qualifier and Pressure is the base quantity kind
    AtomicCharge, where Atomic is the qualifier and [Electric]Charge is the base quantity kind
    AtomicMass, where Atomic is the qualifier and Mass is the base quantity kind
    
  • Rule 3: Where multiple concept qualifiers exist for a quantity kind they will be aggregated as per Rule 1, (i.e., title case)

    Examples:
    BinaryLogarithmicMedianInformationFlow
    ClosestApproachRadius
    CommonLogarithmicMedianInformationFlow
    CorrelatedColorTemperature
    
  • Rule 4: Exponents, when they occur in the quantity kind, appear as text before the base quantity kind

    Examples:
    CubicExpansionCoefficient, where Cubic is the exponent for the ExpansionCoefficient base quantity kind
    SquareTime, where Square is the exponent for the Time base quantity kind
    LogarithmicFrequencyInterval, where Logarithmic is the exponent for the Frequency base quantity kind
    
  • Rule 5: Complex (numerator/denominator) quantity kinds

    Include "Per" in the Name

    Examples:
    EnergyPerAreaElectricCharge, where Energy is the quantity kind in the numerator, and ElectricCharge is the quantity kind in the denominator
    CubicElectricDipoleMomentPerSquareEnergy, where Cubic is the exponent for the ElectricDipoleMoment base quantity kind in the numerator, and Square is the exponent for the Energy base quantity kind in the denominator
    
  • Rule 6: Quantity kinds that represent vector components use an underscore to denote the vector component from the quantity kind base

    Examples:
    ComplexFrequency_Imaginary, where ComplexFrequency is the quantity kind and Imaginary is the vector component
    ComplexFrequency_Real, where ComplexFrequency is the quantity kind and Real is the vector component
    MomentOfInertia_Y, where MomentOfInertia is the quantity kind and Y is the vector component
    MomentOfInertia_Z, where MomentOfInertia is the quantity kind and Z is the vector component
    

The following 6 rules apply to specialty quantity kinds

  • Rule 7: Constant quantity kinds

    Base quantity is terminated by the word "Constant"

    Examples:
    AvogadroConstant
    BoltzmannConstant
    DecayConstant
    
  • Rule 8: Coefficient quantity kinds

    Base quantity kind is terminated by the word "Coefficient"

    Examples:
    CombinedNonEvaporativeHeatTransferCoefficient
    DiffusionCoefficient
    DragCoefficient
    
  • Rule 9: Threshold quantity kinds

    Base quantity is terminated by the word "Threshold"

    Examples:
    ColdReceptorThreshold
    OlfactoryThreshold
    SignalDetectionThreshold
    
  • Rule 10: Factor quantity kinds

    Base quantity is terminated by the word "Factor"

    Examples:
    CompressibilityFactor
    CouplingFactor
    Debye-WallerFactor
    
  • Rule 11: Ratio quantity kinds

    Base quantity is terminated by the word "Ratio"

    Examples:
    DimensionlessRatio
    ElectricalPowerToMassRatio
    HeatCapacityRatio
    
  • Rule 12: Number quantity kinds

    No real base quantity, the word "Number" is part of the unitless quantity kind

    Examples:
    AtomicNumber
    ChargeNumber
    QuantumNumber
    StoichiometricNumber
    

Required quantity kind properties

The absolute minimum set of required properties are shown in the following example:

quantitykind:AbsorbedDose
  rdf:type qudt:QuantityKind ;
  qudt:hasDimensionVector qkdv:A0E0L2I0M0H0T-2D0 ;
  qudt:plainTextDescription "Absorbed Dose (also known as Total Ionizing Dose, TID) is a measure of the energy deposited in a medium by ionizing radiation. It is equal to the energy deposited per unit mass of medium, and so has the unit J/kg, which is given the special name Gray (Gy)." ;
  rdfs:isDefinedBy <http://qudt.org/$$QUDT_VERSION$$/vocab/quantitykind> ;
  rdfs:label "Absorbed Dose" ;
  skos:broader quantitykind:SpecificEnergy ;
.

In other words,

  • rdf:type . qudt:QuantityKind, and optionally any other qudt class names in the QuantityKind class hierarchy

  • qudt:hasDimensionVector . The dimensions associated with this quantity kind

  • qudt:plainTextDescription . Some sort of description (No language tags here, please).

  • rdfs:label . The appropriate label for this quantitykind, following the same conventions as for Units, described here.

  • rdfs:isDefinedBy . The graph this quantitykind is defined in (which by convention is uniquely associated with the containing file). Note the variable "$$QUDT_VERSION$$" in the graph URI that gets converted to a version number during the build process.

  • skos:broader . Required if this is a specialization of another quantity kind (i.e. it has the same dimensionality, but is more specific).

There are additional recommended properties, shown in this excerpt. Please note that we are in the process of migrating all the values of qudt:symbol to Unicode, so please do that for any new submissions.

quantitykind:AbsorbedDose
  qudt:symbol "D" ;
  qudt:exactMatch <http://dbpedia.org/resource/Absorbed_dose> ;
  skos:prefLabel "Absorbed Dose" ;
  prov:wasDerivedFrom <http://www.iso.org/iso/catalogue_detail?csnumber=31895> ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/Absorbed_dose> ;
.

All possible properties that could be included can be found in the QUDT Schema file https://github.com/qudt/qudt-public-repo/blob/main/src/main/rdf/schema/SCHEMA_QUDT.ttl for OWL, or https://github.com/qudt/qudt-public-repo/blob/main/src/main/rdf/schema/shacl/SCHEMA_QUDT_NoOWL.ttl for SHACL.

Adding a new quantity kind vocabulary

Adding an entirely new vocabulary involves some additional work related to defining an additional ontology along with the metadata for the ontology and the catalog entries needed to have it appear on the QUDT website. You can use the template vocabulary file found here as a starting point. After making a copy of this template file, change all occurrences of:

  • "Template" to your vocabulary name
  • "2019-01-01" to the date of creation, publication, etc.
  • "9999" to an appropriate code number, if applicable
  • "Your name" to your name

One sample quantitykind (with qname quantitykind:ExampleTemplateQuantityKind) is included in the template file, which can be used for reference and then deleted. Remember to change the file name according to the content being added. Below is the file naming convention used in QUDT:

  • VOCAB_QUDT-QUANTITY-KINDS-<TYPE>-v2.1.ttl

Alternatively, you could copy an existing quantitykind graph and modify it, making sure to follow the naming and property rules.

Once your new vocabulary file has been created, you should submit a pull request as documented in our Git Best Practices.

(File last modified 2026-03-08 by Jack Hodges)

⚠️ **GitHub.com Fallback** ⚠️