@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:TupleType a rdfs:Class,
        owl:Class,
        sh:NodeShape ;
    rdfs:label "Tuple Type" ;
    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>,
        <http://qudt.org/3.2.1/schema/shacl/datatype> ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:length ],
        [ a owl:Restriction ;
            owl:maxCardinality 1 ;
            owl:onProperty qudt:length ],
        [ a owl:Restriction ;
            owl:minCardinality 0 ;
            owl:onProperty qudt:elementTypeCount ],
        qudt:CompositeDatatype ;
    sh:property qudt:Tuple-elementType,
        qudt:Tuple-elementTypeCount,
        qudt:Tuple-length .

