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

qudt:Enumeration a rdfs:Class,
        owl:Class,
        sh:NodeShape ;
    rdfs:label "Enumeration",
        "QUDT Enumeration" ;
    dcterms:description """
  <p>An <em>Enumeration</em> is a set of literals from which a single value is selected. 
  Each literal can have a tag as an integer within a standard encoding appropriate to the range of integer values. 
  Consistency of enumeration types will allow them, and the enumerated values, to be referred to unambiguously either through symbolic name or encoding. 
  Enumerated values are also controlled vocabularies and as such need to be standardized. 
  Without this consistency enumeration literals can be stated differently and result in  data conflicts and misinterpretations.
  </p>
  <p>The tags are a set of positive whole numbers, not necessarily contiguous and having no numerical significance, each corresponding to the associated literal identifier. 
  An order attribute can also be given on the enumeration elements. An enumeration can itself be a member of an enumeration. This allows enumerations to be enumerated in a selection. 
  Enumerations are also subclasses of <em>Scalar Datatype</em>. 
  This allows them to be used as the reference of a datatype specification.
  </p>
  """^^rdf:HTML ;
    qudt:dbpediaMatch "http://dbpedia.org/resource/Enumeration"^^xsd:anyURI ;
    qudt:informativeReference "https://en.wikipedia.org/wiki/Enumerated_type"^^xsd:anyURI,
        "https://en.wikipedia.org/wiki/Enumeration"^^xsd:anyURI ;
    vaem:isElaboratedIn <http://qudt.org/3.2.1/schema/shacl/datatype> ;
    rdfs:isDefinedBy <http://qudt.org/3.2.1/schema/datatype>,
        <http://qudt.org/3.2.1/schema/qudt>,
        <http://qudt.org/3.2.1/schema/shacl/datatype>,
        <http://qudt.org/3.2.1/schema/shacl/qudt> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:abbreviation ],
        [ a owl:Restriction ;
            owl:minCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:element ],
        [ a owl:Restriction ;
            owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onProperty qudt:default ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty qudt:abbreviation ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:EnumeratedValue ;
            owl:onProperty qudt:default ],
        [ a owl:Restriction ;
            owl:allValuesFrom qudt:EnumeratedValue ;
            owl:onProperty qudt:element ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:encoding ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:bits ],
        qudt:Concept,
        qudt:StructuredDatatype,
        dtype:Enumeration ;
    sh:property qudt:Enumeration-abbreviation,
        qudt:Enumeration-bits,
        qudt:Enumeration-default,
        qudt:Enumeration-defaultValue,
        qudt:Enumeration-element,
        qudt:Enumeration-encoding,
        qudt:Enumeration-value .

