@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix coords: <http://qudt.org/vocab/coords/> .
@prefix datatype: <http://qudt.org/vocab/datatype/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dtype: <http://www.linkedmodel.org/schema/dtype#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix vaem: <http://www.linkedmodel.org/schema/vaem#> .

<http://qudt.org/3.2.1/schema/datatype>
  a owl:Ontology ;
  owl:imports <http://www.linkedmodel.org/schema/dtype> ;
  owl:imports <http://www.linkedmodel.org/schema/vaem> ;
  owl:imports <http://www.w3.org/2004/02/skos/core> ;
  owl:versionIRI <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "QUDT SCHEMA - Datatypes" ;
  vaem:hasGraphMetadata vaem:GMD_SCHEMA-DATATYPE .

qudt:AbstractDatatype
  a owl:Class ;
  dcterms:description """
  <p>An "Abstract Datatype" (ADT) is a specification of a set of data and the set of operations that can be performed on the data. 
  Such a data type is abstract in the sense that it is independent of various concrete implementations. 
  The definition can be mathematical, or it can be programmed as an interface. 
  A first class ADT supports the creation of multiple instances of the ADT, and the interface normally provides a constructor,
   which returns an abstract handle to new data, and several operations, 
   which are functions accepting the abstract handle as an argument.</p>
  """^^rdf:HTML ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/Abstract_data_type> ;
  prov:wasInfluencedBy <http://xlinux.nist.gov/dads/HTML/abstractDataType.html> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Abstract Datatype" ;
  rdfs:subClassOf qudt:StructuredDatatype .

qudt:AlgebraicDatatype
  a owl:Class ;
  dcterms:description """<p>An <em>Algebraic Datatype</em> is a datatype each of whose values are data from other data types wrapped in one of the constructors of the data type. 
Any wrapped datum is an argument to the constructor. 
In contrast to other data types, the constructor is not executed and the only way to operate on the data is to unwrap the constructor using pattern matching.
</p>
<p>The most common algebraic data type is a list with two constructors: Nil or [] for an empty list, and Cons (an abbreviation of constructor), 
 ::, or : for the combination of a new element with a shorter list (for example (Cons 1 '(2 3 4)) or 1:[2,3,4]).
</p>
<p>Special cases of algebraic types are product types i.e. records (only one constructor) and enumerated types (many constructors with no arguments). 
Algebraic types are one kind of composite type (i.e. a type formed by combining other types).
</p>
<p>An algebraic data type may also be an abstract data type (ADT) if it is exported from a module without its constructors. 
Values of such a type can only be manipulated using functions defined in the same module as the type itself.
</p>"""^^rdf:HTML ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/Algebraic_data_type> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Algebraic Datatype" ;
  rdfs:seeAlso qudt:AbstractDatatype ;
  rdfs:subClassOf qudt:StructuredDatatype .

qudt:AlignmentType
  a owl:Class ;
  dcterms:description """
  Specifies how a physical data field is aligned. 
  The alignment could be at a bit, byte or word boundary.
  """ ;
  owl:oneOf ( datatype:BitAligned datatype:ByteAligned datatype:WordAligned ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Alignment type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:Array
  a owl:Class ;
  dcterms:description """
  <p>An <em>Array></em> is a data structure that stores a collection of elements, typically of the same type, in a contiguous block of memory. 
  Each element in an array is identified by an index or key, which is typically a numerical identifier, either starting at '0' or '1'.
  </p>
  <p>The key considerations for an Array are:
  </p>
  <ol>
  <li>Fixed Size: The size of an array may be pre-determined when it is created and cannot be changed;</li>
  <li>Index-Based Access: Elements can be accessed, updated, or modified using their index;</li>
  <li>Contiguous Memory Allocation: The elements are stored in consecutive memory locations, which allows efficient access using the index.</li>
  </ol>
  <p>An Array is represented as ordered entries of values arranged according to its dimensionality.
  The number of dimensions is specified in the attribute 'dimensionality'.
  </p>
  <p>An array can be multi-dimensional.
  Multiple indices are used but they are treated as extensions of the same structure.
  For Example: for a 2D array arr[2][3], indices refer to the row and column positions.
  A 2D array is still represented as a list, where each member of the list is a list.
  </p>
  <p>Higher dimensional arrays can be represented as nested lists.
  For each dimension a new nested list is defined.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Array" ;
  rdfs:subClassOf qudt:StructuredDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:isHeterogeneous ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:dimensionality ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] .

qudt:Array2DvalueList
  a owl:Class ;
  dcterms:description """
  An rdf:List for a 2D array.
  For example "[[1,2], [3,4], [5,6]]"
  """ ;
  rdf:first qudt:List ;
  rdf:rest ( qudt:List ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "2D Array Value List" ;
  rdfs:subClassOf qudt:List .

qudt:ArrayDataOrder
  a owl:Class ;
  dcterms:description "A sub-type of 'Enumerated Value'. Detailed description to be provided in a future version." ;
  owl:oneOf ( datatype:ByColumn datatype:ByRow datatype:ByLeftMostIndex ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Array data order" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:ArrayType
  a owl:Class ;
  dcterms:description """
  <p>An <em>Array Type</em> is a type specification for ordered entries of values arranged according to the dimensions given. 
  The dimensions are given as a list of integers where each integer is the cardinality of each dimension. 
  The number of dimensions is specified in the attribute 'dimensionality'.
  </p>
  <p>Optionally a reference can be made to a variable, whose values are the array entries. 
  The data type of the array entries is an optional field, 'elementType', which points to a data type definition. 
  If the data type is given, then it applies to all elements.  
  If it is not given then the elements can be of different types for each position in the array.
  </p>
  <p>The property <em>qudt:typeMatrix</em> must refer to a matrix of types.
  If a default value is given this can be used to place the appropriate value in a cell when an entry value is not known. 
  If no dimensionality or dimension vector is specified the array is under-specified but still legitimate as a place-holder for a data type.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Array Type" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:AssociativeArray
  a owl:Class ;
  dcterms:description """
  <p>An <em>Associative Array</em> (or <em>Map</em>) is an abstract data type composed of a collection of keys and a collection of values,
   where each key is associated with one value. 
  The operation of finding the value associated with a key is called a lookup or indexing,
   and this is the most important operation supported by an associative array.
  The relationship between a key and its value is sometimes called a mapping or binding.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Associative Array" ;
  rdfs:seeAlso qudt:Map ;
  rdfs:subClassOf qudt:Array .

qudt:AuralCue
  a owl:Class ;
  dcterms:description """
  <p>An aural cue is a sound produced by a device or a system that is used to alert personnel of of an advisory, cautionary, warning, or emergency state.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Aural Cue" ;
  rdfs:subClassOf qudt:ModalCue ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:sound ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:sound ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:sound ;
  ] .

qudt:BalancedTree
  a owl:Class ;
  dcterms:description """
  <p>A <em>Balanced Tree</em> is a data type that defines the properties of data structures that represent balanced trees. 
  A balanced tree is a tree where no leaf is much farther away from the root than any other leaf. 
  Different balancing schemes allow different definitions of "much farther" and different amounts of work to keep them balanced.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Balanced Tree Type" ;
  rdfs:subClassOf qudt:Tree ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:maxDepth ;
  ] .

qudt:BigIntegerType
  a owl:Class ;
  dcterms:description """
  <p>A <em>Big Integer</em> is an integer that can be represented in eight octets (64 bits) of machine memory. 
  Big integers may be signed or unsigned.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Big Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype .

qudt:BinaryTree
  a owl:Class ;
  dcterms:description """
  <p>A <em>Binary Tree</em> is a data type that defines the properties of data structures that represent binary trees. 
  A binary tree is a tree in which each node has at most 2 children.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Binary Tree Type" ;
  rdfs:subClassOf qudt:Tree .

qudt:BitEncodingType
  a owl:Class ;
  dcterms:description """
  <p>A <em>Bit Encoding Type</em> is an encoding type for the correspondence between the two possible values of a bit, 0 or 1, and some interpretation. 
  For example, in a boolean encoding, a bit denotes a truth value, where 0 corresponds to False and 1 corresponds to True.
  </p>"""^^rdf:HTML ;
  owl:oneOf ( datatype:BitEncoding ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Bit Encoding" ;
  rdfs:subClassOf qudt:Encoding .

qudt:BooleanEncodingType
  a owl:Class ;
  owl:oneOf ( datatype:BooleanEncoding datatype:BitEncoding datatype:OctetEncoding ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Boolean Encoding Type" ;
  rdfs:subClassOf qudt:Encoding .

qudt:BooleanType
  a owl:Class ;
  dcterms:description "A boolean data type can take on only two values." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Boolean Type" ;
  rdfs:subClassOf qudt:OrdinalType .

qudt:BooleanTypeEnumeratedValue
  a owl:Class ;
  dcterms:description "Specifies how a boolean value is expressed" ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "boolean value" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:ByteEncodingType
  a owl:Class ;
  dcterms:description "This class contains the various ways that information may be encoded into bytes." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Byte Encoding" ;
  rdfs:subClassOf qudt:Encoding .

qudt:CardinalityType
  a owl:Class ;
  dcterms:description """
  In mathematics, the cardinality of a set is a measure of the number of elements of the set.
  For example, the set $A = {2, 4, 6}$ contains 3 elements, and therefore $A$ has a cardinality of 3. 
  There are two approaches to cardinality: one which compares sets directly using bijections and injections,
   and another which uses cardinal numbers.
  """^^qudt:LatexString ;
  owl:oneOf ( datatype:CT_COUNTABLY-INFINITE datatype:CT_UNCOUNTABLE datatype:CT_FINITE ) ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/Cardinal_number> ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/Cardinality> ;
  qudt:informativeReference "https://en.wikipedia.org/wiki/Cardinal_number"^^xsd:anyURI ;
  qudt:informativeReference "https://en.wikipedia.org/wiki/Cardinality"^^xsd:anyURI ;
  qudt:plainTextDescription "In mathematics, the cardinality of a set is a measure of the number of elements of the set.  For example, the set 'A = {2, 4, 6}' contains 3 elements, and therefore 'A' has a cardinality of 3. There are two approaches to cardinality – one which compares sets directly using bijections and injections, and another which uses cardinal numbers." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Cardinality Type" ;
  rdfs:subClassOf qudt:EnumeratedValue ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty dtype:literal ;
  ] .

qudt:CharEncodingType
  a owl:Class ;
  dcterms:description """
  <p>The class of all character encoding schemes.
  Each defines a rule or algorithm for encoding character data as a sequence of bits or bytes.
  </p>"""^^rdf:HTML ;
  dcterms:description "The class of all character encoding schemes, each of which defines a rule or algorithm for encoding character data as a sequence of bits or bytes." ;
  owl:oneOf ( datatype:CharEncoding ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Char Encoding Type" ;
  rdfs:subClassOf qudt:Encoding .

qudt:CharacterType
  a owl:Class ;
  dcterms:description """
  A <em>Character Type</em> is a data type that defines the type and encoding of single characters.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Character Type" ;
  rdfs:subClassOf qudt:OrdinalType .

qudt:Collection
  a owl:Class ;
  dcterms:description """
  <p>A collection is a grouping of some variable number of zero or more data items that need to be operated upon together in some controlled fashion. 
  Generally, the data items will all share the same data type or are derived from some common ancestor data type.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Collection Type" ;
  rdfs:subClassOf qudt:StructuredDatatype .

qudt:ColorCue
  a owl:Class ;
  dcterms:description """
  <p>A visual cue that uses color to distinguish it from other cues. 
  Each color cue has exactly one corresponding coordinate point in the RGB space.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Color Cue" ;
  rdfs:subClassOf qudt:VisualCue ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:rgbCode ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:rgbCode ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:rgbCode ;
  ] .

qudt:CompositeDataStructure
  a owl:Class ;
  dcterms:description """
  <p>A <em>Composite Data Structure</em>, also referred to as <em>Data Record</em> is a datatype that aggregates element of possibly different types. 
  The aggregated items are called fields or members and are usually identified or indexed by field labels.
  </p>"""^^rdf:HTML ;
  prov:wasInfluencedBy <https://en.wikipedia.org/wiki/List_of_data_structures> ;
  prov:wasInfluencedBy <https://en.wikipedia.org/wiki/Record_(computer_science)> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Composite Data Structure" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:CompositeDatatype
  a owl:Class ;
  dcterms:description """
  <p>A <em>Composite Datatype</em> is a datatype that is constructed from basic primitive types and other composite types. 
  </p>"""^^rdf:HTML ;
  prov:wasInfluencedBy <https://en.wikipedia.org/wiki/List_of_data_structures> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Composite Data Type" ;
  rdfs:subClassOf qudt:StructuredDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:padding ;
  ] .

qudt:CompositeTable
  a owl:Class ;
  dcterms:description "A sub-type of 'Table Type'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Composite Table Type" ;
  rdfs:subClassOf qudt:Table .

qudt:CompositionFunction
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Composition function" ;
  rdfs:subClassOf qudt:Function .

qudt:CompositionTree
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Composition Tree" ;
  rdfs:subClassOf qudt:Tree ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:function ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:function ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:function ;
  ] .

qudt:DataEncoding
  a owl:Class ;
  dcterms:description """
  <p><em>Data Encoding</em> expresses the properties that specify how data is represented at the bit and byte level. 
  These properties are applicable to describing raw data.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Data Encoding" ;
  rdfs:subClassOf qudt:Aspect ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bitOrder ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:encoding ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:byteOrder ;
  ] .

qudt:DataSetElement
  a owl:Class ;
  dcterms:description """
  A field is a tuple that carries a name, a type and optionally other properties that characterize a member element of a composite data structure.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "QUDT DataSet Element" ;
  rdfs:subClassOf qudt:DataItem ;
  rdfs:subClassOf qudt:Tuple ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:optional ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:elementLabel ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:elementLabel ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:elementLabel ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:hasQuantityKind ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:optional ;
  ] .

qudt:Datatype
  a owl:Class ;
  dcterms:description """
  <p>A <em>Datatype</em> is a definition of the type of the "value" of a data item (for example, "all integers between 0 and 10"),
   and the allowable operations on those values; the meaning of the data; and the way values of that type can be stored.
  Some types are primitive - built-in to the language, with no visible internal structure.
  For example "Boolean"; others are composite - constructed from one or more other types (of either kind).
  For example lists, arrays, structures, unions.
  Some languages provide strong typing, others allow implicit type conversion and/or explicit type conversion.
  </p>"""^^rdf:HTML ;
  qudt:informativeReference "http://foldoc.org/data+type"^^xsd:anyURI ;
  qudt:informativeReference "http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Data_type.html"^^xsd:anyURI ;
  qudt:informativeReference "https://en.wikipedia.org/wiki/Data_type"^^xsd:anyURI ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Datatype" ;
  rdfs:subClassOf qudt:Concept ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:pythonName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:cName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:ansiSQLName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:cName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:microsoftSQLServerName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:javaName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:matlabName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:cardinality ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:matlabName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bounded ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:pythonName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:jsName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:vbName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:basis ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:oracleSQLName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:microsoftSQLServerName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:ansiSQLName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:orderedType ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:odbcName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:mySQLName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:protocolBuffersName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:id ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:vbName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:javaName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:oleDBName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:oleDBName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:oracleSQLName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:protocolBuffersName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:jsName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:odbcName ;
  ] .

qudt:DateStringType
  a owl:Class ;
  dcterms:description "Date String Types are scalar data types that define the properties of strings that represent calendar dates." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Date String Type" ;
  rdfs:subClassOf qudt:DateTimeStringType .

qudt:DateTimeStringEncodingType
  a owl:Class ;
  dcterms:description "Date Time encodings are logical encodings for expressing date/time quantities as strings by applying unambiguous formatting and parsing rules." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Date Time String Encoding Type" ;
  rdfs:subClassOf qudt:StringEncodingType ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:allowedPattern ;
  ] .

qudt:DateTimeStringType
  a owl:Class ;
  dcterms:description """
  <p>A class of data types for structures that represent temporal quantities.
  For example, calendar dates, times, duration of time since a given epoch, etc.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Temporal Type" ;
  rdfs:subClassOf qudt:StringType ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:encoding ;
  ] .

qudt:Dictionary
  a owl:Class ;
  dcterms:description "A \"Map\"." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Dictionary Type" ;
  rdfs:subClassOf qudt:Map .

qudt:DimensionalDatatype
  a owl:Class ;
  dcterms:description """
  <p>A <em>Dimensional Data Type</em> is a data type that specifies a physical quantity or unit of measure.
  Information about the physical dimensions of the quantities and units is embedded in their types.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Dimensional Data Type" ;
  rdfs:subClassOf qudt:StructuredDatatype .

qudt:DiscreteState
  a owl:Class ;
  dcterms:description """
  <p>A <em>Discrete State</em> is the parent class for enumerated values that express a 'State' or 'Condition'.
  Examples are 'on' and 'off for a switch, 'open' and 'closed' for a valve, and 'wet' and 'dry'.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Discrete State" ;
  rdfs:subClassOf qudt:EnumeratedValue ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:inverted ;
  ] .

qudt:DoublePrecisionType
  a owl:Class ;
  dcterms:description """
  <p>A double precision data type specifies how a numeric value, such as an integer or real number, is stored in memory.
  Typically this occupies two words in computer memory, where the byte length of a word depends on machine address size of the computer processor. 
  For example, on 32-bit machine architectures, a word is four bytes, and so double precision data value on a 32-bit machine architecture occupies eight bytes of memory.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Double Precision Type" ;
  rdfs:subClassOf qudt:NumericType .

qudt:Encoding
  a owl:Class ;
  dcterms:description """
  <p>An encoding is a rule or algorithm that is used to convert data from a native, or unspecified form into a specific form that satisfies the encoding rules. 
  Examples of encodings include character encodings, such as UTF-8.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Encoding" ;
  rdfs:subClassOf skos:Concept ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bits ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bytes ;
  ] .

qudt:EndianType
  a owl:Class ;
  owl:oneOf ( datatype:LittleEndian datatype:BigEndian ) ;
  qudt:informativeReference "https://en.wikipedia.org/wiki/Endianness"^^xsd:anyURI ;
  qudt:plainTextDescription "In computing, endianness is the ordering used to represent some kind of data as a sequence of smaller units. Typical cases are the order in which integer values are stored as bytes in computer memory (relative to a given memory addressing scheme) and the transmission order over a network or other medium. When specifically talking about bytes, endianness is also referred to simply as byte order.  Most computer processors simply store integers as sequences of bytes, so that, conceptually, the encoded value can be obtained by simple concatenation. For an 'n-byte' integer value this allows 'n!' (n factorial) possible representations (one for each byte permutation). The two most common of them are: increasing numeric significance with increasing memory addresses, known as little-endian, and its opposite, called big-endian." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Endian Type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:EngineeringValueTupleMember
  a owl:Class ;
  dcterms:description """
  <p>A sub-type of 'Tuple Member Type'. 
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Engineering Value Tuple Member" ;
  rdfs:subClassOf qudt:TupleMember .

qudt:Enumeration
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "QUDT Enumeration" ;
  rdfs:subClassOf dtype:Enumeration ;
  rdfs:subClassOf qudt:StructuredDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:encoding ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bits ;
  ] ;
  vaem:isElaboratedIn <http://qudt.org/3.2.1/schema/shacl/datatype> .

qudt:EnumerationScale
  a owl:Class ;
  dcterms:description """
  A sub-type of 'DTYPE Enumeration'.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Enumeration scale" ;
  rdfs:subClassOf dtype:Enumeration ;
  rdfs:subClassOf qudt:Scale .

qudt:FieldType
  a owl:Class ;
  dcterms:description """
  A sub-type of 'Composite Data Type'.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Field Type" ;
  rdfs:subClassOf qudt:CompositeDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:fieldType ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:elementName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:elementName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:elementName ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:fieldLabel ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:fieldLabel ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:fieldLabel ;
  ] .

qudt:FileFormat
  a owl:Class ;
  dcterms:description """
  A sub-type of 'Enumerated Value'.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "File format" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:FixedIntervalTimeSeriesArray
  a owl:Class ;
  dcterms:description """
  <p>A <em>Fixed Interval Time Series Array Type</em> is a data type that specifies the properties of arrays that hold time series data.
  For example, data that has been sampled over uniformly spaced time intervals.
  A time series is a sequence of data points, measured typically at successive times, spaced at uniform or non-uniform time intervals.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Fixed Interval Time Series Array Type" ;
  rdfs:subClassOf qudt:TimeSeriesArray .

qudt:FixedIntervalTimeSeriesArrayType
  a owl:Class ;
  dcterms:description """<p>A <em>Fixed Interval Time Series Array Type</em> is a data type that specifies the properties of arrays that hold time series data.
 For example, data that has been sampled over uniformly spaced time intervals. 
 A time series is a sequence of data points, measured typically at successive times, spaced at uniform or non-uniform time intervals.
 </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Fixed Interval Time Series Array Type" ;
  rdfs:subClassOf qudt:TimeSeriesArrayType .

qudt:FloatingPointEncodingType
  a owl:Class ;
  dcterms:description """
  <p>A type for specifying an "Encoding" with the following instance(s): 
  "Double Precision Encoding", and "Single Precision Real Encoding".
  </p>"""^^rdf:HTML ;
  dcterms:description """
  A "Encoding" with the following instance(s): "Double Precision Encoding", "Single Precision Real Encoding".
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Floating Point Encoding" ;
  rdfs:subClassOf qudt:Encoding .

qudt:Function
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Function" ;
  rdfs:subClassOf qudt:Concept .

qudt:FunctionDatatype
  a owl:Class ;
  dcterms:description """
  <p>A function data type defines the input and output data type for a function or method. 
  The data type includes at least the function name and the number of its parameters. 
  In some programming languages, it may also specify the function's return type or the types of its arguments.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Function Data Type" ;
  rdfs:subClassOf qudt:StructuredDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:returnType ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:functionArity ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:functionArity ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:returnType ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:functionArity ;
  ] .

qudt:Graph
  a owl:Class ;
  dcterms:description """
  <p>A <em>Graph</em> is an instance of a kind of abstract data type, that consists of a set of nodes (also called vertices) and a set of edges that establish relationships (connections) between the nodes. 
  A Graph Type is a data type that defines the properties of data structures that represent graphs and their members (nodes and edges).
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Graph Type" ;
  rdfs:subClassOf qudt:DataItem .

qudt:Heap
  a owl:Class ;
  dcterms:description """
  <p>A heap is a specialized tree-based data structure that satisfies the condition: if B is a child node of A, then $key(A) \\ge key(B)$. 
  This implies that an element with the greatest key is always in the root node, and so such a heap is sometimes called a max heap. 
  Alternatively, if the comparison is reversed, the smallest element is always in the root node, which results in a min heap. 
  The function or method that implements the key() operator is specified by the heap type.
  </p>"""^^rdf:HTML ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/Heap_(data_structure)> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Heap" ;
  rdfs:subClassOf qudt:OrderedTree .

qudt:HeterogenousArray
  a owl:Class ;
  dcterms:description """
  <p>An <em>Array></em> is a data structure that stores a collection of elements, typically of the same type, in a contiguous block of memory. 
  Each element in an array is identified by an index or key, which is typically a numerical identifier, either starting at '0' or '1'.
  </p>
  <p>The key considerations for an Array are:
  </p>
  <ol>
  <li>Fixed Size: The size of an array may be pre-determined when it is created and cannot be changed;</li>
  <li>Index-Based Access: Elements can be accessed, updated, or modified using their index;</li>
  <li>Heterogenous Elements: all elements in the array may be of different data types;</li>
  <li>Contiguous Memory Allocation: 
    the elements are stored in consecutive memory locations, which allows efficient access using the index.</li>
  </ol>
  <p>An Array is represented as ordered entries of values arranged according to its dimensionality.
  The number of dimensions is specified in the attribute 'dimensionality'.
  </p>
  <p>The property 'qudt:datatype' refers to a list if the datatypes of the elements.  
  </p>
  <p>An heterogenous array can be multi-dimensional.
  Multiple indices are used but they are treated as extensions of the same structure.
  For example: for a 2D array arr[2][3], indices refer to the row and column positions.
  A 2D array is still represented as a list, where each member of the list is a list.
  </p>
  <p>Higher dimensional arrays can be represented as nested lists.
  For each dimension a new nested list is defined.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Heterogenous Array" ;
  rdfs:subClassOf qudt:Array ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] .

qudt:HexBinaryType
  a owl:Class ;
  dcterms:description "A string composed of hex characters." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Hexidecimal Binary Type" ;
  rdfs:subClassOf qudt:TextStringType ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:minLength ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:maxLength ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:pattern ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:length ;
  ] .

qudt:HomogeneousArray
  a owl:Class ;
  dcterms:description """
  <p>An <em>Array></em> is a data structure that stores a collection of elements, typically of the same type, in a contiguous block of memory. 
  Each element in an array is identified by an index or key, which is typically a numerical identifier, either starting at '0' or '1'.
  </p>
  <p>The key considerations for an Array are:
  </p>
  <ol>
  <li>Fixed Size: The size of an array may be pre-determined when it is created and cannot be changed;</li>
  <li>Index-Based Access: Elements can be accessed, updated, or modified using their index;</li>
  <li>Homogeneous Elements: all elements in an array must be of the same datatype;</li>
  <li>Contiguous Memory Allocation: The elements are stored in consecutive memory locations, which allows efficient access using the index.</li>
  </ol>
  <p>An Array is represented as ordered entries of values arranged according to its dimensionality.
  The number of dimensions is specified in the attribute 'dimensionality'.
  </p>
  <p>The property 'qudt:datatype' refers to the datatype of the elements.  
  </p>
  <p>An array can be multi-dimensional.
  Multiple indices are used but they are treated as extensions of the same structure.
  For Example: for a 2D array arr[2][3], indices refer to the row and column positions.
  A 2D array is still represented as a list, where each member of the list is a list.
  </p>
  <p>Higher dimensional arrays can be represented as nested lists.
  For each dimension a new nested list is defined.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Homogeneous Array" ;
  rdfs:subClassOf qudt:Array .

qudt:IconicCue
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Iconic enumeration literal" ;
  rdfs:subClassOf qudt:ModalCue ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:image ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:image ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:image ;
  ] .

qudt:IntegerDatatype
  a owl:Class ;
  dcterms:description "An Integer Type is a data type that specifies how integer numbers are represented and stored in machine memory." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Integer Datatype" ;
  rdfs:subClassOf qudt:NumericType ;
  rdfs:subClassOf qudt:OrdinalType .

qudt:IntegerEncodingType
  a owl:Class ;
  dcterms:description "The encoding scheme for integer types" ;
  owl:oneOf ( datatype:LongUnsignedIntegerEncoding datatype:LongSignedIntegerEncoding
    datatype:ShortUnsignedIntegerEncoding datatype:ShortSignedIntegerEncoding
    datatype:SignedIntegerEncoding datatype:UnsignedIntegerEncoding ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Integer Encoding" ;
  rdfs:subClassOf qudt:Encoding .

qudt:IntegerListShape
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:subClassOf qudt:List .

qudt:InterpolatedTable
  a owl:Class ;
  dcterms:description "A sub-type of 'Table Type'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Interpolated Table Type" ;
  rdfs:subClassOf qudt:Table .

qudt:KinestheticCue
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Kinesthetic Cue" ;
  rdfs:subClassOf qudt:ModalCue .

qudt:LargeObject
  a owl:Class ;
  dcterms:description """
  A 'LargeObject' datatype is used to store blocks of unstructured data (such as text, graphic images, video clips, and sound waveforms). 
  They often are used to allow efficient, random, piece-wise access to the data.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Large object" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:LargeObjectType
  a owl:Class ;
  dcterms:description "A 'LargeObject' datatype is used to store blocks of unstructured data (such as text, graphic images, video clips, and sound waveforms). They often are used to allow efficient, random, piece-wise access to the data." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Large object" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:LimitType
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Limit type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:List
  a owl:Class ;
  dcterms:description "A sub-type of 'AbstractDataItem'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "List" ;
  rdfs:subClassOf qudt:DataItem ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:hasUnit ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:datatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:quantity ;
  ] .

qudt:LongIntegerType
  a owl:Class ;
  dcterms:description """
  A "Long Integer" is an integer that can be represented in four octets (32 bits) of machine memory. 
  Long integers may be signed or unsigned.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Long Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype .

qudt:MajorMinorType
  a owl:Class ;
  dcterms:description "A sub-type of 'Enumerated Value'." ;
  owl:oneOf ( datatype:Minor datatype:Major ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Major minor type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:Map
  a owl:Class ;
  dcterms:description "A Map Type is an abstract data type that defines the properties of map data structures. A Map (or Associative Array) is an abstract data structure composed of a collection of keys and a collection of values, where each key is associated with one value. The operation of finding the value associated with a key is called a lookup or indexing, and this is the most important operation supported by an associative array. The relationship between a key and its value is sometimes called a mapping or binding." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Map Type" ;
  rdfs:seeAlso qudt:AssociativeArray ;
  rdfs:subClassOf qudt:Collection .

qudt:MassPropertiesArray
  a owl:Class, rdf:Class ;
  dcterms:description """
  <p>A <em>Mass Properties Array</em> holds, for an object, four values for the properties:
   Center of Gravity, Mass, Moment of Inertia, and Product of Inertia. </p>
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Mass Properties Array" ;
  rdfs:subClassOf qudt:HeterogenousArray .

qudt:MathsFunctionType
  a owl:Class ;
  dcterms:description "A sub-type of 'QUDT Concept'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Maths Function Type" ;
  rdfs:subClassOf qudt:Concept .

qudt:Matrix
  a owl:Class ;
  dcterms:description """
  <p>A <em>Matrix</em> is a data type that specifies the properties of an N-dimensional data structure.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Matrix" ;
  rdfs:subClassOf qudt:Array .

qudt:MatrixElementOrder
  a owl:Class ;
  dcterms:description "A datatype that specifies the order in which matrix elements are arranged." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Matrix Element Order" ;
  rdfs:subClassOf qudt:StructuredDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:byRow ;
  ] .

qudt:MemoryOrderType
  a owl:Class ;
  dcterms:description "A sub-type of 'Enumerated Value'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Memory order type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:ModalCue
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Modal Cue" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:ModalEnumeration
  a owl:Class ;
  dcterms:description "A sub-type of 'QUDT Enumeration'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Modal Enumeration" ;
  rdfs:subClassOf qudt:Enumeration .

qudt:MultiDimensionalArray
  a owl:Class ;
  dcterms:description """
  <p>A <em>Multi-Dimensional Array</em> is an extension of a standard one-dimensional array,
   where elements are organized in a grid-like structure across two or more dimensions. 
  It is a collection of elements arranged in a tabular or multi-dimensional structure for representing complex datasets,
   such as matrices, tensors, or higher-dimensional data.
  </p>
  <p>The elements of a multi-dimensional array are N-tuples, where 'N' corresponds to the dimensionality of the array.
  Each element is specified using the property 'qudt:element'.
  </p>
  <p>Ordinary or one-dimensional arrays are indexed by a single integer. 
  For a multi-dimensional array, the index into the array uses an ordered list of integers, such as in 'a[3,1,5]'. 
  The length of the list of integers used to index into the multi-dimensional array is always the same.
  This is referred to as the array's dimensionality. 
  The bounds on each of these are called the array's dimensions.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Multi-Dimensional Array Type" ;
  rdfs:subClassOf qudt:Array .

qudt:MultiDimensionalDataFormat
  a owl:Class ;
  dcterms:description """
  Data formats for storing and manipulating scalar and multidimensional data in a platform and discipline independent manner,
   for example HDF, CDF and netCDF.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Multi dimensional data format" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:MultiModalEnumeration
  a owl:Class ;
  dcterms:description "A sub-type of 'QUDT Enumeration'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Multi modal enumeration" ;
  rdfs:subClassOf qudt:Enumeration ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:visualCueEnumeration ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:auralCueEnumeration ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:iconicCueEnumeration ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:kinestheticCueEnumeration ;
  ] .

qudt:MultiModalType
  a owl:Class ;
  dcterms:description "A sub-type of 'Enumerated Value'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Multi Modal Type" ;
  rdfs:subClassOf qudt:EnumeratedValue ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:visualCue ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:auralCue ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:iconicCue ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:kinestheticCue ;
  ] .

qudt:MultiSet
  a owl:Class ;
  dcterms:description "A bag is a set in which elements may be repeated." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Bag" ;
  rdfs:subClassOf qudt:Collection .

qudt:N-Tuple
  a owl:Class ;
  dcterms:description """
  A tuple containing n objects is known as an "n-tuple". 
  For example the 4-tuple (or "quadruple"), with components of respective types PERSON, DAY, MONTH and YEAR.
  This could be used to record that a certain person was born on a certain day of a certain month of a certain year.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "N-Tuple Type" ;
  rdfs:subClassOf qudt:Tuple ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:elementDatatype ;
  ] .

qudt:N-TupleType
  a owl:Class ;
  dcterms:description """
  A tuple containing n objects is known as an "n-tuple". 
  For example the 4-tuple (or "quadruple"), with components of respective types PERSON, DAY, MONTH and YEAR.
  This could be used to record that a certain person was born on a certain day of a certain month of a certain year.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "N-Tuple Type" ;
  rdfs:subClassOf qudt:Tuple ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:elementDatatype ;
  ] .

qudt:NumericType
  a owl:Class ;
  dcterms:description "Numeric data types are data types whose values denote quantities as defined by a mathematical number system." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Numeric Type" ;
  rdfs:subClassOf qudt:ScalarDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:signedness ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:accuracy ;
  ] .

qudt:OctetType
  a owl:Class ;
  dcterms:description "An 8 bit unsigned integer" ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Octet Type" ;
  rdfs:subClassOf qudt:UnsignedIntegerType .

qudt:OffOnStateTypeEnumeration
  a owl:Class ;
  dcterms:description """
  A discrete state enumeration whose values are 'off' and 'on'. 
  The 'off' value is encoded as a zero (0) and the 'on' value as a one (1).
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:subClassOf qudt:Enumeration .

qudt:OnOffStateType
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "On off state type" ;
  rdfs:subClassOf qudt:DiscreteState .

qudt:OnOffStateTypeEnumeration
  a owl:Class ;
  dcterms:description """
  A discrete state enumeration whose values are 'off' and 'on'. 
  The 'on' value is encoded as a zero (0) and the 'off' value as a one (1).
  """ ;
  qudt:inverted true ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:subClassOf qudt:Enumeration .

qudt:OrderedCollection
  a owl:Class ;
  dcterms:description """
  <p>An <em>Ordered Collection Kind</em> is an abstract data type that defines the properties of collection data structures whose members can be linearly ordered. 
  An ordered collection is a collection together with an ordering relation (such as greater than) that linearly orders the collection elements.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Ordered Collection Kind" ;
  rdfs:subClassOf qudt:Collection ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:orderingRelation ;
  ] .

qudt:OrderedTree
  a owl:Class ;
  dcterms:description """
  <p>An "Ordered Tree Type" is a data type that defines the properties of data structures that represent ordered trees. 
  An ordered tree is a tree where the children of every node are ordered, that is, there is a first child, second child, third child, etc. 
  Typically a type specification for an ordered tree will include the comparison operator (such as <b>lt</b> or <b>gt</b>) that is used to order the nodes.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Ordered Tree Type" ;
  rdfs:subClassOf qudt:OrderedCollection ;
  rdfs:subClassOf qudt:Tree .

qudt:OrderedType
  a owl:Class ;
  dcterms:description "Describes how a data or information structure is ordered." ;
  owl:oneOf ( datatype:Unordered datatype:PartiallyOrdered datatype:TotallyOrdered ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Ordered type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:OrdinalType
  a owl:Class ;
  dcterms:description """
  <p>An ordinal data type is a data type that specifies the properties of values that can easily be put in a one to one correspondence with a subset of the natural numbers. 
  Examples include boolean, character, and integer data types.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Ordinal Data Type" ;
  rdfs:subClassOf qudt:ScalarDatatype .

qudt:PaddingType
  a owl:Class ;
  dcterms:description """
  <p>This describes how unused bits of a field are filled. 
  Unused bits could be set to one or zero. 
  A third option is "don't care".
  </p>"""^^rdf:HTML ;
  owl:oneOf ( datatype:PadWithOnes datatype:PadWithZeros datatype:PadWithAny ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Padding type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:ParameterModifiabilityType
  a owl:Class ;
  dcterms:description "An enumeration of literals that signify whether a parameter is modifiable and if so, by whom." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Parameter modifiability type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:PartialArray
  a owl:Class ;
  dcterms:description """
  A partial array is an Array with two attributes that define the starting and ending indices of the elements that are provided.
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Partial Array" ;
  rdfs:subClassOf qudt:Array .

qudt:PhysicalAddress
  a owl:Class ;
  dcterms:description "A physical address is a pointer to a memory location." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Physical Address Type" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:Polarity
  a owl:Class ;
  dcterms:description """
  A "Tagged Enumeration" with the following instance(s): "negative", "positive".
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Polarity" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:PositiveBigIntegerType
  a owl:Class ;
  dcterms:description "Positive Integers are integers that are either non-zero and non-negative." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Positive Big Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype ;
  rdfs:subClassOf qudt:UnsignedType .

qudt:PositiveIntegerType
  a owl:Class ;
  dcterms:description "Positive Integers are integers that are either non-zero and non-negative." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Positive Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype ;
  rdfs:subClassOf qudt:UnsignedType .

qudt:Quantifiable
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:dataEncoding ;
  ] ;
  vaem:isElaboratedIn <http://qudt.org/3.2.1/schema/shacl/datatype> .

qudt:QuantityKindList
  a owl:Class ;
  dcterms:description """
  <p>A <em>Quantity Kind List</em> is a list of qudt:QuantityKind. 
  They are used, for instance, to specify the quantity kind in a Mass Properties Array. 
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Quantity kind List" ;
  rdfs:subClassOf qudt:List .

qudt:QuantityValueType
  a owl:Class ;
  dcterms:description "A sub-type of 'Dimensional Data Type'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Quantity value type" ;
  rdfs:subClassOf qudt:DimensionalDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:elementUnit ;
  ] .

qudt:RawValueTupleMember
  a owl:Class ;
  dcterms:description "A sub-type of 'Tuple Member Type'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Raw value tuple member" ;
  rdfs:subClassOf qudt:TupleMember .

qudt:RawValueTupleMemberType
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Raw value tuple member type" ;
  rdfs:subClassOf qudt:TupleMember .

qudt:RealDatatype
  a owl:Class ;
  dcterms:description """
  <p>A real number is represented as a factor, called the mantissa, multiplied by a power (the exponent) of a base. 
  Different bases yield different approximations to real numbers, and conversion between them is limited in accuracy.
  Four floating-point types are defined in 'IEEE-754 Standard for Binary Floating-Point'. 
  These types are 'single', 'extended single', 'double', and 'extended double'.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Real Datatype" ;
  rdfs:subClassOf qudt:NumericType ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:base ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:precision ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:maxExponent ;
  ] .

qudt:RealDoublePrecisionType
  a owl:Class ;
  dcterms:description """
  <p>A real double precision data type specifies how a real number, or an approximation of a real number is stored in memory.
  Typically this occupies two words in computer memory, where the byte length of a word depends on machine address size of the computer processor. 
  For example, on 32-bit machine architectures, a word is four bytes.
  An example of a real double precision data type specification is the IEEE 754 standard for encoding binary or decimal floating point numbers in 8 bytes for storage on 32-bit machine architectures.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Real Double Precision Type" ;
  rdfs:subClassOf qudt:DoublePrecisionType ;
  rdfs:subClassOf qudt:RealDatatype .

qudt:RealNumberType
  a owl:Class ;
  dcterms:description """
  <p>A <em>Real Number Type</em> is the class of data values that approximate real numbers in finite precision. 
  Often, such values are expressed in "mantissa, base, exponent" form. 
  Any rational number can be expressed in the form m*b^<sup>e</sup>, where m (the mantissa), b (the base), and e (the exponent) are integers. 
  Typically, b is chosen to be either 2 or 10, and then the values of m and e are determined given the choice of base.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Real number type" ;
  rdfs:subClassOf qudt:RealDatatype .

qudt:RealSinglePrecisionType
  a owl:Class ;
  dcterms:description """
  <p>A real single precision data type specifies how a real number,
   or an approximation of a real number is stored in memory that occupies one word in computer memory, 
   where the byte length of a word depends on machine address size of the computer processor.
  </p>
  <p> 
  For example, on 32-bit machine architectures, a word is four bytes. 
  An example of a real single precision data type specification is the IEEE 754 standard for encoding binary
   or decimal floating point numbers in 4 bytes for storage on 32-bit machine architectures.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Real Single Precision Type" ;
  rdfs:subClassOf qudt:RealDatatype ;
  rdfs:subClassOf qudt:SinglePrecisionType .

qudt:Record
  a owl:Class ;
  dcterms:description """
  A Record Type is a type whose values are records, i.e. aggregates of several items of possibly different types. 
  The aggregated items are called fields or members and are usually identified or indexed by field labels.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Record Type" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:ScalarDatatype
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Scalar Datatype" ;
  rdfs:subClassOf rdfs:Datatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:rdfsDatatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bitOrder ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:encoding ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:maxExclusive ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:maxInclusive ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bytes ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:byteOrder ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:bits ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:length ;
  ] ;
  vaem:isElaboratedIn <http://qudt.org/3.2.1/schema/shacl/datatype> .

qudt:ScalarListShape
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:subClassOf qudt:List .

qudt:Sequence
  a owl:Class ;
  dcterms:description """
  <p>A <em>Sequence</em> is an enumerated collection of objects in which repetitions are allowed. 
  Like a set, it contains members (also called elements, or terms). 
  The number of elements (possibly infinite) is called the length of the sequence.
  </p>
  <p>Unlike a set, order matters, and exactly the same elements can appear multiple times at different positions in the sequence. 
  Formally, a sequence can be defined as a function whose domain is either the set of the natural numbers (for infinite sequences) or the set of the first n natural numbers (for a sequence of finite length n). 
  </p>
  <p>The position of an element in a sequence is its rank or index; it is the integer from which the element is the image. 
  It depends on the context or of a specific convention, if the first element has index 0 or 1. [Wikipedia]
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Sequence" ;
  rdfs:subClassOf qudt:Collection .

qudt:Set
  a owl:Class ;
  dcterms:description """
  <p>A <em>Set</em> is an abstract data type that defines the properties of sets. 
  A set is a collection (container) of certain values, without any particular order, and no repeated values. 
  It corresponds with a finite set in mathematics.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Set Type" ;
  rdfs:subClassOf qudt:Collection .

qudt:ShortIntegerType
  a owl:Class ;
  dcterms:description """
  A Short Integer is an integer that can be represented in two octets (16 bits) of machine memory. 
  Short integers may be signed or unsigned.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Short Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype .

qudt:SignedBigIntegerType
  a owl:Class ;
  dcterms:description "A Signed Big Integer is a signed integer that can be represented in eight octets (64 bits) of machine memory." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signed Big Integer Type" ;
  rdfs:subClassOf qudt:BigIntegerType ;
  rdfs:subClassOf qudt:SignedIntegerType .

qudt:SignedIntegerType
  a owl:Class ;
  dcterms:description "Signed Integers are integers can take on both positive and negative values." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signed Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype ;
  rdfs:subClassOf qudt:SignedType .

qudt:SignedLongIntegerType
  a owl:Class ;
  dcterms:description "A Signed Long Integer is a signed integer that can be represented in four octets (32 bits) of machine memory." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signed Long Integer Type" ;
  rdfs:subClassOf qudt:LongIntegerType ;
  rdfs:subClassOf qudt:SignedIntegerType .

qudt:SignedMediumIntegerType
  a owl:Class ;
  dcterms:description """
  A "Signed Medium Integers" is an integer of 24 bits that can take on both positive and negative values.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signed Integer Type" ;
  rdfs:subClassOf qudt:SignedIntegerType .

qudt:SignedShortIntegerType
  a owl:Class ;
  dcterms:description "A Signed Short Integer is a signed integer that can be represented in four octets (32 bits) of machine memory." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signed Short Integer Type" ;
  rdfs:subClassOf qudt:ShortIntegerType ;
  rdfs:subClassOf qudt:SignedIntegerType .

qudt:SignedType
  a owl:Class ;
  dcterms:description "A signed type is a numeric type that distinguishes between positive and negative numbers using an encoding scheme, such as sign and magnitude, one's compliment, and two's compliment to represent negative numbers." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signed Type" ;
  rdfs:subClassOf qudt:NumericType .

qudt:SignedVariableLengthIntegerType
  a owl:Class ;
  dcterms:description "A Signed Variable Length Integer data type defines a data structure for representing signed integers that uses a variable number of bits depending on the magnitude of the integer. Typically, variable length integer data types are between one and 64 bits in length." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signed Variable Length Integer Type" ;
  rdfs:subClassOf qudt:SignedIntegerType ;
  rdfs:subClassOf qudt:VariableLengthIntegerType .

qudt:SignednessType
  a owl:Class ;
  dcterms:description "Specifics whether a value should be signed or unsigned." ;
  owl:oneOf ( datatype:Signed datatype:Unsigned ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Signedness type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:SinglePrecisionType
  a owl:Class ;
  dcterms:description """
  A single precision data type specifies how a numeric value, such as an integer or real number,
   is stored in memory that occupies one word in computer memory,
   where the byte length of a word depends on machine address size of the computer processor. 
  For example, on 32-bit machine architectures, a word is four bytes.
  A single precision data value on a 32-bit machine architecture occupies four bytes of memory.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Single Precision Type" ;
  rdfs:subClassOf qudt:NumericType .

qudt:SplineCalibrator
  a owl:Class ;
  dcterms:description "A sub-type of 'Map Type'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Spline calibrator" ;
  rdfs:subClassOf qudt:Map .

qudt:SplinePoint
  a owl:Class ;
  dcterms:description "A sub-type of 'Tuple Type'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Spline point" ;
  rdfs:subClassOf qudt:Tuple .

qudt:StateSpaceMatrix
  a owl:Class ;
  dcterms:description """
  <p>In control engineering, a state space representation is a mathematical model of a physical system
   as a set of input, output and state variables related by first-order differential equations. 
  To abstract from the number of inputs, outputs and states, the variables are expressed as vectors.
  The differential and algebraic equations are written in matrix form (the last one can be done when the dynamical system is linear and time invariant).
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "State Space Matrix Type" ;
  rdfs:subClassOf qudt:Matrix .

qudt:StringEncodingType
  a owl:Class ;
  dcterms:description """
  <p><em>String Encoding Type</em> is an "Encoding" with the following instance(s):
   "UTF-16 String", "UTF-8 Encoding".
   </p>
  """^^rdf:HTML ;
  dcterms:description """
  An "Encoding" with the following instance(s): "datatype:UTF8-StringEncoding", "datatype:UTF16-StringEncoding".
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "String Encoding Type" ;
  rdfs:subClassOf qudt:Encoding .

qudt:StringType
  a owl:Class ;
  dcterms:description """
  <p>A <em>String Type</em> is a data type that specifies the properties of a list structure that holds characters.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "String Type" ;
  rdfs:subClassOf qudt:ScalarDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:isByteString ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:maxLength ;
  ] .

qudt:StringUTF16
  a owl:Class ;
  dcterms:description """
  <p><em>String UTF-16</em> is a string data type that specifies the properties of string data structures which encode strings using the UTF-16 encoding. 
  UTF-16 is the native internal representation of text in many software systems, for example:
  </p>
  <ol>
  <li>Microsoft Windows NT/Windows 2000/Windows XP/Windows CE;</li>
  <li>Qualcomm BREW, and Symbian operating systems;</li>
  <li>the Java and .NET byte code environments;</li>
  <li>Mac OS X's Cocoa and Core Foundation frameworks;</li>
  <li>Qt cross-platform graphical widget toolkit.</li>
  </ol>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "String UTF16" ;
  rdfs:subClassOf qudt:StringType ;
  rdfs:subClassOf qudt:TextStringType .

qudt:StringUTF8
  a owl:Class ;
  dcterms:description """
  String UTF-8 Type is a string data type that specifies the properties of string data structures which encode strings using the UTF-8 encoding. 
  UTF-8 includes ASCII, otherwise referred to as IA-5 (International Alphabet 5, as standardized by International Organization for Standardization [ISO]) as the first 128 values. 
  The Internet Engineering Task Force (IETF) requires all Internet protocols to identify the encoding used for character data with UTF-8 as at least one supported encoding. 
  The Internet Mail Consortium (IMC) recommends that all e-mail programs must be able to display and create mail using UTF-8.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "String UTF8 Type" ;
  rdfs:subClassOf qudt:StringType ;
  rdfs:subClassOf qudt:TextStringType ;
  vaem:isElaboratedIn <http://qudt.org/3.2.1/schema/shacl/datatype> .

qudt:StructuredDatatype
  a owl:Class ;
  dcterms:description """
  <p>A <em>Structured Datatype</em>, in contrast to a scalar data type, is used to characterize classes of complex data structures.
  Examples are collections, linked and indexed lists, trees, ordered trees, and multi-dimensional file formats.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Structured Data Type" ;
  rdfs:subClassOf qudt:Datatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:elementDatatype ;
  ] .

qudt:Table
  a owl:Class ;
  dcterms:description """
  A Table Type is a data type that specifies the properties of table data structures. 
  A table is both a mode of visual communication and a means of arranging data. 
  The precise conventions and terminology for describing tables varies depending on the context. 
  Moreover, tables differ significantly in variety, structure, flexibility, notation, representation and use.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Table Type" ;
  rdfs:subClassOf qudt:StructuredDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:columns ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:dimensionality ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:rows ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:byRow ;
  ] .

qudt:TaggedEnumeration
  a owl:Class ;
  dcterms:description "An enumeration where each literal  has a tag that is a non-negative integer. These enumerations are likely to have their literals encoded - hence the need for the tag." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Tagged Enumeration" ;
  rdfs:subClassOf qudt:Enumeration .

qudt:TextStringType
  a owl:Class ;
  dcterms:description """
  A <em>Text String Type</em> has encodings that are specified in subclasses or in connection to character arrays in <em>Structured Datatypes</em>.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Text String Type" ;
  rdfs:subClassOf qudt:StringType .

qudt:ThreeTuple
  a owl:Class ;
  dcterms:description """
  A three-tuple is a tuple with exactly three members. 
  A Three-Tuple Type is a data type that defines the type properties of a class of three-tuples and their members.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Three-Tuple" ;
  rdfs:subClassOf qudt:N-Tuple ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:elementDatatype ;
  ] .

qudt:Time
  a owl:Class ;
  dcterms:description "The class of data values that denote a point in time. Time values may be encoded in a 12-hour clock or a 24-hour clock, such as 1:35 AM, or 13:35." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Time" ;
  rdfs:subClassOf qudt:ScalarDatatype .

qudt:TimeDataType
  a owl:Class ;
  dcterms:description "A sub-type of 'QUDT Enumeration'." ;
  dtype:value datatype:TIME ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Time data type" ;
  rdfs:subClassOf qudt:Enumeration ;
  rdfs:subClassOf qudt:ScalarDatatype .

qudt:TimeInterval
  a owl:Class ;
  dcterms:description """A relative interval that is an increment in time. 
  For example, this is used in time series arrays to express the time point of a vector of values.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Time interval" ;
  rdfs:subClassOf qudt:Concept .

qudt:TimeSeriesArray
  a owl:Class ;
  dcterms:description """
  A Time Series Array is a data type that specifies the properties of arrays that hold time series data. 
  A time series is a sequence of data points, measured at successive time intervals. 
  The time intervals may be uniformly or non-uniformly spaced.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Time Series Array" ;
  rdfs:subClassOf qudt:Array ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:incrementDatatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:vector ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:cardinality 1 ;
    owl:onProperty qudt:vector ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:vector ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 1 ;
    owl:onProperty qudt:incrementDatatype ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:incrementDatatype ;
  ] .

qudt:TimeSeriesArrayType
  a owl:Class ;
  dcterms:description """
  <p>A <em>Time Series Array Type</em> is a data type that specifies the properties of arrays that hold time series data. 
  A time series is a sequence of data points, measured at successive time intervals. 
  The time intervals may be uniformly or non-uniformly spaced.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Time Series Array Type" ;
  rdfs:subClassOf qudt:ArrayType .

qudt:TimeStringType
  a owl:Class ;
  dcterms:description "Time takes a number of forms, depending on the units used (e.g., year, day, minute, millisecond, or combinations thereof) and the origin (i.e., time zero) to which the time value is related." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Time Type" ;
  rdfs:subClassOf qudt:DateTimeStringType ;
  rdfs:subClassOf qudt:TextStringType .

qudt:Tree
  a owl:Class ;
  dcterms:description """
  A "Tree" is a data type that defines the properties of data structures that represent trees. 
  Each node is either a leaf or an internal node. 
  An internal node has one or more child nodes and is called the parent of its child nodes. 
  Leaf nodes have no chidren. Nodes that share the same parent are siblings. 
  In graph theoretic terminology, a tree is a connected, undirected, acyclic graph.
  """ ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/Tree_(data_structure)> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Tree Type" ;
  rdfs:subClassOf qudt:Graph .

qudt:Triplet
  a owl:Class ;
  dcterms:description "A \"Tuple\"." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Triplet" ;
  rdfs:seeAlso qudt:ThreeTuple ;
  rdfs:subClassOf qudt:ThreeTuple .

qudt:Tuple
  a owl:Class ;
  dcterms:description """
  <p>The term <em>Tuple</em> originated as an abstraction of the sequence: single, double, triple, quadruple, quintuple, n-tuple. 
  In mathematics, a tuple is a finite sequence (also known as an <em>Ordered List</em> of objects, each of a specified type. 
  The <em>n</em> can be any non-negative integer.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Tuple" ;
  rdfs:subClassOf qudt:CompositeDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:length ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:length ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:elementTypeCount ;
  ] .

qudt:TupleMember
  a owl:Class ;
  dcterms:description """
  <p><em>Tuple Member</em> defines the properties of a member of a tuple. 
  It is used to provide fine grained type specification to the elements of tuples.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Tuple Member Type" ;
  rdfs:subClassOf qudt:CompositeDatatype .

qudt:TupleType
  a owl:Class ;
  dcterms:description """
  <p><em>Tuple</em> originated as an abstraction of the sequence: single, double, triple, quadruple, quintuple, n-tuple.  
  In mathematics, a tuple is a finite sequence (also known as an <em>Ordered List</em> of objects, each of a specified type. 
  The <em>n</em> can be any non-negative integer.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Tuple Type" ;
  rdfs:subClassOf qudt:CompositeDatatype ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:length ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:length ;
  ] ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:elementTypeCount ;
  ] .

qudt:TwoTuple
  a owl:Class ;
  dcterms:description """
  A 2-tuple is called a pair. 
  For example, a complex number can be represented as a 2-tuple.
  2D coordinates are sometimes represented as 2-tuples.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Two-Tuple" ;
  rdfs:subClassOf qudt:N-Tuple ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:elementDatatype ;
  ] .

qudt:TwoTupleType
  a owl:Class ;
  dcterms:description "A 2-tuple is called a pair. For example, a complex number can be represented as a 2-tuple, and 2D coordinates are sometimes represented as 2-tuples." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Two-Tuple Type" ;
  rdfs:subClassOf qudt:N-TupleType ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:minCardinality 0 ;
    owl:onProperty qudt:elementDatatype ;
  ] .

qudt:TypeList
  a owl:Class ;
  dcterms:description "A sub-type of 'QUDT Datatype'." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Type list" ;
  rdfs:subClassOf qudt:Datatype .

qudt:TypeMatrix
  a owl:Class ;
  dcterms:description """
  Members of this class are matrix data structures that describe the datatypes of a class of matrices. 
  That is, the members of this class are matrices with cells that contain datatypes (c.f. type:Datatype) and are used to describe the datatype structure of other matrices.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Type matrix" ;
  rdfs:subClassOf qudt:Matrix .

qudt:TypeVector
  a owl:Class ;
  dcterms:description """
  <p>A <em>Type Vector</em> is a vector whose elements are data types. 
  They are used to specify the type of each component of a vector or class of vectors. 
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Type vector" ;
  rdfs:subClassOf qudt:Vector .

qudt:UnsignedBigIntegerType
  a owl:Class ;
  dcterms:description "An Unsgned Big Integer is an unsigned integer that can be represented in eight octets (64 bits) of machine memory." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Unsigned Big Integer Type" ;
  rdfs:subClassOf qudt:BigIntegerType ;
  rdfs:subClassOf qudt:UnsignedIntegerType .

qudt:UnsignedIntegerType
  a owl:Class ;
  dcterms:description "Unsgned Integers are integers that are either strictly non-negative or non-positive." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Unsigned Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype ;
  rdfs:subClassOf qudt:UnsignedType .

qudt:UnsignedLongIntegerType
  a owl:Class ;
  dcterms:description "An Unsigned Long Integer is an unsigned integer that can be represented in four octets (32 bits) of machine memory." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Unsigned Long Integer Type" ;
  rdfs:subClassOf qudt:LongIntegerType ;
  rdfs:subClassOf qudt:UnsignedIntegerType .

qudt:UnsignedMediumIntegerType
  a owl:Class ;
  dcterms:description """
  An "Unsigned Medium Integer" is an integer of 24 bits that only takes on both positive values.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Unsigned Medium Integer Type" ;
  rdfs:subClassOf qudt:UnsignedIntegerType .

qudt:UnsignedShortIntegerType
  a owl:Class ;
  dcterms:description "An Unsigned Short Integer is an unsigned integer that can be represented in four octets (32 bits) of machine memory." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Unsigned Short Integer Type" ;
  rdfs:subClassOf qudt:ShortIntegerType ;
  rdfs:subClassOf qudt:UnsignedIntegerType .

qudt:UnsignedType
  a owl:Class ;
  dcterms:description "An unsigned data type is a numeric type that does not distinguish between positive and negative values." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Unsigned Type" ;
  rdfs:subClassOf qudt:NumericType .

qudt:UnsignedVariableLengthIntegerType
  a owl:Class ;
  dcterms:description """
  An "Unsigned Variable Length Integer" data type defines a data structure for representing unsigned integers that uses a variable number of bits depending on the magnitude of the integer. 
  Typically, variable length integer data types are between one and 64 bits in length.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Unsigned Variable Length Integer Type" ;
  rdfs:subClassOf qudt:UnsignedIntegerType ;
  rdfs:subClassOf qudt:VariableLengthIntegerType .

qudt:VariableIntervalTimeSeriesArray
  a owl:Class ;
  dcterms:description "A Variable Interval Time Series Array Type is a data type that specifies the properties of arrays that hold time series data that has been sampled over non-uniformly spaced time intervals. A time series is a sequence of data points, measured typically at successive times, spaced at uniform or non-uniform time intervals. For variable interval time series, the successive time intervals may follow a repeating pattern, or may be completely random." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Variable Interval Time Series Array Type" ;
  rdfs:subClassOf qudt:TimeSeriesArray .

qudt:VariableIntervalTimeSeriesArrayType
  a owl:Class ;
  dcterms:description "A Variable Interval Time Series Array Type is a data type that specifies the properties of arrays that hold time series data that has been sampled over non-uniformly spaced time intervals. A time series is a sequence of data points, measured typically at successive times, spaced at uniform or non-uniform time intervals. For variable interval time series, the successive time intervals may follow a repeating pattern, or may be completely random." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Variable Interval Time Series Array Type" ;
  rdfs:subClassOf qudt:TimeSeriesArrayType .

qudt:VariableLengthIntegerType
  a owl:Class ;
  dcterms:description """
  A "Variable Length Integer" data type defines a data structure for representing integers that uses a variable number of bits depending on the magnitude of the integer. 
  Typically, variable length integer data types are between one and 64 bits in length.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Variable Length Integer Type" ;
  rdfs:subClassOf qudt:IntegerDatatype .

qudt:Vector
  a owl:Class ;
  dcterms:description """
  <p>A <em>Vector</em> is an array data type that can have a dimensionality of one, or more elements.
  Vectors can represent physical quantities, such as velocity, force, displacement;
  mathematical objects such as points or directions in space;
  and abstract representations for things such as colors, features, or embeddings in computational contexts.
  </p>
  <p>As a one-dimensional mathematical object it can represent a quantity with both magnitude and direction in space.
  One-dimensional vectors can be thought of as a special case of a 1D array.
  For example a 3D vector can be expressed as a list of coordinates: [x,y,z].
  </p>
  <p>
  A vector in n-dimensional space can represent a point, a direction, or a linear combination of basis vectors.
  </p>
  <p>
  Vectors can represent quantifiable values.
  For example a car moving at 60 m/hr to the north, assuming north is along the y-axis, can be represented in 2D as:
  </p>
  <dl>
  <dd>[0, 60]</dd>
  </dl>
  <p>
  In machine learning a <em>Feature Vector</em> can be expressed for a dataset entry as:
  <p>
  <dl>
  <dd>[5.1, 3.5, 1.4, 0.2]</dd>
  </dl>
  <p>
  In AI for text processing a <em>Word Embedding Vector</em> is expressed as a N-dimensional space, where N can be a large number.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Vector" ;
  rdfs:subClassOf qudt:Array ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:maxCardinality 1 ;
    owl:onProperty qudt:quantity ;
  ] .

qudt:VisualCue
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Visual Cue" ;
  rdfs:subClassOf qudt:ModalCue .

qudt:WetDryStateType
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Wet dry state type" ;
  rdfs:subClassOf qudt:DiscreteState ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:YesNoType
  a owl:Class ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Yes no type" ;
  rdfs:subClassOf qudt:EnumeratedValue .

qudt:hexbinary
  a owl:Class, rdfs:Datatype ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "hexbinary" ;
  rdfs:subClassOf xsd:string .

dtype:value
  a owl:ObjectProperty ;
  rdfs:range qudt:EnumeratedValue .

qudt:alignment
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "alignment" ;
  rdfs:range qudt:AlignmentType .

qudt:arg1Type
  a owl:ObjectProperty ;
  dcterms:description "This property relates a funciton data type with the type of its arg1." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "arg1Type" ;
  rdfs:subPropertyOf qudt:argType .

qudt:arg2Type
  a owl:ObjectProperty ;
  dcterms:description "This property relates a funciton data type with the type of its arg2." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "arg2Type" ;
  rdfs:subPropertyOf qudt:argType .

qudt:arg3Type
  a owl:ObjectProperty ;
  dcterms:description "This property relates a funciton data type with the type of its arg3." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "arg3Type" ;
  rdfs:subPropertyOf qudt:argType .

qudt:argType
  a owl:ObjectProperty ;
  dcterms:description "This property relates a function data type with the type of one of its arguments." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "argType" ;
  rdfs:range qudt:Datatype ;
  rdfs:subPropertyOf qudt:elementDatatype .

qudt:auralCue
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "aural cue" ;
  rdfs:subPropertyOf qudt:modalCue .

qudt:auralCueEnumeration
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "aural cue enumeration" ;
  rdfs:subPropertyOf qudt:modalCueEnumeration .

qudt:basis
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "basis" ;
  rdfs:range qudt:Datatype ;
  rdfs:range qudt:QuantityType .

qudt:bitOrder
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "bit order" ;
  rdfs:range qudt:EndianType .

qudt:byteOrder
  a owl:ObjectProperty, owl:FunctionalProperty ;
  dcterms:description "Byte order is an enumeration of two values: 'Big Endian' and 'Little Endian' and is used to denote whether the most signiticant byte is either first or last, respectively." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "byte order" ;
  rdfs:range qudt:EndianType .

qudt:cardinality
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "cardinality" ;
  rdfs:range qudt:CardinalityType .

qudt:dataEncoding
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "data encoding" ;
  rdfs:range qudt:DataEncoding .

qudt:dataOrder
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "data order" ;
  rdfs:range qudt:MatrixElementOrder .

qudt:datatype
  a owl:ObjectProperty ;
  dcterms:description "This property is used to relate a structured data type with the data type of the structured type's elements. It is used for homogeneous structured data types, that is, those whose elements that are all of the same type." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "datatype" ;
  rdfs:range qudt:Datatype .

qudt:defaultValue
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Default Value" ;
  rdfs:range qudt:AuralCue ;
  rdfs:range qudt:EnumeratedValue ;
  rdfs:range qudt:IconicCue ;
  rdfs:range qudt:KinestheticCue ;
  rdfs:range qudt:ModalCue ;
  rdfs:range qudt:VisualCue .

qudt:dimensions
  a owl:ObjectProperty ;
  dcterms:description """
  The extent of each dimension making up an array or matrix.
  Dimensions are expressed as an integer list.
  For example a 4 by 4 array has dimensions (4 4), whereas a vector or a string has dimensions (1).
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "dimensions" ;
  rdfs:range qudt:List .

qudt:elementDatatype
  a owl:ObjectProperty ;
  dcterms:description """
  This property is used to relate a structured data type with the data type the structured type's elements. 
  It is used for structured data types with elements that are all of the same type.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "element datatype" ;
  rdfs:range qudt:CharacterType ;
  rdfs:range qudt:Datatype ;
  rdfs:range qudt:NumericType ;
  rdfs:range qudt:RealSinglePrecisionType ;
  rdfs:range qudt:ScalarDatatype ;
  rdfs:range qudt:TupleMember ;
  rdfs:range qudt:UnsignedIntegerType .

qudt:elementUnit
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "element unit" ;
  rdfs:range qudt:Unit .

qudt:encoding
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "encoding" ;
  rdfs:range qudt:BooleanEncodingType ;
  rdfs:range qudt:DateTimeStringEncodingType ;
  rdfs:range qudt:Encoding .

qudt:enumeration
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "enumeration" .

qudt:field
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "field" ;
  rdfs:range qudt:DataSetElement .

qudt:fieldType
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "field type" ;
  rdfs:range qudt:Datatype ;
  rdfs:subPropertyOf qudt:elementDatatype .

qudt:function
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "function" ;
  rdfs:range qudt:CompositionFunction .

qudt:iconicCue
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "iconic cue" ;
  rdfs:subPropertyOf qudt:modalCue .

qudt:iconicCueEnumeration
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "iconic cue enumeration" ;
  rdfs:subPropertyOf qudt:modalCueEnumeration .

qudt:incrementDatatype
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "increment datatype" ;
  rdfs:range qudt:TimeStringType .

qudt:kinestheticCue
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "kinesthetic cue" ;
  rdfs:subPropertyOf qudt:modalCue .

qudt:kinestheticCueEnumeration
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "kinesthetic cue enumeration" ;
  rdfs:subPropertyOf qudt:modalCueEnumeration .

qudt:memberDatatype
  a owl:ObjectProperty ;
  dcterms:description """
  This property is used to define the data type of a collection's elements. 
  It is used for collections with elements that are all of the same type.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "member datatype" ;
  rdfs:range qudt:CharacterType .

qudt:modalCue
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "modal cue" ;
  rdfs:range qudt:ModalCue .

qudt:modalCueEnumeration
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "modal cue enumeration" ;
  rdfs:range qudt:ModalEnumeration ;
  rdfs:subPropertyOf qudt:enumeration .

qudt:orderedType
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "ordered type" ;
  rdfs:range qudt:OrderedType .

qudt:orderingRelation
  a owl:ObjectProperty, owl:FunctionalProperty ;
  dcterms:description """
  This property identifies the mathematical comparison operator (such as "<" or ">") that is used to order the elements of a collection.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Ordering Relation" ;
  rdfs:range dtype:ComparisonOperator .

qudt:padding
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "padding" ;
  rdfs:range qudt:PaddingType .

qudt:quantify
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "quantify" ;
  rdfs:range qudt:Quantity .

qudt:rdfsDatatype
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "rdfs datatype" ;
  rdfs:range rdfs:Datatype .

qudt:returnType
  a owl:ObjectProperty, owl:FunctionalProperty ;
  dcterms:description "This property is used to state the return type of a function type." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "return type" ;
  rdfs:range qudt:Datatype ;
  rdfs:subPropertyOf qudt:elementDatatype .

qudt:signedness
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "signedness" ;
  rdfs:range qudt:SignednessType .

qudt:timeDatatype
  a owl:ObjectProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "time datatype" ;
  rdfs:subPropertyOf qudt:type .

qudt:type
  a owl:ObjectProperty ;
  dcterms:description "A reference to the specification of the data type of a variable or constant." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "type" ;
  rdfs:range qudt:TimeStringType .

qudt:vector
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "vector" ;
  rdfs:range qudt:Vector .

qudt:visualCue
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "visual cue" ;
  rdfs:subPropertyOf qudt:modalCue .

qudt:visualCueEnumeration
  a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "visual cue enumeration" ;
  rdfs:subPropertyOf qudt:modalCueEnumeration .

dtype:literal
  a owl:DatatypeProperty ;
  rdfs:range xsd:string .

qudt:accuracy
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description """
  <p><em>Accuracy</em> is the degree to which a given quantity is correct and free from error. 
  For example, a quantity specified as 100+/-1 has an (absolute) accuracy of +/-1 (meaning its true value can fall in the range 99-101),
   while a quantity specified as 100+/-2% has a (relative) accuracy of +/-2% (meaning its true value can fall in the range 98-102).
  </p>
  <p>The concepts of accuracy and precision are both closely related and often confused. 
  While the accuracy of a number x is given by the number of significant decimal (or other) digits to the right of the decimal point in x,
   the precision of x is the total number of significant decimal (or other) digits.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "accuracy" ;
  rdfs:range xsd:integer .

qudt:allowedPattern
  a owl:DatatypeProperty ;
  dcterms:description "This property relates a date string encoding (c.f. type:DateStringEncodingType) to one or more XML Schema compliant regular expressions that together determine the allowed lexical expressions that can be unambiguously parsed to determine a temporal quantity." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "allowed pattern" ;
  rdfs:range xsd:string .

qudt:ansiSQLName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "ANSI SQL name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:base
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "base" ;
  rdfs:range xsd:integer .

qudt:bits
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "bits" ;
  rdfs:range xsd:integer .

qudt:bounded
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "A datatype is bounded if its value space has either a finite upper and lower bound. Either bound may be inclusive or exclusive. " ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "bounded" ;
  rdfs:range xsd:boolean .

qudt:byRow
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "by row" ;
  rdfs:range xsd:boolean .

qudt:bytes
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "bytes" ;
  rdfs:range xsd:integer .

qudt:cName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "Datatype name in the C programming language" ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "C Language name" ;
  rdfs:label "C name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:columns
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "columns" ;
  rdfs:range xsd:integer .

qudt:dimensionality
  a owl:DatatypeProperty ;
  dcterms:description """
  The number of dimensions making up a matrix or an array. 
  For example a 4 by 4 array has a dimensionality of 2. 
  Whereas a vector or a string has a dimensionality of 1.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "dimensionality" ;
  rdfs:range xsd:integer .

qudt:elementLabel
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "This property is used to label the field of a composite data structure." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "element label" ;
  rdfs:range xsd:string .

qudt:elementName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "element name" ;
  rdfs:range xsd:string .

qudt:elementTypeCount
  a owl:DatatypeProperty ;
  dcterms:description "This property determines the allowed number of element types that a structured data type may have." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "element type count" ;
  rdfs:range xsd:integer .

qudt:fieldLabel
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "field label" ;
  rdfs:range xsd:string .

qudt:functionArity
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "This property is used to state the number of arguments for a function type." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "function arity" ;
  rdfs:range xsd:integer .

qudt:inverted
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "inverted" ;
  rdfs:range xsd:boolean .

qudt:isByteString
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "is byte string" ;
  rdfs:range xsd:boolean .

qudt:isHeterogeneous
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "is heterogeneous" ;
  rdfs:range xsd:boolean .

qudt:javaName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "java name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:jsName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Javascript name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:length
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "The length of a structure, for example the size of a vector" ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "length" ;
  rdfs:range xsd:integer .

qudt:matlabName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "matlab name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:maxBits
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "maximum bits" ;
  rdfs:range xsd:integer .

qudt:maxDepth
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "max depth" ;
  rdfs:range xsd:integer .

qudt:maxExclusive
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "maxExclusive is the exclusive upper bound of the value space for a datatype with the ordered property. The value of maxExclusive must be in the value space of the base type or be equal to {value} in {base type definition}." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "max exclusive" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:upperBound .

qudt:maxExponent
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "max exponent" ;
  rdfs:range xsd:integer .

qudt:maxInclusive
  a owl:DatatypeProperty ;
  dcterms:description "maxInclusive is the inclusive upper bound of the value space for a datatype with the ordered property. The value of maxInclusive must be in the value space of the base type." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "max inclusive" ;
  rdfs:subPropertyOf qudt:upperBound .

qudt:maxLength
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "max length" ;
  rdfs:range xsd:integer .

qudt:microsoftSQLServerName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Microsoft SQL Server name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:minBits
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "minimum bits" ;
  rdfs:range xsd:integer .

qudt:minLength
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "min length" ;
  rdfs:range xsd:integer .

qudt:mySQLName
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "MySQL name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:odbcName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "ODBC name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:oleDBName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description """
  <p>OLE DB (Object Linking and Embedding, Database, sometimes written as OLEDB or OLE-DB), an API designed by Microsoft, allows accessing data from a variety of sources in a uniform manner. 
  The API provides a set of interfaces implemented using the Component Object Model (COM); it is otherwise unrelated to OLE.
  </p>"""^^rdf:HTML ;
  dcterms:description "OLE DB (Object Linking and Embedding, Database, sometimes written as OLEDB or OLE-DB), an API designed by Microsoft, allows accessing data from a variety of sources in a uniform manner. The API provides a set of interfaces implemented using the Component Object Model (COM); it is otherwise unrelated to OLE. " ;
  prov:wasInfluencedBy <http://en.wikipedia.org/wiki/OLE_DB> ;
  prov:wasInfluencedBy <http://msdn.microsoft.com/en-us/library/windows/desktop/ms714931(v=vs.85).aspx> ;
  qudt:informativeReference "http://msdn.microsoft.com/en-us/library/windows/desktop/ms714931(v=vs.85).aspx"^^xsd:anyURI ;
  qudt:informativeReference "https://en.wikipedia.org/wiki/OLE_DB"^^xsd:anyURI ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "OLE DB name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:optional
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "optional" ;
  rdfs:range xsd:boolean .

qudt:oracleSQLName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "ORACLE SQL name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:pattern
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "A pattern is a constraint on the value space of a datatype which is achieved by constraining the lexical space to literals which match a specific pattern. The value of pattern must be a regular expression." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "pattern" ;
  rdfs:range xsd:string .

qudt:precision
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description """
  <p>Precision is the number of digits used to perform a given computation. 
  The concepts of accuracy and precision are both closely related and often confused. 
  While the accuracy of a number x is given by the number of significant decimal (or other) digits to the right of the decimal point in x,
   the precision of x is the total number of significant decimal (or other) digits.
  </p>
  <p>For a given numeric data type, the value of type:precision (?p) is related to the values of type:maxMantissa (?M) and type:base (?b) by the formula:
  </p>
  <p>?p := log(?b, ?M)
  </p>
  <p>where log(a,y) = x iff y=a^x.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "precision" ;
  rdfs:range xsd:integer .

qudt:protocolBuffersName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "protocol buffers name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:pythonName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "python name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

qudt:rgbCode
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "rgb code" ;
  rdfs:range xsd:string .

qudt:rows
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "rows" ;
  rdfs:range xsd:integer .

qudt:sound
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  dcterms:description "The intended use of the sound property is to be associated with modal enumerations" ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "sound" ;
  rdfs:range xsd:anyURI .

qudt:upperBound
  a owl:DatatypeProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "upper bound" .

qudt:vbName
  a owl:DatatypeProperty, owl:FunctionalProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Visual Basic name" ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf qudt:id .

dcterms:contributor
  a owl:AnnotationProperty ;
  rdfs:label "contributor" .

dcterms:creator
  a owl:AnnotationProperty ;
  rdfs:label "creator" .

dcterms:description
  a owl:AnnotationProperty ;
  rdfs:label "description" .

dcterms:rights
  a owl:AnnotationProperty ;
  rdfs:label "rights" .

dcterms:subject
  a owl:AnnotationProperty ;
  rdfs:label "subject" .

dcterms:title
  a owl:AnnotationProperty ;
  rdfs:label "title" .

qudt:descriptor
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "descriptor" .

qudt:double_X
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "double X" .

qudt:double_Y
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "double Y" .

qudt:double_Z
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "double Z" .

qudt:duration
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "duration" .

qudt:elementKind
  a owl:AnnotationProperty ;
  dcterms:description "This property is used to describe the quantity kind for a dimensional data type." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "element kind" ;
  rdfs:subPropertyOf qudt:elementKind .

qudt:elementTypeList
  a owl:AnnotationProperty ;
  dcterms:description """
  This property is used to define the data type of the elements of a structured data type. 
  It is used for structured data types with elements that are of different types.
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "element type list" .

qudt:exponent
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "exponent" .

qudt:fieldLabels
  a owl:AnnotationProperty ;
  dcterms:description "This property is used to list the field labels for a record type." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "field labels" .

qudt:fieldName
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "field name" .

qudt:frameType
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "frame type" .

qudt:hasQuantityKindsList
  a owl:AnnotationProperty ;
  dcterms:description "This property is used to specify a list of quantity kinds." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "quantity kinds" ;
  rdfs:range qudt:List .

qudt:lowerBound
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "lower bound" .

qudt:mantissa
  a owl:AnnotationProperty ;
  dcterms:description "In scientific notation, the mantissa of a real number is the integer coefficient preceding the base raised to the exponent." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "mantissa" .

qudt:maxMantissa
  a owl:AnnotationProperty ;
  dcterms:description """
  <p>The maximium mantissa is the largest integer that may appear as a coefficient in a finite precision representation of a real number.
  For a given numeric data type, the value of <em>maxMantissa}</em> (<em>M</em>) and the values of <em>base</em> (<em>b</em>) and  <em>precision</em> (<em>p</em>) are related by the formula:
  </p>
  <p><em>M = b<sup></sup> - 1</em> .</p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "max mantissa" .

qudt:member
  a owl:AnnotationProperty ;
  dcterms:description """
  This property is used to define a collection's elements. 
  """ ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "member" .

qudt:minExclusive
  a owl:AnnotationProperty ;
  dcterms:description "minExclusive is the exclusive lower bound of the value space for a datatype with the ordered property. The value of minExclusive must be in the value space of the base type or be equal to {value} in {base type definition}." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "min exclusive" ;
  rdfs:subPropertyOf qudt:lowerBound .

qudt:minInclusive
  a owl:AnnotationProperty ;
  dcterms:description "minInclusive is the inclusive lower bound of the value space for a datatype with the ordered property. The value of minInclusive must be in the value space of the base type." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "min inclusive" ;
  rdfs:subPropertyOf qudt:lowerBound .

qudt:minMantissa
  a owl:AnnotationProperty ;
  dcterms:description """
  <p>The minimium mantissa is the negative integer with the greatest magnitude that may appear as a coefficient in a finite precision representation of a real number.  
  For a given numeric data type, the value of <em>minMantissa</em> (<em>M</em>) and the values of <em>base</em> (<em>b</em>) and <em>precision</em> (<em>p</em>) are related by the formula:
  </p>
  <p><em>M = -(b<sup>p</sup> - 1)</em>.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "min mantissa" .

qudt:minValue
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "minimum value" .

qudt:modifiability
  a owl:AnnotationProperty ;
  dcterms:description "Reference to one in a list of enumerated elements that indicates whether data (e.g. variable or parameter) can be changed." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "modifiability" .

qudt:negativeDeltaLimit
  a owl:AnnotationProperty ;
  dcterms:description "A negative change limit between consecutive sample values for a parameter. The Negative Delta may be the encoded value or engineering units value depending on whether or not a Calibrator is defined."^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "negative delta limit" .

qudt:orderInStructure
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "order in structure" .

qudt:originDefinition
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "origin definition" .

qudt:positiveDeltaLimit
  a owl:AnnotationProperty ;
  dcterms:description "A positive change limit between consecutive sample values for a parameter. The Positive Delta may be the encoded value or engineering units value depending on whether or not a Calibrator is defined."^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Positive delta limit" .

qudt:realization
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "realization" .

qudt:scalarValue
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "scalar value" .

qudt:significantDigits
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "significant digits" .

qudt:stringValue
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "string value" ;
  rdfs:subPropertyOf qudt:scalarValue .

qudt:totalDigits
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "total digits" .

qudt:typeMatrix
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "type matrix" .

qudt:typeVector
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "type vector" .

qudt:valueRange
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "value range" .

qudt:valueType
  a owl:AnnotationProperty ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "value type" .

qudt:valueVector
  a owl:AnnotationProperty ;
  dcterms:description "A list of the values of elements in a Partial Array." ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "value vector" .

qudt:BitField
  a rdfs:Datatype ;
  dcterms:description """
  <p>A bit field is a common idiom used in computer programming to store a set of Boolean datatype flags compactly, as a series of bits. 
  The bit field is stored in an integral type of known, fixed bit-width. 
  Each Boolean flag is stored in a separate bit. 
  Usually the source code will define a set of constants, each a power of two, that semantically associate each individual bit with its respective Boolean flag. 
  The bitwise operators and, or, and not are used in combination to set, reset and test the flags.
  </p>
  """^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:subClassOf xsd:string .

qudt:CRC32
  a rdfs:Datatype ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "CRC-32" ;
  rdfs:subClassOf xsd:integer .

qudt:DateTypeUnion
  a qudt:List ;
  dcterms:description """
  An rdf:List that can be used in property constraints as the type in an sh:or to indicate
   that all values of a property must be an xsd date type.
  """ ;
  rdf:first xsd:date ;
  rdf:rest ( xsd:dateTime xsd:gYear xsd:gMonth ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Date Type Union" .

qudt:IntegerUnionList
  a qudt:List ;
  rdf:first xsd:int ;
  rdf:rest ( xsd:nonNegativeInteger xsd:positiveInteger xsd:integer ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Integer Union List" .

qudt:NonNegativeIntegerUnionList
  a qudt:List ;
  rdf:first xsd:nonNegativeInteger ;
  rdf:rest ( xsd:positiveInteger ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Non-negative union list" .

qudt:TextTypeUnion
  a qudt:List ;
  dcterms:description """
  An rdf:List that can be used in property constraints as value for sh:or to indicate that all values of a property
   must be a plain string, a string with HTML markup, or a string with LaTeX markup.
  """ ;
  rdf:first xsd:string ;
  rdf:rest ( rdf:HTML qudt:LatexString ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "Text Type Union" .

qudt:UserModifiableParameter
  a qudt:ParameterModifiabilityType ;
  dcterms:description "Parameter is modifiable by a user." ;
  dtype:code "2" ;
  dtype:literal "user" ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "User modifiable parameter" .

qudt:XSDatomicTypeUnion
  a qudt:List ;
  dcterms:description """
  <p>In XML Schema Definition (XSD) xsd:anySimpleType is the base type for all simple types.
  Simple types in XSD represent atomic values without any child elements or complex structures.
  All simple types are compliant with xsd:anySimpleType.
  </p>
  <p>In XSD, the atomic types are: xsd:string, xsd:boolean, xsd:decimal, xsd:float,
   xsd:double, xsd:duration, xsd:dateTime, xsd:time, xsd:date, xsd:gYearMonth, xsd:gYear, xsd:gMonthDay,
   xsd:gDay, xsd:gMonth, xsd:hexBinary, xsd:base64Binary, xsd:anyURI, xsd:QName, and xsd:NOTATION.
  </p>"""^^rdf:HTML ;
  rdf:first xsd:anySimpleType ;
  rdf:rest ( xsd:anySimpleType ) ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "XSD Atomic Type Union" .

vaem:GMD_SCHEMA-DATATYPE
  a vaem:GraphMetaData ;
  dcterms:description "<p>This OWL schema is derived from the SHACL schema found at http://qudt.org/3.2.1/schema/shacl/datatype. </p>"^^rdf:HTML ;
  dcterms:modified "2026-04-02T13:02:45Z"^^xsd:dateTime ;
  dcterms:rights """
  <p>The QUDT Ontologies are issued under a Creative Commons Attribution 4.0 International License (CC BY 4.0), available  <a href="https://creativecommons.org/licenses/by/4.0/">here</a>. 
  Attribution should be made to <a href="https://www.qudt.org">QUDT.org</a>.
  </p>"""^^rdf:HTML ;
  dcterms:subject "Datatypes" ;
  prov:derivedFrom <http://qudt.org/3.2.1/schema/shacl/datatype> ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> ;
  rdfs:label "QUDT Schema for Datatypes - Version 3.2.1" ;
  vaem:graphTitle "QUDT Schema for Datatypes - Version 3.2.1" ;
  vaem:hasGraphRole vaem:SchemaGraph ;
  vaem:isMetadataFor <http://qudt.org/3.2.1/schema/datatype> ;
  vaem:latestPublishedVersion "https://qudt.org/doc/2026/04/DOC_SCHEMA-DATATYPES.html"^^xsd:anyURI ;
  vaem:logo "https://qudt.org/linkedmodels.org/assets/lib/lm/images/logos/qudt_logo-300x110.png"^^xsd:anyURI ;
  vaem:name "QUDT" ;
  vaem:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ;
  vaem:namespacePrefix "qudt" ;
  vaem:owner "QUDT.ORG" ;
  vaem:previousPublishedVersion "https://qudt.org/doc/2026/03/DOC_SCHEMA-DATATYPES.html"^^xsd:anyURI ;
  vaem:publishedDate "2017-05-10"^^xsd:date ;
  vaem:releaseDate "2016-05-09"^^xsd:date ;
  vaem:title "QUDT Schema for Datatypes - Version 3.2.1" ;
  vaem:turtleFileURL "http://qudt.org/3.2.1/schema/datatype.ttl"^^xsd:anyURI ;
  vaem:usesNonImportedResource coords:CCT_EarthCentered ;
  vaem:usesNonImportedResource coords:CCT_MarsCentered ;
  vaem:usesNonImportedResource coords:CCT_MoonCentered ;
  vaem:usesNonImportedResource coords:CCT_SunCentered ;
  vaem:usesNonImportedResource coords:CCT_VehicleCentered ;
  vaem:usesNonImportedResource coords:FT_INERTIAL ;
  vaem:usesNonImportedResource coords:FT_NON-ROTATING ;
  vaem:usesNonImportedResource coords:FT_ROTATING ;
  vaem:usesNonImportedResource coords:NegativeX ;
  vaem:usesNonImportedResource coords:NegativeY ;
  vaem:usesNonImportedResource coords:NegativeZ ;
  vaem:usesNonImportedResource coords:PositiveX ;
  vaem:usesNonImportedResource coords:PositiveY ;
  vaem:usesNonImportedResource coords:PositiveZ ;
  vaem:usesNonImportedResource datatype:BigEndian ;
  vaem:usesNonImportedResource datatype:BitAligned ;
  vaem:usesNonImportedResource datatype:BitEncoding ;
  vaem:usesNonImportedResource datatype:BooleanEncoding ;
  vaem:usesNonImportedResource datatype:ByColumn ;
  vaem:usesNonImportedResource datatype:ByLeftMostIndex ;
  vaem:usesNonImportedResource datatype:ByRow ;
  vaem:usesNonImportedResource datatype:ByteAligned ;
  vaem:usesNonImportedResource datatype:CT_COUNTABLY-INFINITE ;
  vaem:usesNonImportedResource datatype:CT_FINITE ;
  vaem:usesNonImportedResource datatype:CT_UNCOUNTABLE ;
  vaem:usesNonImportedResource datatype:CharEncoding ;
  vaem:usesNonImportedResource datatype:LittleEndian ;
  vaem:usesNonImportedResource datatype:LongSignedIntegerEncoding ;
  vaem:usesNonImportedResource datatype:LongUnsignedIntegerEncoding ;
  vaem:usesNonImportedResource datatype:Major ;
  vaem:usesNonImportedResource datatype:Minor ;
  vaem:usesNonImportedResource datatype:OctetEncoding ;
  vaem:usesNonImportedResource datatype:PadWithAny ;
  vaem:usesNonImportedResource datatype:PadWithOnes ;
  vaem:usesNonImportedResource datatype:PadWithZeros ;
  vaem:usesNonImportedResource datatype:PartiallyOrdered ;
  vaem:usesNonImportedResource datatype:ShortSignedIntegerEncoding ;
  vaem:usesNonImportedResource datatype:ShortUnsignedIntegerEncoding ;
  vaem:usesNonImportedResource datatype:Signed ;
  vaem:usesNonImportedResource datatype:SignedIntegerEncoding ;
  vaem:usesNonImportedResource datatype:TIME ;
  vaem:usesNonImportedResource datatype:TotallyOrdered ;
  vaem:usesNonImportedResource datatype:UTF16-CHAR ;
  vaem:usesNonImportedResource datatype:UTF8-CHAR ;
  vaem:usesNonImportedResource datatype:Unordered ;
  vaem:usesNonImportedResource datatype:Unsigned ;
  vaem:usesNonImportedResource datatype:UnsignedIntegerEncoding ;
  vaem:usesNonImportedResource datatype:WordAligned ;
  vaem:usesNonImportedResource dcterms:abstract ;
  vaem:usesNonImportedResource dcterms:created ;
  vaem:usesNonImportedResource dcterms:creator ;
  vaem:usesNonImportedResource dcterms:modified ;
  vaem:usesNonImportedResource dcterms:rights ;
  vaem:usesNonImportedResource dcterms:title ;
  vaem:usesNonImportedResource <http://voag.linkedmodel.org/voag#QUDT-Attribution> ;
  vaem:withAttributionTo <http://voag.linkedmodel.org/voag#QUDT-Attribution> .

xsd:NOTATION
  a rdfs:Datatype .

xsd:QName
  a rdfs:Datatype .

xsd:anyURI
  a rdfs:Datatype .

xsd:base64Binary
  a rdfs:Datatype .

xsd:boolean
  a rdfs:Datatype .

xsd:byte
  a rdfs:Datatype .

xsd:date
  a rdfs:Datatype .

xsd:dateTime
  a rdfs:Datatype ;
  dcterms:description """
  <p>YYYY-MM-DDThh:mm:ss[.dd] or YYYY-DDDThh:mm:ss[.dd], where 'YYYY' is the year, 'MM' is the two-digit month, 'DD' is the two-digit day, 'DDD' is the three digit day of year, 'T' is constant, 'hh:mm:ss[.dd]' is the UTC time in hours, minutes, seconds, and optional fractional seconds. 
  As many 'd' characters to the right of the period as required may be used to obtain the required precision. 
  All fields require leading zeros.
  </p>"""^^rdf:HTML ;
  rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype> .

xsd:decimal
  a rdfs:Datatype .

xsd:double
  a rdfs:Datatype .

xsd:duration
  a rdfs:Datatype .

xsd:float
  a rdfs:Datatype .

xsd:gDay
  a rdfs:Datatype .

xsd:gMonth
  a rdfs:Datatype .

xsd:gMonthDay
  a rdfs:Datatype .

xsd:gYear
  a rdfs:Datatype .

xsd:gYearMonth
  a rdfs:Datatype .

xsd:hexBinary
  a rdfs:Datatype .

xsd:int
  a rdfs:Datatype .

xsd:integer
  a rdfs:Datatype .

xsd:long
  a rdfs:Datatype .

xsd:negativeInteger
  a rdfs:Datatype .

xsd:nonNegativeInteger
  a rdfs:Datatype .

xsd:nonPositiveInteger
  a rdfs:Datatype .

xsd:positiveInteger
  a rdfs:Datatype .

xsd:short
  a rdfs:Datatype .

xsd:string
  a rdfs:Datatype .

xsd:time
  a rdfs:Datatype .

xsd:unsignedByte
  a rdfs:Datatype .

xsd:unsignedInt
  a rdfs:Datatype .

xsd:unsignedLong
  a rdfs:Datatype .

xsd:unsignedShort
  a rdfs:Datatype .


