@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 vaem: <http://www.linkedmodel.org/schema/vaem#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

qudt:ScalarDatatype a rdfs:Class,
        owl:Class,
        sh:NodeShape ;
    rdfs:label "Scalar Datatype" ;
    dcterms:description """
  Scalar data types are those that have a single value. 
  The permissible values are defined over a domain that may be integers, float, character or boolean. 
  Often a scalar data type is referred to as a primitive data type.
  """ ;
    vaem:isElaboratedIn <http://qudt.org/3.2.1/schema/shacl/datatype> ;
    rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype>,
        <http://qudt.org/3.2.1/schema/qudt>,
        <http://qudt.org/3.2.1/schema/shacl/datatype>,
        <http://qudt.org/3.2.1/schema/shacl/qudt> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:rdfsDatatype ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:bitOrder ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:encoding ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:maxExclusive ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:maxInclusive ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:bytes ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:byteOrder ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:bits ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:length ],
        qudt:Datatype,
        rdfs:Datatype ;
    sh:property qudt:ScalarDatatype-bitOrder,
        qudt:ScalarDatatype-bits,
        qudt:ScalarDatatype-byteOrder,
        qudt:ScalarDatatype-bytes,
        qudt:ScalarDatatype-encoding,
        qudt:ScalarDatatype-length,
        qudt:ScalarDatatype-maxExclusive,
        qudt:ScalarDatatype-maxInclusive,
        qudt:ScalarDatatype-minExclusive,
        qudt:ScalarDatatype-minInclusive,
        qudt:ScalarDatatype-rdfsDatatype .

