@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:ScaleType a rdfs:Class,
        owl:Class,
        sh:NodeShape ;
    rdfs:label "Scale type" ;
    qudt:plainTextDescription """
  Scales, or scales of measurement (or categorization) provide ways of quantifying measurements, values and other enumerated values according to a normative frame of reference. 
  Four different types of scales are typically used. 
  These are interval, nominal, ordinal and ratio scales.
  """ ;
    rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/qudt>,
        <http://qudt.org/3.2.1/schema/shacl/qudt> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom qudt:MathsFunctionType ;
            owl:onProperty qudt:permissibleMaths ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:dataStructure ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty qudt:dataStructure ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:TransformType ;
            owl:onProperty qudt:permissibleTransformation ],
        qudt:EnumeratedValue ;
    sh:property qudt:ScaleType-dataStructure,
        qudt:ScaleType-permissibleMaths,
        qudt:ScaleType-permissibleTransformation .

