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

qudt:Datatype a rdfs:Class,
        owl:Class,
        sh:NodeShape ;
    rdfs:label "Datatype" ;
    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,
        """
  <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,
        "http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Data_type.html"^^xsd:anyURI,
        "https://en.wikipedia.org/wiki/Data_type"^^xsd:anyURI ;
    rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype>,
        <http://qudt.org/3.2.1/schema/qudt>,
        <http://qudt.org/3.2.1/schema/shacl/datatype> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:pythonName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:cName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:ansiSQLName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:cName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:microsoftSQLServerName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:javaName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:matlabName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:cardinality ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:matlabName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:bounded ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:pythonName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:jsName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:vbName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:basis ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:oracleSQLName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:microsoftSQLServerName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:ansiSQLName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:orderedType ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:odbcName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:mySQLName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:protocolBuffersName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:id ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:vbName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:javaName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:oleDBName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:oleDBName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:oracleSQLName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:protocolBuffersName ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:jsName ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:odbcName ],
        qudt:Concept ;
    sh:property qudt:Datatype-ansiSQLName,
        qudt:Datatype-basis,
        qudt:Datatype-bounded,
        qudt:Datatype-cName,
        qudt:Datatype-cardinality,
        qudt:Datatype-id,
        qudt:Datatype-javaName,
        qudt:Datatype-jsName,
        qudt:Datatype-matlabName,
        qudt:Datatype-microsoftSQLServerName,
        qudt:Datatype-mySQLName,
        qudt:Datatype-odbcName,
        qudt:Datatype-oleDBName,
        qudt:Datatype-oracleSQLName,
        qudt:Datatype-orderedType,
        qudt:Datatype-protocolBuffersName,
        qudt:Datatype-pythonName,
        qudt:Datatype-vbName .

