@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

qudt:Unit a rdfs:Class,
        owl:Class,
        sh:NodeShape ;
    rdfs:label "Unit" ;
    dcterms:description """
  A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension). 
  For example, the meter is a quantity of length that has been rigorously defined and standardized by the BIPM (International Board of Weights and Measures). 
  Any measurement of the length can be expressed as a number multiplied by the unit meter. 
  More formally, the value of a physical quantity Q with respect to a unit (U) is expressed as the scalar multiple of a real number (n) and U, as  $Q = nU$.
  """^^qudt:LatexString ;
    qudt:informativeReference "http://dbpedia.org/resource/Category:Units_of_measure"^^xsd:anyURI,
        "http://www.allmeasures.com/Fullconversion.asp"^^xsd:anyURI ;
    rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/qudt>,
        <http://qudt.org/3.2.1/schema/shacl/overlay/qudt>,
        <http://qudt.org/3.2.1/schema/shacl/qudt> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:minCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:hasDimensionVector ],
        [ a owl:Restriction ;
            owl:cardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:hasDimensionVector ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:conversionOffsetSN ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty qudt:mathMLdefinition ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:SystemOfUnits ;
            owl:onProperty qudt:derivedUnitOfSystem ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:decimal ;
            owl:onProperty qudt:conversionOffset ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:qkdvNumerator ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:mathMLdefinition ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:conversionMultiplierSN ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty qudt:udunitsCode ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:prefix ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:scalingOf ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:decimal ;
            owl:onProperty qudt:factorUnitScalar ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:double ;
            owl:onProperty qudt:conversionOffsetSN ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:hasDimensionVector ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:Unit ;
            owl:onProperty qudt:hasReciprocalUnit ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:QuantityKindDimensionVector ;
            owl:onProperty qudt:qkdvNumerator ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:ucumCode ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:conversionOffset ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:QuantityKind ;
            owl:onProperty qudt:hasQuantityKind ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:Unit ;
            owl:onProperty qudt:scalingOf ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:conversionMultiplier ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty qudt:uneceCommonCode ],
        [ a owl:Restriction ;
            owl:minCardinality "0"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:latexSymbol ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty qudt:siUnitsExpression ],
        [ a owl:Restriction ;
            owl:minCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:hasQuantityKind ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:SystemOfUnits ;
            owl:onProperty qudt:isUnitOfSystem ],
        [ a owl:Restriction ;
            owl:minCardinality "0"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:siUnitsExpression ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:factorUnitScalar ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:qkdvDenominator ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:SystemOfUnits ;
            owl:onProperty qudt:applicableSystem ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:SystemOfUnits ;
            owl:onProperty qudt:definedUnitOfSystem ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:SystemOfUnits ;
            owl:onProperty qudt:derivedCoherentUnitOfSystem ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:QuantityKindDimensionVector ;
            owl:onProperty qudt:qkdvDenominator ],
        [ a owl:Restriction ;
            owl:minCardinality "0"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:latexDefinition ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:decimal ;
            owl:onProperty qudt:conversionMultiplier ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty qudt:iec61360Code ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:QuantityKindDimensionVector ;
            owl:onProperty qudt:hasDimensionVector ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:Prefix ;
            owl:onProperty qudt:prefix ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:double ;
            owl:onProperty qudt:conversionMultiplierSN ],
        qudt:Concept,
        qudt:Narratable,
        qudt:Verifiable ;
    sh:property qudt:Unit-altSymbol,
        qudt:Unit-applicableSystem,
        qudt:Unit-conversionMultiplier,
        qudt:Unit-conversionMultiplierSN,
        qudt:Unit-conversionOffset,
        qudt:Unit-conversionOffsetSN,
        qudt:Unit-definedUnitOfSystem,
        qudt:Unit-derivedCoherentUnitOfSystem,
        qudt:Unit-derivedUnitOfSystem,
        qudt:Unit-expression,
        qudt:Unit-factorUnitScalar,
        qudt:Unit-hasDimensionVector,
        qudt:Unit-hasFactorUnit,
        qudt:Unit-hasQuantityKind,
        qudt:Unit-hasReciprocalUnit,
        qudt:Unit-iec61360Code,
        qudt:Unit-latexDefinition,
        qudt:Unit-latexSymbol,
        qudt:Unit-mathMLdefinition,
        qudt:Unit-omUnit,
        qudt:Unit-prefix,
        qudt:Unit-qkdvDenominator,
        qudt:Unit-qkdvNumerator,
        qudt:Unit-scalingOf,
        qudt:Unit-siExactMatch,
        qudt:Unit-siUnitsExpression,
        qudt:Unit-symbol,
        qudt:Unit-ucumCode,
        qudt:Unit-udunitsCode,
        qudt:Unit-uneceCommonCode,
        qudt:Unit-unitOfSystem .

