@base <https://rdf-vocabulary.ddialliance.org/sdtl>.

@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 xml: <http://www.w3.org/XML/1998/namespace>.
@prefix schema: <https://schema.org/>.
@prefix cogsmeta: <https://cogsdata.org/ns#>.
@prefix sdtl: <https://rdf-vocabulary.ddialliance.org/sdtl#>.

xsd:date a rdfs:Datatype.
xsd:duration 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:time a rdfs:Datatype.
cogsmeta:maxOccurs a owl:AnnotationProperty.
cogsmeta:minOccurs a owl:AnnotationProperty.
cogsmeta:orderedCompanionOf a owl:AnnotationProperty.
<https://rdf-vocabulary.ddialliance.org/sdtl> a owl:Ontology;
                                              rdfs:comment "A model for describing data transformations";
                                              rdfs:label "Structured Data Transform Language";
                                              owl:versionInfo "2.0.0".
sdtl:Aggregate a owl:Class;
               rdfs:comment """An aggregation summarizes data using aggregation functions applied to data that may be grouped\r
by one or more variables. The resulting summary data is added to each row of the\r
existing dataset.  See the aggregation functions in the Function Library.\r
""";
               rdfs:label "Aggregate"@en;
               rdfs:subClassOf sdtl:TransformBase,
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:groupByVariables ; 
                                owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                rdfs:comment "Variables used as keys to identify groups."],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:aggregateVariables ; 
                                owl:allValuesFrom sdtl:Compute ; 
                                rdfs:comment "The expressions that compute the aggregations. An aggregation function should be used."],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:aggregateVariables ; 
                                owl:onClass sdtl:Compute ; 
                                owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:weighting ; 
                                owl:allValuesFrom sdtl:Weight ; 
                                rdfs:comment "Description of the weights to be used"],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:weighting ; 
                                owl:onClass sdtl:Weight ; 
                                owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:AllNumericVariablesExpression a owl:Class;
                                   rdfs:comment """An expression that represents all numeric variables in the dataset, similar to `_all` in SPSS or Stata.\r
""";
                                   rdfs:label "AllNumericVariablesExpression"@en;
                                   rdfs:subClassOf sdtl:VariableReferenceBase.
sdtl:AllTextVariablesExpression a owl:Class;
                                rdfs:comment """An expression that represents all text variables in the dataset, similar to `_all` in SPSS or Stata.\r
""";
                                rdfs:label "AllTextVariablesExpression"@en;
                                rdfs:subClassOf sdtl:VariableReferenceBase.
sdtl:AllVariablesExpression a owl:Class;
                            rdfs:comment """An expression that represents all variables in the dataset, similar to `_all` in SPSS or Stata.\r
""";
                            rdfs:label "AllVariablesExpression"@en;
                            rdfs:subClassOf sdtl:VariableReferenceBase.
sdtl:Analysis a owl:Class;
              rdfs:comment """Describes an analysis command. An analysis command does not result in any data transformation.\r
""";
              rdfs:label "Analysis"@en;
              rdfs:subClassOf sdtl:InformBase.
sdtl:AppendDatasets a owl:Class;
                    rdfs:comment """Combines datasets by concatenation for datasets with the same or overlapping variables.  \r
""";
                    rdfs:label "AppendDatasets"@en;
                    rdfs:subClassOf sdtl:TransformBase,
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:appendFiles ; 
                                     owl:allValuesFrom sdtl:AppendFileDescription ; 
                                     rdfs:comment "Description of files to be appended"],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:appendFiles ; 
                                     owl:onClass sdtl:AppendFileDescription ; 
                                     owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:appendFlagVariable ; 
                                     owl:allValuesFrom xsd:string ; 
                                     rdfs:comment "Creates a new variable identifying the source dataframe for a row with the variable name given in the value of the property"],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:appendFlagVariable ; 
                                     owl:onDataRange xsd:string ; 
                                     owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:AppendFileDescription a owl:Class;
                           rdfs:comment """Describes files used in an AppendDatasets command.\r
""";
                           rdfs:label "AppendFileDescription"@en;
                           rdfs:subClassOf [a owl:Restriction ; 
                                            owl:onProperty sdtl:fileName ; 
                                            owl:allValuesFrom xsd:string ; 
                                            rdfs:comment "Name of the file being appended.  May be the name of an active dataframe."],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:fileName ; 
                                            owl:onDataRange xsd:string ; 
                                            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:renameVariables ; 
                                            owl:allValuesFrom sdtl:RenamePair ; 
                                            rdfs:comment "Variables to be renamed"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:keepVariables ; 
                                            owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                            rdfs:comment "List of variables to keep"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:dropVariables ; 
                                            owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                            rdfs:comment "List of variables to drop"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:keepCasesCondition ; 
                                            owl:allValuesFrom sdtl:ExpressionBase ; 
                                            rdfs:comment "Logical condition for keeping rows."],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:keepCasesCondition ; 
                                            owl:onClass sdtl:ExpressionBase ; 
                                            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:dropCasesCondition ; 
                                            owl:allValuesFrom sdtl:ExpressionBase ; 
                                            rdfs:comment "Logical condition for dropping rows."],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:dropCasesCondition ; 
                                            owl:onClass sdtl:ExpressionBase ; 
                                            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:software ; 
                                            owl:allValuesFrom xsd:string ; 
                                            rdfs:comment "The software package that works with the file."],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:software ; 
                                            owl:onDataRange xsd:string ; 
                                            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:fileFormat ; 
                                            owl:allValuesFrom [a rdfs:Datatype ; 
                                                               owl:oneOf ("csv"
                                                                          "txt"
                                                                          "dat"
                                                                          "xls"
                                                                          "xlsx"
                                                                          "sav"
                                                                          "dta"
                                                                          "sas7bdat"
                                                                          "rds"
                                                                          "rdata")] ; 
                                            rdfs:comment "The name of a file format"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:fileFormat ; 
                                            owl:onDataRange [a rdfs:Datatype ; 
                                                             owl:oneOf ("csv"
                                                                        "txt"
                                                                        "dat"
                                                                        "xls"
                                                                        "xlsx"
                                                                        "sav"
                                                                        "dta"
                                                                        "sas7bdat"
                                                                        "rds"
                                                                        "rdata")] ; 
                                            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:isCompressed ; 
                                            owl:allValuesFrom xsd:boolean ; 
                                            rdfs:comment "Indicates whether the file format is compressed."],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:isCompressed ; 
                                            owl:onDataRange xsd:boolean ; 
                                            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:BooleanConstantExpression a owl:Class;
                               rdfs:comment """BooleanConstantExpression takes values of TRUE and FALSE.\r
""";
                               rdfs:label "BooleanConstantExpression"@en;
                               rdfs:subClassOf sdtl:ExpressionBase,
                                               [a owl:Restriction ; 
                                                owl:onProperty sdtl:booleanValue ; 
                                                owl:allValuesFrom xsd:boolean ; 
                                                rdfs:comment "Values of TRUE and FALSE are used in logical expressions."],
                                               [a owl:Restriction ; 
                                                owl:onProperty sdtl:booleanValue ; 
                                                owl:onDataRange xsd:boolean ; 
                                                owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:CogsDate a rdfs:Datatype;
              rdfs:comment "A datatype whose values use exactly one supported COGS date lexical arm.";
              rdfs:label "COGS date union"@en;
              owl:equivalentClass [a rdfs:Datatype ; 
                                   owl:unionOf (xsd:dateTime
                                                xsd:date
                                                xsd:gYearMonth
                                                xsd:gYear
                                                xsd:duration)].
sdtl:Collapse a owl:Class;
              rdfs:comment """A collapse command summarizes data using aggregation functions applied to data\r
that may be grouped by one or more variables. The resulting summary data is\r
represented in a new dataset.  See the collapse functions in the Function Library.   \r
   \r
The details of implementation of caseWise and columnWise exclusion vary in each statistical package.  The source language is indicated in this property for reference.   """;
              rdfs:label "Collapse"@en;
              rdfs:subClassOf sdtl:TransformBase,
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:outputDatasetName ; 
                               owl:allValuesFrom xsd:string ; 
                               rdfs:comment "The name of a new, aggregated dataset to be created."],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:outputDatasetName ; 
                               owl:onDataRange xsd:string ; 
                               owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:groupByVariables ; 
                               owl:allValuesFrom sdtl:VariableReferenceBase ; 
                               rdfs:comment "Variables used as keys to identify groups."],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:aggregateVariables ; 
                               owl:allValuesFrom sdtl:Compute ; 
                               rdfs:comment "The expressions that compute the aggregations. An aggregation function should be used."],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:aggregateVariables ; 
                               owl:onClass sdtl:Compute ; 
                               owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:weighting ; 
                               owl:allValuesFrom sdtl:Weight ; 
                               rdfs:comment "Description of the weights to be used"],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:weighting ; 
                               owl:onClass sdtl:Weight ; 
                               owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:caseWise ; 
                               owl:allValuesFrom [a rdfs:Datatype ; 
                                                  owl:oneOf ("Stata")] ; 
                               rdfs:comment "Observations are not included if any variable  is missing"],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:caseWise ; 
                               owl:onDataRange [a rdfs:Datatype ; 
                                                owl:oneOf ("Stata")] ; 
                               owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:columnWise ; 
                               owl:allValuesFrom [a rdfs:Datatype ; 
                                                  owl:oneOf ("SPSS")] ; 
                               rdfs:comment "Variables are not included if any value in a column is missing"],
                              [a owl:Restriction ; 
                               owl:onProperty sdtl:columnWise ; 
                               owl:onDataRange [a rdfs:Datatype ; 
                                                owl:oneOf ("SPSS")] ; 
                               owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:CommandBase a owl:Class;
                 rdfs:comment """CommandBase defines general properties available to all commands.\r
""";
                 rdfs:label "CommandBase"@en;
                 rdfs:subClassOf [a owl:Restriction ; 
                                  owl:onProperty sdtl:command ; 
                                  owl:allValuesFrom xsd:string ; 
                                  rdfs:comment "The type of command"],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:command ; 
                                  owl:onDataRange xsd:string ; 
                                  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:sourceInformation ; 
                                  owl:allValuesFrom sdtl:SourceInformation ; 
                                  rdfs:comment "Information about the source of the command."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:messageText ; 
                                  owl:allValuesFrom xsd:string ; 
                                  rdfs:comment "Adds a message that can be displayed with the command."].
sdtl:Comment a owl:Class;
             rdfs:comment """Describes a source code comment.  Comments should not include special characters.  \r
""";
             rdfs:label "Comment"@en;
             rdfs:subClassOf sdtl:InformBase,
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:commentText ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The text of the source code comment."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:commentText ; 
                              owl:onDataRange xsd:string ; 
                              owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:CompositeVariableNameExpression a owl:Class;
                                     rdfs:comment """A composite variable name is used to describe a variable name that is computed.\r
""";
                                     rdfs:label "CompositeVariableNameExpression"@en;
                                     rdfs:subClassOf sdtl:VariableReferenceBase,
                                                     [a owl:Restriction ; 
                                                      owl:onProperty sdtl:computedVariableName ; 
                                                      owl:allValuesFrom sdtl:ExpressionBase ; 
                                                      rdfs:comment "An expression that evaluates to the constructed variable name."],
                                                     [a owl:Restriction ; 
                                                      owl:onProperty sdtl:computedVariableName ; 
                                                      owl:onClass sdtl:ExpressionBase ; 
                                                      owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:Compute a owl:Class;
             rdfs:comment "Assigns the value of an expression to a variable.  ";
             rdfs:label "Compute"@en;
             rdfs:subClassOf sdtl:TransformBase,
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:variable ; 
                              owl:allValuesFrom sdtl:VariableReferenceBase ; 
                              rdfs:comment "The variable that is computed."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:variable ; 
                              owl:onClass sdtl:VariableReferenceBase ; 
                              owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:expression ; 
                              owl:allValuesFrom sdtl:ExpressionBase ; 
                              rdfs:comment "The expression used to compute the value of the variable(s)"],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:expression ; 
                              owl:onClass sdtl:ExpressionBase ; 
                              owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:DataframeDescription a owl:Class;
                          rdfs:comment """Provides a name for the dataframe and an ordered list of variables (optional).   \r
""";
                          rdfs:label "DataframeDescription"@en;
                          rdfs:subClassOf [a owl:Restriction ; 
                                           owl:onProperty sdtl:dataframeName ; 
                                           owl:allValuesFrom xsd:string ; 
                                           rdfs:comment "Name of the dataframe."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:dataframeName ; 
                                           owl:onDataRange xsd:string ; 
                                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:variableInventory ; 
                                           owl:allValuesFrom xsd:string ; 
                                           rdfs:comment "Variables in the dataframe in order"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:rowDimensions ; 
                                           owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                           rdfs:comment "An ordered list of variables used as hierarchical dimensions in a data cube or multi-index"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:rowDimensionsList ; 
                                           owl:cardinality "1"^^xsd:nonNegativeInteger ; 
                                           cogsmeta:minOccurs "0" ; 
                                           cogsmeta:maxOccurs "n"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:columnDimensions ; 
                                           owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                           rdfs:comment "An ordered list of variables used as colum indexes in a multi-index"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:columnDimensionsList ; 
                                           owl:cardinality "1"^^xsd:nonNegativeInteger ; 
                                           cogsmeta:minOccurs "0" ; 
                                           cogsmeta:maxOccurs "n"].
sdtl:DateTimeConstant a owl:Class;
                      rdfs:comment """A date-time constant expressed in ISO 8601 format.\r
""";
                      rdfs:label "DateTimeConstant"@en;
                      rdfs:subClassOf sdtl:ExpressionBase,
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:dateTimeValue ; 
                                       owl:allValuesFrom xsd:dateTime ; 
                                       rdfs:comment "A specific instance of time in ISO 8601 format"],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:dateTimeValue ; 
                                       owl:onDataRange xsd:dateTime ; 
                                       owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:DoIf a owl:Class;
          rdfs:comment """A set of commands that are performed when a logical expression is true.  May also include ElseCommands to be performed if the logical expression is false.  The commands in DoIf are performed once, and it expects a logical condition that applies to the entire dataframe.  Use IfRows for commands that are performed on each row depending upon values on those rows. \r
""";
          rdfs:label "DoIf"@en;
          rdfs:subClassOf sdtl:TransformBase,
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:condition ; 
                           owl:allValuesFrom sdtl:ExpressionBase ; 
                           rdfs:comment "A logical expression"],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:condition ; 
                           owl:onClass sdtl:ExpressionBase ; 
                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:thenCommands ; 
                           owl:allValuesFrom sdtl:CommandBase ; 
                           rdfs:comment "Commands to be performed if the condition is true."],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:thenCommands ; 
                           owl:onClass sdtl:CommandBase ; 
                           owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:elseCommands ; 
                           owl:allValuesFrom sdtl:CommandBase ; 
                           rdfs:comment "Commands to be performed if the condition is false."].
sdtl:DropCases a owl:Class;
               rdfs:comment """Rows that match the selection condition are deleted from the dataset.  \r
""";
               rdfs:label "DropCases"@en;
               rdfs:subClassOf sdtl:TransformBase,
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:condition ; 
                                owl:allValuesFrom sdtl:ExpressionBase ; 
                                rdfs:comment "If the logical expresion is true, the case (row) will be deleted from the working dataset."],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:condition ; 
                                owl:onClass sdtl:ExpressionBase ; 
                                owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:DropVariables a owl:Class;
                   rdfs:comment """Deletes variables from the data.\r
""";
                   rdfs:label "DropVariables"@en;
                   rdfs:subClassOf sdtl:TransformBase,
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:variables ; 
                                    owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                    rdfs:comment "The variables to be dropped."],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:variables ; 
                                    owl:onClass sdtl:VariableReferenceBase ; 
                                    owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:Execute a owl:Class;
             rdfs:comment """This command causes the system to execute preceding commands before continuing to process the command script.\r
""";
             rdfs:label "Execute"@en;
             rdfs:subClassOf sdtl:TransformBase.
sdtl:ExpressionBase a owl:Class;
                    rdfs:comment """The SDTL types in  ExpressionBase are used in expressions, which may be numeric, text or logical. \r
""";
                    rdfs:label "ExpressionBase"@en.
sdtl:FunctionArgument a owl:Class;
                      rdfs:comment """Describes the arguments in a function as specified in the SDTL Function Library.   \r
Notes:\r
1. The argumentName property must always be present.   \r
2. The argumentValue property is required, and it must be a single object.  When the argumentValue is a list of items in the source language, the ValueListExpression or VariableListExpression should be used. """;
                      rdfs:label "FunctionArgument"@en;
                      rdfs:subClassOf [a owl:Restriction ; 
                                       owl:onProperty sdtl:argumentName ; 
                                       owl:allValuesFrom xsd:string ; 
                                       rdfs:comment "The name of the parameter."],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:argumentName ; 
                                       owl:onDataRange xsd:string ; 
                                       owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:argumentValue ; 
                                       owl:allValuesFrom sdtl:ExpressionBase ; 
                                       rdfs:comment "The value of the parameter."],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:argumentValue ; 
                                       owl:onClass sdtl:ExpressionBase ; 
                                       owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:FunctionCallExpression a owl:Class;
                            rdfs:comment "An expression evaluated by reference to the Function Library.";
                            rdfs:label "FunctionCallExpression"@en;
                            rdfs:subClassOf sdtl:ExpressionBase,
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:function ; 
                                             owl:allValuesFrom xsd:string ; 
                                             rdfs:comment "The name of the function being called."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:function ; 
                                             owl:onDataRange xsd:string ; 
                                             owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:isSdtlName ; 
                                             owl:allValuesFrom xsd:boolean ; 
                                             rdfs:comment "When true, the Function property contains the name of a function from the SDTL function library. When false, the Function property contains the name of a system-specific or user-defined function."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:isSdtlName ; 
                                             owl:onDataRange xsd:boolean ; 
                                             owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:arguments ; 
                                             owl:allValuesFrom sdtl:FunctionArgument ; 
                                             rdfs:comment "A list of parameters to the function."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:argumentsList ; 
                                             owl:cardinality "1"^^xsd:nonNegativeInteger ; 
                                             cogsmeta:minOccurs "0" ; 
                                             cogsmeta:maxOccurs "n"].
sdtl:GroupedExpression a owl:Class;
                       rdfs:comment """A group of expressions to be evaluated before expressions outside of the group.  Used to control the order of operations in a formula.\r
""";
                       rdfs:label "GroupedExpression"@en;
                       rdfs:subClassOf sdtl:ExpressionBase,
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:expression ; 
                                        owl:allValuesFrom sdtl:ExpressionBase ; 
                                        rdfs:comment "Expression to be evaluated."],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:expression ; 
                                        owl:onClass sdtl:ExpressionBase ; 
                                        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:IfRows a owl:Class;
            rdfs:comment """A set of commands that are performed on each row in the dataframe when a logical expression is true for that row.  May also include ElseCommands to be performed if the logical expression is false.  Use DoIf for a logical condition that applies to the entire dataframe and commands that are performed once.  \r
""";
            rdfs:label "IfRows"@en;
            rdfs:subClassOf sdtl:TransformBase,
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:condition ; 
                             owl:allValuesFrom sdtl:ExpressionBase ; 
                             rdfs:comment "A logical expression that is evaluated separately for every row in the dataframe."],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:condition ; 
                             owl:onClass sdtl:ExpressionBase ; 
                             owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:thenCommands ; 
                             owl:allValuesFrom sdtl:CommandBase ; 
                             rdfs:comment "Commands to be performed if the condition is true."],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:thenCommands ; 
                             owl:onClass sdtl:CommandBase ; 
                             owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:elseCommands ; 
                             owl:allValuesFrom sdtl:CommandBase ; 
                             rdfs:comment "Commands to be performed if the condition is false."].
sdtl:InformBase a owl:Class;
                rdfs:comment """InformBase includes information elements that do not transform data.\r
""";
                rdfs:label "InformBase"@en;
                rdfs:subClassOf sdtl:CommandBase.
sdtl:Invalid a owl:Class;
             rdfs:comment """Describes an invalid command. A command is invalid if it uses incorrect syntax, or is otherwise not allowed by the executing system.\r
""";
             rdfs:label "Invalid"@en;
             rdfs:subClassOf sdtl:InformBase,
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:problemDescription ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "A message describing the issue with the invalid command."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:problemDescription ; 
                              owl:onDataRange xsd:string ; 
                              owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:IteratorDescription a owl:Class;
                         rdfs:comment """Describes an iteration process consisting of an IteratorSymbolExpression and a list of values it takes.  \r
""";
                         rdfs:label "IteratorDescription"@en;
                         rdfs:subClassOf [a owl:Restriction ; 
                                          owl:onProperty sdtl:iteratorSymbolName ; 
                                          owl:allValuesFrom sdtl:IteratorSymbolExpression ; 
                                          rdfs:comment "The name used in  IteratorCommands  for the index variable that changes value in the loop."],
                                         [a owl:Restriction ; 
                                          owl:onProperty sdtl:iteratorSymbolName ; 
                                          owl:onClass sdtl:IteratorSymbolExpression ; 
                                          owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                         [a owl:Restriction ; 
                                          owl:onProperty sdtl:iteratorValues ; 
                                          owl:allValuesFrom sdtl:ExpressionBase ; 
                                          rdfs:comment "Describes the values that are substituted for the index variable that changes value in the loop."],
                                         [a owl:Restriction ; 
                                          owl:onProperty sdtl:iteratorValues ; 
                                          owl:onClass sdtl:ExpressionBase ; 
                                          owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:IteratorSymbolExpression a owl:Class;
                              rdfs:comment """The name of an iterator symbol used as an index in describing the actions of \r
a loop.\r
""";
                              rdfs:label "IteratorSymbolExpression"@en;
                              rdfs:subClassOf sdtl:ExpressionBase,
                                              [a owl:Restriction ; 
                                               owl:onProperty sdtl:name ; 
                                               owl:allValuesFrom xsd:string ; 
                                               rdfs:comment "A name used for the index variable that takes different values inside a loop."],
                                              [a owl:Restriction ; 
                                               owl:onProperty sdtl:name ; 
                                               owl:onDataRange xsd:string ; 
                                               owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:KeepCases a owl:Class;
               rdfs:comment """Rows that match the selection condition are retained in the dataset.  Other rows are deleted.\r
""";
               rdfs:label "KeepCases"@en;
               rdfs:subClassOf sdtl:TransformBase,
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:condition ; 
                                owl:allValuesFrom sdtl:ExpressionBase ; 
                                rdfs:comment "The logical expresion that must be true for a case to remain in the working dataset."],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:condition ; 
                                owl:onClass sdtl:ExpressionBase ; 
                                owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:KeepVariables a owl:Class;
                   rdfs:comment """Variables to be retained in the dataset. Variables not on the list are deleted.\r
""";
                   rdfs:label "KeepVariables"@en;
                   rdfs:subClassOf sdtl:TransformBase,
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:variables ; 
                                    owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                    rdfs:comment "The variables to be kept in the dataset."].
sdtl:Load a owl:Class;
          rdfs:comment """Load data from a file.\r
""";
          rdfs:label "Load"@en;
          rdfs:subClassOf sdtl:TransformBase,
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileName ; 
                           owl:allValuesFrom xsd:string ; 
                           rdfs:comment "The name of the file to be loaded."],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileName ; 
                           owl:onDataRange xsd:string ; 
                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:software ; 
                           owl:allValuesFrom xsd:string ; 
                           rdfs:comment "The software package that works with the file."],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:software ; 
                           owl:onDataRange xsd:string ; 
                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileFormat ; 
                           owl:allValuesFrom [a rdfs:Datatype ; 
                                              owl:oneOf ("csv"
                                                         "txt"
                                                         "dat"
                                                         "xls"
                                                         "xlsx"
                                                         "sav"
                                                         "dta"
                                                         "sas7bdat"
                                                         "rds"
                                                         "rdata")] ; 
                           rdfs:comment "The name of a file format"],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileFormat ; 
                           owl:onDataRange [a rdfs:Datatype ; 
                                            owl:oneOf ("csv"
                                                       "txt"
                                                       "dat"
                                                       "xls"
                                                       "xlsx"
                                                       "sav"
                                                       "dta"
                                                       "sas7bdat"
                                                       "rds"
                                                       "rdata")] ; 
                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:isCompressed ; 
                           owl:allValuesFrom xsd:boolean ; 
                           rdfs:comment "Indicates whether the file format is compressed."],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:isCompressed ; 
                           owl:onDataRange xsd:boolean ; 
                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:LoopOverList a owl:Class;
                  rdfs:comment """A loop creates multiple versions of a set of commands by iterating over a list of variables, numbers, or strings.  \r
""";
                  rdfs:label "LoopOverList"@en;
                  rdfs:subClassOf sdtl:TransformBase,
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:iterators ; 
                                   owl:allValuesFrom sdtl:IteratorDescription ; 
                                   rdfs:comment "Describes one or more iteration processes in this loop."],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:iterators ; 
                                   owl:onClass sdtl:IteratorDescription ; 
                                   owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:commands ; 
                                   owl:allValuesFrom sdtl:CommandBase ; 
                                   rdfs:comment "Commands generated by the loop expanded by replacing tokens representing variables, numbers, or strings with their values."],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:commands ; 
                                   owl:onClass sdtl:CommandBase ; 
                                   owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:updated ; 
                                   owl:allValuesFrom xsd:boolean ; 
                                   rdfs:comment "When TRUE, the loop has been expanded into separate commands."],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:updated ; 
                                   owl:onDataRange xsd:boolean ; 
                                   owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:LoopWhile a owl:Class;
               rdfs:comment "LoopWhile iterates over a set of commands under the control of one or more logical expressions.  Since the logical conditions typically depend upon values in the data, commands executed in a LoopWhile cannot be anticipated and expanded in SDTL.";
               rdfs:label "LoopWhile"@en;
               rdfs:subClassOf sdtl:TransformBase,
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:condition ; 
                                owl:allValuesFrom sdtl:ExpressionBase ; 
                                rdfs:comment "Describes a condition required for the next iteration to begin.  "],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:condition ; 
                                owl:onClass sdtl:ExpressionBase ; 
                                owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:endCondition ; 
                                owl:allValuesFrom sdtl:ExpressionBase ; 
                                rdfs:comment "Describes a condition that ends interation.  "],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:endCondition ; 
                                owl:onClass sdtl:ExpressionBase ; 
                                owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:commands ; 
                                owl:allValuesFrom sdtl:CommandBase ; 
                                rdfs:comment "Commands within the loop."],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:commands ; 
                                owl:onClass sdtl:CommandBase ; 
                                owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:updated ; 
                                owl:allValuesFrom xsd:boolean ; 
                                rdfs:comment "When TRUE, the loop has been expanded into separate commands."],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:updated ; 
                                owl:onDataRange xsd:boolean ; 
                                owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:MergeDatasets a owl:Class;
                   rdfs:comment """Merges datasets holding overlapping cases but different variables.  The merge may be controlled by keys or grouping variables.\r
""";
                   rdfs:label "MergeDatasets"@en;
                   rdfs:subClassOf sdtl:TransformBase,
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:mergeFiles ; 
                                    owl:allValuesFrom sdtl:MergeFileDescription ; 
                                    rdfs:comment "Description of files to be merged."],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:mergeFiles ; 
                                    owl:onClass sdtl:MergeFileDescription ; 
                                    owl:minQualifiedCardinality "2"^^xsd:nonNegativeInteger],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:mergeByVariables ; 
                                    owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                    rdfs:comment """A variable or list of variables that acts as the unique case identifier across datasets.  If MergeByVariables is absent, MergeType must be \"sequential\" on all files."""],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:mergeByVariables ; 
                                    owl:onClass sdtl:VariableReferenceBase ; 
                                    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:firstVariable ; 
                                    owl:allValuesFrom xsd:string ; 
                                    rdfs:comment "The name of a variable set to 1 for the first row of each group of cases with the same value for the MergeByVariables variables and set to  0 for all other rows."],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:firstVariable ; 
                                    owl:onDataRange xsd:string ; 
                                    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:lastVariable ; 
                                    owl:allValuesFrom xsd:string ; 
                                    rdfs:comment "The name of a variable set to 1 for the last row of each group of cases with the same value for the MergeByVariables variables and set to  0 for all other rows."],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:lastVariable ; 
                                    owl:onDataRange xsd:string ; 
                                    owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:MergeFileDescription a owl:Class;
                          rdfs:comment """Describes files used in a MergeData command.\r
""";
                          rdfs:label "MergeFileDescription"@en;
                          rdfs:subClassOf [a owl:Restriction ; 
                                           owl:onProperty sdtl:fileName ; 
                                           owl:allValuesFrom xsd:string ; 
                                           rdfs:comment "Name of the file being merged.  May be the name of an active dataframe."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:fileName ; 
                                           owl:onDataRange xsd:string ; 
                                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:mergeType ; 
                                           owl:allValuesFrom [a rdfs:Datatype ; 
                                                              owl:oneOf ("Sequential"
                                                                         "OneToOne"
                                                                         "ManyToOne"
                                                                         "OneToMany"
                                                                         "Cartesian"
                                                                         "Unmatched"
                                                                         "SASmatchMerge")] ; 
                                           rdfs:comment "Describes the type of merge performed. "],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:mergeType ; 
                                           owl:onDataRange [a rdfs:Datatype ; 
                                                            owl:oneOf ("Sequential"
                                                                       "OneToOne"
                                                                       "ManyToOne"
                                                                       "OneToMany"
                                                                       "Cartesian"
                                                                       "Unmatched"
                                                                       "SASmatchMerge")] ; 
                                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:mergeFlagVariable ; 
                                           owl:allValuesFrom xsd:string ; 
                                           rdfs:comment "Name of a new variable indicating whether the row came from this file or a different input file."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:mergeFlagVariable ; 
                                           owl:onDataRange xsd:string ; 
                                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:renameVariables ; 
                                           owl:allValuesFrom sdtl:RenamePair ; 
                                           rdfs:comment "Variables to be renamed"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:update ; 
                                           owl:allValuesFrom [a rdfs:Datatype ; 
                                                              owl:oneOf ("Master"
                                                                         "Ignore"
                                                                         "FillNew"
                                                                         "UpdateMissing"
                                                                         "Replace")] ; 
                                           rdfs:comment """When the same variables exist in more than one dataframe. values in the \"Master\" dataframe can be replaced by values from a different dataframe. \"Master\" is the default value.  \"Ignore\" means values in this dataframe are never used.  \"FillNew\" is used on rows not found in the \"Master\" dataframe.  \"UpdateMissing\" replaces missing values in the \"Master\" dataframe. \"Replace\" changes all values in the \"Master\" dataframe.\""""],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:update ; 
                                           owl:onDataRange [a rdfs:Datatype ; 
                                                            owl:oneOf ("Master"
                                                                       "Ignore"
                                                                       "FillNew"
                                                                       "UpdateMissing"
                                                                       "Replace")] ; 
                                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:newRow ; 
                                           owl:allValuesFrom xsd:boolean ; 
                                           rdfs:comment "When TRUE,  generate new row when not matched to other files"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:newRow ; 
                                           owl:onDataRange xsd:boolean ; 
                                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:keepVariables ; 
                                           owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                           rdfs:comment "List of variables to keep"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:dropVariables ; 
                                           owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                           rdfs:comment "List of variables to drop"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:keepCasesCondition ; 
                                           owl:allValuesFrom sdtl:ExpressionBase ; 
                                           rdfs:comment "Logical condition for keeping rows."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:keepCasesCondition ; 
                                           owl:onClass sdtl:ExpressionBase ; 
                                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:dropCasesCondition ; 
                                           owl:allValuesFrom sdtl:ExpressionBase ; 
                                           rdfs:comment "Logical condition for dropping rows."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:dropCasesCondition ; 
                                           owl:onClass sdtl:ExpressionBase ; 
                                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:mergeByNames ; 
                                           owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                           rdfs:comment "An ordered list of variables used as keys  in this file to be matched to the variables in the mergeByVariables property of the MergeDatasets command.  This property is only used when the key variables in this file have different names than the variable names listed in the MergeDatasets command."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:mergeByNamesList ; 
                                           owl:cardinality "1"^^xsd:nonNegativeInteger ; 
                                           cogsmeta:minOccurs "0" ; 
                                           cogsmeta:maxOccurs "n"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:software ; 
                                           owl:allValuesFrom xsd:string ; 
                                           rdfs:comment "The software package that works with the file."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:software ; 
                                           owl:onDataRange xsd:string ; 
                                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:fileFormat ; 
                                           owl:allValuesFrom [a rdfs:Datatype ; 
                                                              owl:oneOf ("csv"
                                                                         "txt"
                                                                         "dat"
                                                                         "xls"
                                                                         "xlsx"
                                                                         "sav"
                                                                         "dta"
                                                                         "sas7bdat"
                                                                         "rds"
                                                                         "rdata")] ; 
                                           rdfs:comment "The name of a file format"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:fileFormat ; 
                                           owl:onDataRange [a rdfs:Datatype ; 
                                                            owl:oneOf ("csv"
                                                                       "txt"
                                                                       "dat"
                                                                       "xls"
                                                                       "xlsx"
                                                                       "sav"
                                                                       "dta"
                                                                       "sas7bdat"
                                                                       "rds"
                                                                       "rdata")] ; 
                                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:isCompressed ; 
                                           owl:allValuesFrom xsd:boolean ; 
                                           rdfs:comment "Indicates whether the file format is compressed."],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:isCompressed ; 
                                           owl:onDataRange xsd:boolean ; 
                                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:Message a owl:Class;
             rdfs:comment """Inserts message text in the SDTL file.\r
""";
             rdfs:label "Message"@en;
             rdfs:subClassOf sdtl:InformBase,
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:severity ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "Information, Warning, Error"],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:severity ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:lineNumber ; 
                              owl:allValuesFrom xsd:int ; 
                              rdfs:comment "The line number of the source that the messages is related to, if relevant."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:lineNumber ; 
                              owl:onDataRange xsd:int ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:characterPosition ; 
                              owl:allValuesFrom xsd:int ; 
                              rdfs:comment "The character position of the source that the message is related to, if relevant."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:characterPosition ; 
                              owl:onDataRange xsd:int ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:MissingValueConstantExpression a owl:Class;
                                    rdfs:comment """A missing value constant.  Some languages allow multiple missing value constants.\r
""";
                                    rdfs:label "MissingValueConstantExpression"@en;
                                    rdfs:subClassOf sdtl:ExpressionBase,
                                                    [a owl:Restriction ; 
                                                     owl:onProperty sdtl:value ; 
                                                     owl:allValuesFrom xsd:string ; 
                                                     rdfs:comment "The missing value as it appears in the system (e.g., .a, .b, .c).  If Null, this is the system missing value."],
                                                    [a owl:Restriction ; 
                                                     owl:onProperty sdtl:value ; 
                                                     owl:onDataRange xsd:string ; 
                                                     owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:NewDataframe a owl:Class;
                  rdfs:comment """The NewDataframe command copies or creates a new dataframe.  It can be used in two ways.    \r
    \r
An existing dataframe can be copied to a new dataframe by using the consumesDataframe and producesDataframe properties of NewDataframe.  The new dataframe will be a \"deep\" copy in the sense used in R and Python.      \r
   \r
NewDataframe can also be used to create an empty dataframe of a specific size.  In Stata, the \"set obs #\" command will create a dataframe with a user-defined number of rows.  All values are assumed to be missing.  This may be used in simulations to preset a number of simulated observations, which are then filled with randomly generated data.\r
\r
\r
\r
""";
                  rdfs:label "NewDataframe"@en;
                  rdfs:subClassOf sdtl:TransformBase,
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:numberOfRows ; 
                                   owl:allValuesFrom xsd:int ; 
                                   rdfs:comment "Number of rows in new dataframe"],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:numberOfRows ; 
                                   owl:onDataRange xsd:int ; 
                                   owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:numberOfColumns ; 
                                   owl:allValuesFrom xsd:int ; 
                                   rdfs:comment "Number of columns in new dataframe"],
                                  [a owl:Restriction ; 
                                   owl:onProperty sdtl:numberOfColumns ; 
                                   owl:onDataRange xsd:int ; 
                                   owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:NoTransformOp a owl:Class;
                   rdfs:comment """NoTransformOp is used for a command in the original script that provides important information but does not have a function in SDTL.  For example, “library()” in R loads a package of R functions.  Since the Parser detects the library, the SDTL will reflect the library that is used, and commands derived from the library will be translated in the SDTL script.  However, it is useful to know which library is active for auditing the R script, even if it does not perform any data transformations.  \r
""";
                   rdfs:label "NoTransformOp"@en;
                   rdfs:subClassOf sdtl:InformBase.
sdtl:NumberRangeExpression a owl:Class;
                           rdfs:comment """Defines a range of numeric values.\r
""";
                           rdfs:label "NumberRangeExpression"@en;
                           rdfs:subClassOf sdtl:ExpressionBase,
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:numberRangeStart ; 
                                            owl:allValuesFrom sdtl:ExpressionBase ; 
                                            rdfs:comment "Starting value for range"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:numberRangeStart ; 
                                            owl:onClass sdtl:ExpressionBase ; 
                                            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:numberRangeEnd ; 
                                            owl:allValuesFrom sdtl:ExpressionBase ; 
                                            rdfs:comment "Ending value for range"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:numberRangeEnd ; 
                                            owl:onClass sdtl:ExpressionBase ; 
                                            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:numberRangeIncrement ; 
                                            owl:allValuesFrom sdtl:ExpressionBase ; 
                                            rdfs:comment "Increment for stepping through range"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:numberRangeIncrement ; 
                                            owl:onClass sdtl:ExpressionBase ; 
                                            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:NumericConstantExpression a owl:Class;
                               rdfs:comment """A numeric constant.\r
""";
                               rdfs:label "NumericConstantExpression"@en;
                               rdfs:subClassOf sdtl:ExpressionBase,
                                               [a owl:Restriction ; 
                                                owl:onProperty sdtl:value ; 
                                                owl:allValuesFrom xsd:string ; 
                                                rdfs:comment "A number"],
                                               [a owl:Restriction ; 
                                                owl:onProperty sdtl:value ; 
                                                owl:onDataRange xsd:string ; 
                                                owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                               [a owl:Restriction ; 
                                                owl:onProperty sdtl:numericType ; 
                                                owl:allValuesFrom [a rdfs:Datatype ; 
                                                                   owl:oneOf ("Integer"
                                                                              "Real")] ; 
                                                rdfs:comment "Type of the number"],
                                               [a owl:Restriction ; 
                                                owl:onProperty sdtl:numericType ; 
                                                owl:onDataRange [a rdfs:Datatype ; 
                                                                 owl:oneOf ("Integer"
                                                                            "Real")] ; 
                                                owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:NumericMaximumValueExpression a owl:Class;
                                   rdfs:comment """Represents the largest numeric value supported by a system.\r
""";
                                   rdfs:label "NumericMaximumValueExpression"@en;
                                   rdfs:subClassOf sdtl:ExpressionBase.
sdtl:NumericMinimumValueExpression a owl:Class;
                                   rdfs:comment """Represents the smallest numeric value supported by a system.\r
""";
                                   rdfs:label "NumericMinimumValueExpression"@en;
                                   rdfs:subClassOf sdtl:ExpressionBase.
sdtl:Program a owl:Class;
             rdfs:comment """The program represents a list of commands from a statistical package.\r
""";
             rdfs:label "Program"@en;
             rdfs:subClassOf [a owl:Restriction ; 
                              owl:onProperty sdtl:id ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "ID of the object being referenced."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:id ; 
                              owl:onDataRange xsd:string ; 
                              owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceFileName ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The name of the file containing the source code."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceFileName ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceLanguage ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The language of the source code."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceLanguage ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:scriptMd5 ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The MD5 hash of the contents of the file."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:scriptMd5 ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:scriptSha1 ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The SHA-1 hash of the contents of the file."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:scriptSha1 ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceFileLastUpdate ; 
                              owl:allValuesFrom xsd:dateTime ; 
                              rdfs:comment "The date and time the file was last updated."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceFileLastUpdate ; 
                              owl:onDataRange xsd:dateTime ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceFileSize ; 
                              owl:allValuesFrom [a rdfs:Datatype ; 
                                                 owl:onDatatype xsd:long ; 
                                                 owl:withRestrictions ([xsd:minInclusive "-9007199254740991"^^xsd:integer]
                                                                       [xsd:maxInclusive "9007199254740991"^^xsd:integer])] ; 
                              rdfs:comment "The size of the file in bytes."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:sourceFileSize ; 
                              owl:onDataRange [a rdfs:Datatype ; 
                                               owl:onDatatype xsd:long ; 
                                               owl:withRestrictions ([xsd:minInclusive "-9007199254740991"^^xsd:integer]
                                                                     [xsd:maxInclusive "9007199254740991"^^xsd:integer])] ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:lineCount ; 
                              owl:allValuesFrom xsd:int ; 
                              rdfs:comment "The number of lines in the source file."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:lineCount ; 
                              owl:onDataRange xsd:int ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:commandCount ; 
                              owl:allValuesFrom xsd:int ; 
                              rdfs:comment "The number of commands detected in the source file."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:commandCount ; 
                              owl:onDataRange xsd:int ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:messages ; 
                              owl:allValuesFrom sdtl:Message ; 
                              rdfs:comment "Messages related to the parsing of the source file."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:parser ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The name of the parser used to generate the SDTL."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:parser ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:parserVersion ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The version of the parser used to generate the SDTL."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:parserVersion ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:modelVersion ; 
                              owl:allValuesFrom xsd:string ; 
                              rdfs:comment "The version of the SDTL model."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:modelVersion ; 
                              owl:onDataRange xsd:string ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:modelCreatedTime ; 
                              owl:allValuesFrom xsd:dateTime ; 
                              rdfs:comment "The date and time the SDTL was generated."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:modelCreatedTime ; 
                              owl:onDataRange xsd:dateTime ; 
                              owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:commands ; 
                              owl:allValuesFrom sdtl:CommandBase ; 
                              rdfs:comment "The list of commands that make up the program."],
                             [a owl:Restriction ; 
                              owl:onProperty sdtl:commandsList ; 
                              owl:cardinality "1"^^xsd:nonNegativeInteger ; 
                              cogsmeta:minOccurs "0" ; 
                              cogsmeta:maxOccurs "n"];
             owl:hasKey (sdtl:id).
sdtl:Recode a owl:Class;
            rdfs:comment """Describes recoding values in one or more variables according to a specified mapping.\r
\r
The Recode command can either describe a recoding of one or more individual variables,\r
or a range of variables. When one or more individual variables are described, a new\r
variable name can be specified. In this case, the original variable is left alone, and\r
a new variable is created with the recoded values.\r
""";
            rdfs:label "Recode"@en;
            rdfs:subClassOf sdtl:TransformBase,
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:recodedVariables ; 
                             owl:allValuesFrom sdtl:RecodeVariable ; 
                             rdfs:comment "The variables that will have their values recoded. The resulting values may be either stored in the same variable, or a newly created destination variable"],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:recodedVariableRange ; 
                             owl:allValuesFrom sdtl:VariableRangeExpression ; 
                             rdfs:comment "A range of variables to which the recode rules are applied. The resulting values are stored in the same variable."],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:recodedVariableRange ; 
                             owl:onClass sdtl:VariableRangeExpression ; 
                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:rules ; 
                             owl:allValuesFrom sdtl:RecodeRule ; 
                             rdfs:comment "A mapping describing which values will be recoded to which new values"].
sdtl:RecodeRule a owl:Class;
                rdfs:comment """Describes how values will be recoded.\r
""";
                rdfs:label "RecodeRule"@en;
                rdfs:subClassOf [a owl:Restriction ; 
                                 owl:onProperty sdtl:fromValue ; 
                                 owl:allValuesFrom sdtl:ExpressionBase ; 
                                 rdfs:comment "The values to be recoded."],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:to ; 
                                 owl:allValuesFrom xsd:string ; 
                                 rdfs:comment "The new value"],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:to ; 
                                 owl:onDataRange xsd:string ; 
                                 owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:label ; 
                                 owl:allValuesFrom xsd:string ; 
                                 rdfs:comment "A value label for the new recoded value, if appropriate"],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:label ; 
                                 owl:onDataRange xsd:string ; 
                                 owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:RecodeVariable a owl:Class;
                    rdfs:comment """Describes a variable that will have its values recoded.\r
""";
                    rdfs:label "RecodeVariable"@en;
                    rdfs:subClassOf [a owl:Restriction ; 
                                     owl:onProperty sdtl:source ; 
                                     owl:allValuesFrom xsd:string ; 
                                     rdfs:comment "The name of the variable which will have its values recoded"],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:source ; 
                                     owl:onDataRange xsd:string ; 
                                     owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:target ; 
                                     owl:allValuesFrom xsd:string ; 
                                     rdfs:comment "The name of the new variable into which the recoded values are inserted. This may be the same as the source variable if values are recoded in place."],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:target ; 
                                     owl:onDataRange xsd:string ; 
                                     owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:Rename a owl:Class;
            rdfs:comment """Rename changes the names of variables.\r
""";
            rdfs:label "Rename"@en;
            rdfs:subClassOf sdtl:TransformBase,
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:renames ; 
                             owl:allValuesFrom sdtl:RenamePair ; 
                             rdfs:comment "A list of variable rename objects, which includes the old name and the new name."],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:renames ; 
                             owl:onClass sdtl:RenamePair ; 
                             owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:RenamePair a owl:Class;
                rdfs:comment """Variable names before and after a variable is renamed.\r
""";
                rdfs:label "RenamePair"@en;
                rdfs:subClassOf [a owl:Restriction ; 
                                 owl:onProperty sdtl:oldVariable ; 
                                 owl:allValuesFrom sdtl:VariableSymbolExpression ; 
                                 rdfs:comment "The old name of the variable."],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:oldVariable ; 
                                 owl:onClass sdtl:VariableSymbolExpression ; 
                                 owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:newVariable ; 
                                 owl:allValuesFrom sdtl:VariableSymbolExpression ; 
                                 rdfs:comment "The new name of the variable."],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:newVariable ; 
                                 owl:onClass sdtl:VariableSymbolExpression ; 
                                 owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:ReshapeItemDescription a owl:Class;
                            rdfs:comment """Descripbes a new variable created by reshaping a dataset from wide to long or vice versa.\r
""";
                            rdfs:label "ReshapeItemDescription"@en;
                            rdfs:subClassOf [a owl:Restriction ; 
                                             owl:onProperty sdtl:targetVariableName ; 
                                             owl:allValuesFrom xsd:string ; 
                                             rdfs:comment "Name of new variable created by this command."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:targetVariableName ; 
                                             owl:onDataRange xsd:string ; 
                                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:targetVariableLabel ; 
                                             owl:allValuesFrom xsd:string ; 
                                             rdfs:comment "Label for new variable created by this command."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:targetVariableLabel ; 
                                             owl:onDataRange xsd:string ; 
                                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:sourceVariables ; 
                                             owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                             rdfs:comment "Source variables in the original dataset used to create this variable."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:sourceVariables ; 
                                             owl:onClass sdtl:VariableReferenceBase ; 
                                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:stub ; 
                                             owl:allValuesFrom xsd:string ; 
                                             rdfs:comment "The stub is a string used in the names of variables in the wide dataset."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:stub ; 
                                             owl:onDataRange xsd:string ; 
                                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:indexValues ; 
                                             owl:allValuesFrom sdtl:ExpressionBase ; 
                                             rdfs:comment "A list of values that produce new rows (long) or columns (wide) for this variable."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:indexValues ; 
                                             owl:onClass sdtl:ExpressionBase ; 
                                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:indexVariableName ; 
                                             owl:allValuesFrom xsd:string ; 
                                             rdfs:comment "Name of the variable that will contain the value of the index for this row."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:indexVariableName ; 
                                             owl:onDataRange xsd:string ; 
                                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:indexVariableLabel ; 
                                             owl:allValuesFrom xsd:string ; 
                                             rdfs:comment "Label for the variable in IndexVariableName."],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:indexVariableLabel ; 
                                             owl:onDataRange xsd:string ; 
                                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:ReshapeLong a owl:Class;
                 rdfs:comment """Creates a new dataset with multiple rows per case by assigning a set of variables in the original dataset to a single variable in the new dataset.\r
""";
                 rdfs:label "ReshapeLong"@en;
                 rdfs:subClassOf sdtl:TransformBase,
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:makeItems ; 
                                  owl:allValuesFrom sdtl:ReshapeItemDescription ; 
                                  rdfs:comment "New variables created by this command."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:caseNumberVariable ; 
                                  owl:allValuesFrom xsd:string ; 
                                  rdfs:comment "New variable identifying the case number in the wide data that created this row."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:caseNumberVariable ; 
                                  owl:onDataRange xsd:string ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:idVariables ; 
                                  owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                  rdfs:comment "One or more variables identifying unique rows in the wide data."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:idVariables ; 
                                  owl:onClass sdtl:VariableReferenceBase ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:dropVariables ; 
                                  owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                  rdfs:comment "Variables to be dropped from the new dataset."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:dropVariables ; 
                                  owl:onClass sdtl:VariableReferenceBase ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:keepVariables ; 
                                  owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                  rdfs:comment "Variables to be kept in the new dataset."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:keepVariables ; 
                                  owl:onClass sdtl:VariableReferenceBase ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:keepNullCases ; 
                                  owl:allValuesFrom xsd:boolean ; 
                                  rdfs:comment "When set to TRUE, rows in which all constructed variables are missing are not deleted."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:keepNullCases ; 
                                  owl:onDataRange xsd:boolean ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:countById ; 
                                  owl:allValuesFrom xsd:string ; 
                                  rdfs:comment "New variable with the number of cases in the long dataset that were created from the source row in the wide dataset."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:countById ; 
                                  owl:onDataRange xsd:string ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:countByIdLabel ; 
                                  owl:allValuesFrom xsd:string ; 
                                  rdfs:comment "Label for the CountByID variable."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:countByIdLabel ; 
                                  owl:onDataRange xsd:string ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:ReshapeWide a owl:Class;
                 rdfs:comment """ReshapeWide is not supported in the current version of SDTL, because it depends on values in the data.  However, it may be useful when values of the index variable are available in the metadata file or the data can be processed.\r
""";
                 rdfs:label "ReshapeWide"@en;
                 rdfs:subClassOf sdtl:TransformBase,
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:makeItems ; 
                                  owl:allValuesFrom sdtl:ReshapeItemDescription ; 
                                  rdfs:comment "New variables created by this command."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:idVariables ; 
                                  owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                  rdfs:comment "One or more variables identifying unique rows in the wide data."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:idVariables ; 
                                  owl:onClass sdtl:VariableReferenceBase ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:dropVariables ; 
                                  owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                  rdfs:comment "Variables to be dropped from the new dataset."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:dropVariables ; 
                                  owl:onClass sdtl:VariableReferenceBase ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:keepVariables ; 
                                  owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                  rdfs:comment "Variables to be kept in the new dataset."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:keepVariables ; 
                                  owl:onClass sdtl:VariableReferenceBase ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:Save a owl:Class;
          rdfs:comment """Writes a dataset to a file.\r
""";
          rdfs:label "Save"@en;
          rdfs:subClassOf sdtl:TransformBase,
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileName ; 
                           owl:allValuesFrom xsd:string ; 
                           rdfs:comment "The name of the file to be saved."],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileName ; 
                           owl:onDataRange xsd:string ; 
                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:software ; 
                           owl:allValuesFrom xsd:string ; 
                           rdfs:comment "The software package that works with the file."],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:software ; 
                           owl:onDataRange xsd:string ; 
                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileFormat ; 
                           owl:allValuesFrom [a rdfs:Datatype ; 
                                              owl:oneOf ("csv"
                                                         "txt"
                                                         "dat"
                                                         "xls"
                                                         "xlsx"
                                                         "sav"
                                                         "dta"
                                                         "sas7bdat"
                                                         "rds"
                                                         "rdata")] ; 
                           rdfs:comment "The name of a file format"],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:fileFormat ; 
                           owl:onDataRange [a rdfs:Datatype ; 
                                            owl:oneOf ("csv"
                                                       "txt"
                                                       "dat"
                                                       "xls"
                                                       "xlsx"
                                                       "sav"
                                                       "dta"
                                                       "sas7bdat"
                                                       "rds"
                                                       "rdata")] ; 
                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:isCompressed ; 
                           owl:allValuesFrom xsd:boolean ; 
                           rdfs:comment "Indicates whether the file format is compressed."],
                          [a owl:Restriction ; 
                           owl:onProperty sdtl:isCompressed ; 
                           owl:onDataRange xsd:boolean ; 
                           owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SetDataType a owl:Class;
                 rdfs:comment """Sets the data type of a variable.   \r
Examples:   \r
\r
```\r
\"dataType\": \"Text\",\r
\"subTypeSchema\": \"Stata 15.1\",\r
\"subType\": \"str1\"\r
```\r
\r
```\r
\"dataType\": \"Numeric\",\r
\"subTypeSchema\": \"https://www.ddialliance.org/Specification/DDI-CV/DataType_1.0.html\" ,\r
\"subType\": \"Int\"\r
```\r
\r
\r
""";
                 rdfs:label "SetDataType"@en;
                 rdfs:subClassOf sdtl:TransformBase,
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:variables ; 
                                  owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                  rdfs:comment "The variables that will have their type set"],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:dataType ; 
                                  owl:allValuesFrom [a rdfs:Datatype ; 
                                                     owl:oneOf ("Text"
                                                                "Numeric"
                                                                "Boolean"
                                                                "Date-Time"
                                                                "Factor")] ; 
                                  rdfs:comment """General type of a variable,  e.g.  \"Text\" or \"Numeric\"."""],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:dataType ; 
                                  owl:onDataRange [a rdfs:Datatype ; 
                                                   owl:oneOf ("Text"
                                                              "Numeric"
                                                              "Boolean"
                                                              "Date-Time"
                                                              "Factor")] ; 
                                  owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:subTypeSchema ; 
                                  owl:allValuesFrom xsd:string ; 
                                  rdfs:comment "A vendor or standards body with a controlled vocabulary.  The value can be a URL."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:subTypeSchema ; 
                                  owl:onDataRange xsd:string ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:subType ; 
                                  owl:allValuesFrom xsd:string ; 
                                  rdfs:comment "The name used in the associated schema."],
                                 [a owl:Restriction ; 
                                  owl:onProperty sdtl:subType ; 
                                  owl:onDataRange xsd:string ; 
                                  owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SetDatasetProperty a owl:Class;
                        rdfs:comment """Changes a property of a dataframe.\r
""";
                        rdfs:label "SetDatasetProperty"@en;
                        rdfs:subClassOf sdtl:TransformBase,
                                        [a owl:Restriction ; 
                                         owl:onProperty sdtl:propertyName ; 
                                         owl:allValuesFrom xsd:string ; 
                                         rdfs:comment "The name of the property to be set (for example, 'Title' or 'Subtitle')."],
                                        [a owl:Restriction ; 
                                         owl:onProperty sdtl:propertyName ; 
                                         owl:onDataRange xsd:string ; 
                                         owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                        [a owl:Restriction ; 
                                         owl:onProperty sdtl:value ; 
                                         owl:allValuesFrom xsd:string ; 
                                         rdfs:comment "The value of the property."],
                                        [a owl:Restriction ; 
                                         owl:onProperty sdtl:value ; 
                                         owl:onDataRange xsd:string ; 
                                         owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SetDisplayFormat a owl:Class;
                      rdfs:comment """Sets the display or output format for a variable.    \r
Examples:   \r
```\r
\"displayFormatSchema\": \"SAS\"\r
\"displayFormatName\": \"DOLLAR6.2\"\r
```\r
\r
```\r
\"displayFormatSchema\": \"Stata 15.1\"\r
\"displayFormatName\": \"%tcDDmonCCYY_HH:MM:SS\"\r
```\r
""";
                      rdfs:label "SetDisplayFormat"@en;
                      rdfs:subClassOf sdtl:TransformBase,
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:variables ; 
                                       owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                       rdfs:comment "The variables that will have their format set"],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:variables ; 
                                       owl:onClass sdtl:VariableReferenceBase ; 
                                       owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:displayFormatSchema ; 
                                       owl:allValuesFrom xsd:string ; 
                                       rdfs:comment "A vendor or standards body with a controlled vocabulary.  The value can be a URL."],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:displayFormatSchema ; 
                                       owl:onDataRange xsd:string ; 
                                       owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:displayFormatName ; 
                                       owl:allValuesFrom xsd:string ; 
                                       rdfs:comment "The name used in the associated schema."],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:displayFormatName ; 
                                       owl:onDataRange xsd:string ; 
                                       owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SetMissingValues a owl:Class;
                      rdfs:comment """Defines values that are treated as missing values for a list of variables.\r
""";
                      rdfs:label "SetMissingValues"@en;
                      rdfs:subClassOf sdtl:TransformBase,
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:variables ; 
                                       owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                       rdfs:comment "The list of variables to which the missing values are assigned"],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:variables ; 
                                       owl:onClass sdtl:VariableReferenceBase ; 
                                       owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:values ; 
                                       owl:allValuesFrom sdtl:ExpressionBase ; 
                                       rdfs:comment "The values to be considered as missing values"],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:values ; 
                                       owl:onClass sdtl:ExpressionBase ; 
                                       owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SetValueLabels a owl:Class;
                    rdfs:comment """Describes the assignment of labels to categorical values.\r
""";
                    rdfs:label "SetValueLabels"@en;
                    rdfs:subClassOf sdtl:TransformBase,
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:variables ; 
                                     owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                     rdfs:comment "The variables to which a label will be assigned"],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:variables ; 
                                     owl:onClass sdtl:VariableReferenceBase ; 
                                     owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:labels ; 
                                     owl:allValuesFrom sdtl:ValueLabel ; 
                                     rdfs:comment "The label to be assigned to the variables"],
                                    [a owl:Restriction ; 
                                     owl:onProperty sdtl:labels ; 
                                     owl:onClass sdtl:ValueLabel ; 
                                     owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SetVariableLabel a owl:Class;
                      rdfs:comment """Describes the assignment of a label to a variable.\r
""";
                      rdfs:label "SetVariableLabel"@en;
                      rdfs:subClassOf sdtl:TransformBase,
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:variable ; 
                                       owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                       rdfs:comment "The name of the variable to which a label will be assigned"],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:variable ; 
                                       owl:onClass sdtl:VariableReferenceBase ; 
                                       owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:label ; 
                                       owl:allValuesFrom xsd:string ; 
                                       rdfs:comment "The label to be assigned to the variable"],
                                      [a owl:Restriction ; 
                                       owl:onProperty sdtl:label ; 
                                       owl:onDataRange xsd:string ; 
                                       owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SortCases a owl:Class;
               rdfs:comment """Sorts rows in the dataframe in a specified order.\r
""";
               rdfs:label "SortCases"@en;
               rdfs:subClassOf sdtl:TransformBase,
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:sortCriteria ; 
                                owl:allValuesFrom sdtl:SortCriterion ; 
                                rdfs:comment "Describes how cases are sorted."],
                               [a owl:Restriction ; 
                                owl:onProperty sdtl:sortCriteria ; 
                                owl:onClass sdtl:SortCriterion ; 
                                owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SortCriterion a owl:Class;
                   rdfs:comment """Describes a criterion by which cases are sorted, including the variable name and whether to sort ascending or descending.\r
""";
                   rdfs:label "SortCriterion"@en;
                   rdfs:subClassOf [a owl:Restriction ; 
                                    owl:onProperty sdtl:variable ; 
                                    owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                    rdfs:comment "The variable used to sort."],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:variable ; 
                                    owl:onClass sdtl:VariableReferenceBase ; 
                                    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:sortDirection ; 
                                    owl:allValuesFrom [a rdfs:Datatype ; 
                                                       owl:oneOf ("Ascending"
                                                                  "Descending")] ; 
                                    rdfs:comment "The direction in which to sort."],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:sortDirection ; 
                                    owl:onDataRange [a rdfs:Datatype ; 
                                                     owl:oneOf ("Ascending"
                                                                "Descending")] ; 
                                    owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:SourceInformation a owl:Class;
                       rdfs:comment """SourceInformation defines information about the original source of a data transform.\r
""";
                       rdfs:label "SourceInformation"@en;
                       rdfs:subClassOf [a owl:Restriction ; 
                                        owl:onProperty sdtl:lineNumberStart ; 
                                        owl:allValuesFrom xsd:int ; 
                                        rdfs:comment "The line number of the beginning of the transform code"],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:lineNumberStart ; 
                                        owl:onDataRange xsd:int ; 
                                        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:lineNumberEnd ; 
                                        owl:allValuesFrom xsd:int ; 
                                        rdfs:comment "The line number of the end of the transform code"],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:lineNumberEnd ; 
                                        owl:onDataRange xsd:int ; 
                                        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:sourceStartIndex ; 
                                        owl:allValuesFrom xsd:int ; 
                                        rdfs:comment "The character index of the beginning of the transform code"],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:sourceStartIndex ; 
                                        owl:onDataRange xsd:int ; 
                                        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:sourceStopIndex ; 
                                        owl:allValuesFrom xsd:int ; 
                                        rdfs:comment "The character index of the end of the transform code"],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:sourceStopIndex ; 
                                        owl:onDataRange xsd:int ; 
                                        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:originalSourceText ; 
                                        owl:allValuesFrom xsd:string ; 
                                        rdfs:comment "The original source code of the data transform code"],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:originalSourceText ; 
                                        owl:onDataRange xsd:string ; 
                                        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:processedSourceText ; 
                                        owl:allValuesFrom xsd:string ; 
                                        rdfs:comment "The source code of the data transform code after processing macros or loops"],
                                       [a owl:Restriction ; 
                                        owl:onProperty sdtl:processedSourceText ; 
                                        owl:onDataRange xsd:string ; 
                                        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:StringConstantExpression a owl:Class;
                              rdfs:comment """A text string.\r
""";
                              rdfs:label "StringConstantExpression"@en;
                              rdfs:subClassOf sdtl:ExpressionBase,
                                              [a owl:Restriction ; 
                                               owl:onProperty sdtl:value ; 
                                               owl:allValuesFrom xsd:string ; 
                                               rdfs:comment "A string"],
                                              [a owl:Restriction ; 
                                               owl:onProperty sdtl:value ; 
                                               owl:onDataRange xsd:string ; 
                                               owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:StringRangeExpression a owl:Class;
                           rdfs:comment """Defines a range of string values, such as \"A to N\".\r
""";
                           rdfs:label "StringRangeExpression"@en;
                           rdfs:subClassOf sdtl:ExpressionBase,
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:rangeStart ; 
                                            owl:allValuesFrom xsd:string ; 
                                            rdfs:comment "Starting value for range"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:rangeStart ; 
                                            owl:onDataRange xsd:string ; 
                                            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:rangeEnd ; 
                                            owl:allValuesFrom xsd:string ; 
                                            rdfs:comment "Ending value for range"],
                                           [a owl:Restriction ; 
                                            owl:onProperty sdtl:rangeEnd ; 
                                            owl:onDataRange xsd:string ; 
                                            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:TimeDurationConstant a owl:Class;
                          rdfs:comment """A time duration constant expressed in ISO 8601 format.\r
""";
                          rdfs:label "TimeDurationConstant"@en;
                          rdfs:subClassOf sdtl:ExpressionBase,
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:timeDurationValue ; 
                                           owl:allValuesFrom xsd:duration ; 
                                           rdfs:comment "A duration of time in ISO 8601 format"],
                                          [a owl:Restriction ; 
                                           owl:onProperty sdtl:timeDurationValue ; 
                                           owl:onDataRange xsd:duration ; 
                                           owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:TransformBase a owl:Class;
                   rdfs:comment """TransformBase defines properties available for transform commands.\r
""";
                   rdfs:label "TransformBase"@en;
                   rdfs:subClassOf sdtl:CommandBase,
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:producesDataframe ; 
                                    owl:allValuesFrom sdtl:DataframeDescription ; 
                                    rdfs:comment "Signify the dataframe which this transform produces."],
                                   [a owl:Restriction ; 
                                    owl:onProperty sdtl:consumesDataframe ; 
                                    owl:allValuesFrom sdtl:DataframeDescription ; 
                                    rdfs:comment "Signify the dataframe which this transform acts upon."].
sdtl:UnhandledValuesExpression a owl:Class;
                               rdfs:comment """Represents any values not previously handled (for example, in a set of recode rules).\r
""";
                               rdfs:label "UnhandledValuesExpression"@en;
                               rdfs:subClassOf sdtl:ExpressionBase.
sdtl:Unsupported a owl:Class;
                 rdfs:comment """Describes an unsupported command. An unsupported command is valid syntax, but not supported by the parsing application.\r
""";
                 rdfs:label "Unsupported"@en;
                 rdfs:subClassOf sdtl:InformBase.
sdtl:ValueLabel a owl:Class;
                rdfs:comment """Associates a label with a  value in a categorical variable.\r
""";
                rdfs:label "ValueLabel"@en;
                rdfs:subClassOf [a owl:Restriction ; 
                                 owl:onProperty sdtl:value ; 
                                 owl:allValuesFrom xsd:string ; 
                                 rdfs:comment "The value to which a label is assigned"],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:value ; 
                                 owl:onDataRange xsd:string ; 
                                 owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:label ; 
                                 owl:allValuesFrom xsd:string ; 
                                 rdfs:comment "The label to be assigned to the value"],
                                [a owl:Restriction ; 
                                 owl:onProperty sdtl:label ; 
                                 owl:onDataRange xsd:string ; 
                                 owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:ValueListExpression a owl:Class;
                         rdfs:comment """Wraps a list of other expressions.\r
""";
                         rdfs:label "ValueListExpression"@en;
                         rdfs:subClassOf sdtl:ExpressionBase,
                                         [a owl:Restriction ; 
                                          owl:onProperty sdtl:values ; 
                                          owl:allValuesFrom sdtl:ExpressionBase ; 
                                          rdfs:comment "The list of expressions."],
                                         [a owl:Restriction ; 
                                          owl:onProperty sdtl:values ; 
                                          owl:onClass sdtl:ExpressionBase ; 
                                          owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:VariableListExpression a owl:Class;
                            rdfs:comment """A list of variables which may include variable names (VariableSymbolExpression, CompositeVariableNameExpression), variable ranges (VariableRangeExpression), and variable lists.\r
""";
                            rdfs:label "VariableListExpression"@en;
                            rdfs:subClassOf sdtl:VariableReferenceBase,
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:variables ; 
                                             owl:allValuesFrom sdtl:VariableReferenceBase ; 
                                             rdfs:comment "An array of variables and/or variable ranges"],
                                            [a owl:Restriction ; 
                                             owl:onProperty sdtl:variables ; 
                                             owl:onClass sdtl:VariableReferenceBase ; 
                                             owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:VariableRangeExpression a owl:Class;
                             rdfs:comment "A list of variables in adjacent columns defined by the variable names of first and last columns.";
                             rdfs:label "VariableRangeExpression"@en;
                             rdfs:subClassOf sdtl:VariableReferenceBase,
                                             [a owl:Restriction ; 
                                              owl:onProperty sdtl:first ; 
                                              owl:allValuesFrom xsd:string ; 
                                              rdfs:comment "Lowest variable name in range"],
                                             [a owl:Restriction ; 
                                              owl:onProperty sdtl:first ; 
                                              owl:onDataRange xsd:string ; 
                                              owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger],
                                             [a owl:Restriction ; 
                                              owl:onProperty sdtl:last ; 
                                              owl:allValuesFrom xsd:string ; 
                                              rdfs:comment "Highest variable name in range"],
                                             [a owl:Restriction ; 
                                              owl:onProperty sdtl:last ; 
                                              owl:onDataRange xsd:string ; 
                                              owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:VariableReferenceBase a owl:Class;
                           rdfs:comment """Types used to describe variables in expressions.\r
""";
                           rdfs:label "VariableReferenceBase"@en;
                           rdfs:subClassOf sdtl:ExpressionBase.
sdtl:VariableSymbolExpression a owl:Class;
                              rdfs:comment """A reference to a variable.\r
""";
                              rdfs:label "VariableSymbolExpression"@en;
                              rdfs:subClassOf sdtl:VariableReferenceBase,
                                              [a owl:Restriction ; 
                                               owl:onProperty sdtl:variableName ; 
                                               owl:allValuesFrom xsd:string ; 
                                               rdfs:comment "The name of a variable"],
                                              [a owl:Restriction ; 
                                               owl:onProperty sdtl:variableName ; 
                                               owl:onDataRange xsd:string ; 
                                               owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:Weight a owl:Class;
            rdfs:comment """Weight describes the type of weight to apply and variables holding weights.   \r
""";
            rdfs:label "Weight"@en;
            rdfs:subClassOf [a owl:Restriction ; 
                             owl:onProperty sdtl:weightVariable ; 
                             owl:allValuesFrom sdtl:ExpressionBase ; 
                             rdfs:comment "The variable used as a weight in the operation."],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:weightVariable ; 
                             owl:onClass sdtl:ExpressionBase ; 
                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:weightType ; 
                             owl:allValuesFrom [a rdfs:Datatype ; 
                                                owl:oneOf ("frequency"
                                                           "probability"
                                                           "Stata_aweight"
                                                           "Stata_iweight")] ; 
                             rdfs:comment "Type of weight to use"],
                            [a owl:Restriction ; 
                             owl:onProperty sdtl:weightType ; 
                             owl:onDataRange [a rdfs:Datatype ; 
                                              owl:oneOf ("frequency"
                                                         "probability"
                                                         "Stata_aweight"
                                                         "Stata_iweight")] ; 
                             owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger].
sdtl:aggregateVariables a owl:ObjectProperty;
                        rdfs:comment "The expressions that compute the aggregations. An aggregation function should be used.";
                        rdfs:label "AggregateVariables"@en;
                        rdfs:range sdtl:Compute;
                        schema:domainIncludes sdtl:Aggregate,
                                              sdtl:Collapse;
                        schema:rangeIncludes sdtl:Compute.
sdtl:appendFiles a owl:ObjectProperty;
                 rdfs:comment "Description of files to be appended";
                 rdfs:label "AppendFiles"@en;
                 rdfs:range sdtl:AppendFileDescription;
                 schema:domainIncludes sdtl:AppendDatasets;
                 schema:rangeIncludes sdtl:AppendFileDescription.
sdtl:appendFlagVariable a owl:DatatypeProperty;
                        rdfs:comment "Creates a new variable identifying the source dataframe for a row with the variable name given in the value of the property";
                        rdfs:label "AppendFlagVariable"@en;
                        rdfs:range xsd:string;
                        schema:domainIncludes sdtl:AppendDatasets;
                        schema:rangeIncludes xsd:string.
sdtl:argumentName a owl:DatatypeProperty;
                  rdfs:comment "The name of the parameter.";
                  rdfs:label "ArgumentName"@en;
                  rdfs:range xsd:string;
                  schema:domainIncludes sdtl:FunctionArgument;
                  schema:rangeIncludes xsd:string.
sdtl:argumentValue a owl:ObjectProperty;
                   rdfs:comment "The value of the parameter.";
                   rdfs:label "ArgumentValue"@en;
                   rdfs:range sdtl:ExpressionBase;
                   schema:domainIncludes sdtl:FunctionArgument;
                   schema:rangeIncludes sdtl:ExpressionBase.
sdtl:arguments a owl:ObjectProperty;
               rdfs:comment "A list of parameters to the function.";
               rdfs:label "Arguments"@en;
               rdfs:range sdtl:FunctionArgument;
               schema:domainIncludes sdtl:FunctionCallExpression;
               schema:rangeIncludes sdtl:FunctionArgument.
sdtl:argumentsList a owl:ObjectProperty;
                   rdfs:label "Arguments (ordered list)"@en;
                   cogsmeta:orderedCompanionOf sdtl:arguments;
                   schema:domainIncludes sdtl:FunctionCallExpression;
                   schema:rangeIncludes sdtl:FunctionArgument.
sdtl:booleanValue a owl:DatatypeProperty;
                  rdfs:comment "Values of TRUE and FALSE are used in logical expressions.";
                  rdfs:label "BooleanValue"@en;
                  rdfs:range xsd:boolean;
                  schema:domainIncludes sdtl:BooleanConstantExpression;
                  schema:rangeIncludes xsd:boolean.
sdtl:caseNumberVariable a owl:DatatypeProperty;
                        rdfs:comment "New variable identifying the case number in the wide data that created this row.";
                        rdfs:label "CaseNumberVariable"@en;
                        rdfs:range xsd:string;
                        schema:domainIncludes sdtl:ReshapeLong;
                        schema:rangeIncludes xsd:string.
sdtl:caseWise a owl:DatatypeProperty;
              rdfs:comment "Observations are not included if any variable  is missing";
              rdfs:label "CaseWise"@en;
              rdfs:range xsd:string;
              schema:domainIncludes sdtl:Collapse;
              schema:rangeIncludes xsd:string.
sdtl:characterPosition a owl:DatatypeProperty;
                       rdfs:comment "The character position of the source that the message is related to, if relevant.";
                       rdfs:label "CharacterPosition"@en;
                       rdfs:range xsd:int;
                       schema:domainIncludes sdtl:Message;
                       schema:rangeIncludes xsd:int.
sdtl:columnDimensions a owl:ObjectProperty;
                      rdfs:comment "An ordered list of variables used as colum indexes in a multi-index";
                      rdfs:label "ColumnDimensions"@en;
                      rdfs:range sdtl:VariableReferenceBase;
                      schema:domainIncludes sdtl:DataframeDescription;
                      schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:columnDimensionsList a owl:ObjectProperty;
                          rdfs:label "ColumnDimensions (ordered list)"@en;
                          cogsmeta:orderedCompanionOf sdtl:columnDimensions;
                          schema:domainIncludes sdtl:DataframeDescription;
                          schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:columnWise a owl:DatatypeProperty;
                rdfs:comment "Variables are not included if any value in a column is missing";
                rdfs:label "ColumnWise"@en;
                rdfs:range xsd:string;
                schema:domainIncludes sdtl:Collapse;
                schema:rangeIncludes xsd:string.
sdtl:command a owl:DatatypeProperty;
             rdfs:comment "The type of command";
             rdfs:label "Command"@en;
             rdfs:range xsd:string;
             schema:domainIncludes sdtl:CommandBase;
             schema:rangeIncludes xsd:string.
sdtl:commandCount a owl:DatatypeProperty;
                  rdfs:comment "The number of commands detected in the source file.";
                  rdfs:label "CommandCount"@en;
                  rdfs:range xsd:int;
                  schema:domainIncludes sdtl:Program;
                  schema:rangeIncludes xsd:int.
sdtl:commands a owl:ObjectProperty;
              rdfs:comment "Commands generated by the loop expanded by replacing tokens representing variables, numbers, or strings with their values.";
              rdfs:label "Commands"@en;
              rdfs:range sdtl:CommandBase;
              schema:domainIncludes sdtl:LoopOverList,
                                    sdtl:LoopWhile,
                                    sdtl:Program;
              schema:rangeIncludes sdtl:CommandBase.
sdtl:commandsList a owl:ObjectProperty;
                  rdfs:label "Commands (ordered list)"@en;
                  cogsmeta:orderedCompanionOf sdtl:commands;
                  schema:domainIncludes sdtl:Program;
                  schema:rangeIncludes sdtl:CommandBase.
sdtl:commentText a owl:DatatypeProperty;
                 rdfs:comment "The text of the source code comment.";
                 rdfs:label "CommentText"@en;
                 rdfs:range xsd:string;
                 schema:domainIncludes sdtl:Comment;
                 schema:rangeIncludes xsd:string.
sdtl:computedVariableName a owl:ObjectProperty;
                          rdfs:comment "An expression that evaluates to the constructed variable name.";
                          rdfs:label "ComputedVariableName"@en;
                          rdfs:range sdtl:ExpressionBase;
                          schema:domainIncludes sdtl:CompositeVariableNameExpression;
                          schema:rangeIncludes sdtl:ExpressionBase.
sdtl:condition a owl:ObjectProperty;
               rdfs:comment "A logical expression";
               rdfs:label "Condition"@en;
               rdfs:range sdtl:ExpressionBase;
               schema:domainIncludes sdtl:DoIf,
                                     sdtl:DropCases,
                                     sdtl:IfRows,
                                     sdtl:KeepCases,
                                     sdtl:LoopWhile;
               schema:rangeIncludes sdtl:ExpressionBase.
sdtl:consumesDataframe a owl:ObjectProperty;
                       rdfs:comment "Signify the dataframe which this transform acts upon.";
                       rdfs:label "ConsumesDataframe"@en;
                       rdfs:range sdtl:DataframeDescription;
                       schema:domainIncludes sdtl:TransformBase;
                       schema:rangeIncludes sdtl:DataframeDescription.
sdtl:countById a owl:DatatypeProperty;
               rdfs:comment "New variable with the number of cases in the long dataset that were created from the source row in the wide dataset.";
               rdfs:label "CountByID"@en;
               rdfs:range xsd:string;
               schema:domainIncludes sdtl:ReshapeLong;
               schema:rangeIncludes xsd:string.
sdtl:countByIdLabel a owl:DatatypeProperty;
                    rdfs:comment "Label for the CountByID variable.";
                    rdfs:label "CountByIDLabel"@en;
                    rdfs:range xsd:string;
                    schema:domainIncludes sdtl:ReshapeLong;
                    schema:rangeIncludes xsd:string.
sdtl:dataType a owl:DatatypeProperty;
              rdfs:comment """General type of a variable,  e.g.  \"Text\" or \"Numeric\".""";
              rdfs:label "DataType"@en;
              rdfs:range xsd:string;
              schema:domainIncludes sdtl:SetDataType;
              schema:rangeIncludes xsd:string.
sdtl:dataframeName a owl:DatatypeProperty;
                   rdfs:comment "Name of the dataframe.";
                   rdfs:label "DataframeName"@en;
                   rdfs:range xsd:string;
                   schema:domainIncludes sdtl:DataframeDescription;
                   schema:rangeIncludes xsd:string.
sdtl:dateTimeValue a owl:DatatypeProperty;
                   rdfs:comment "A specific instance of time in ISO 8601 format";
                   rdfs:label "DateTimeValue"@en;
                   rdfs:range xsd:dateTime;
                   schema:domainIncludes sdtl:DateTimeConstant;
                   schema:rangeIncludes xsd:dateTime.
sdtl:displayFormatName a owl:DatatypeProperty;
                       rdfs:comment "The name used in the associated schema.";
                       rdfs:label "DisplayFormatName"@en;
                       rdfs:range xsd:string;
                       schema:domainIncludes sdtl:SetDisplayFormat;
                       schema:rangeIncludes xsd:string.
sdtl:displayFormatSchema a owl:DatatypeProperty;
                         rdfs:comment "A vendor or standards body with a controlled vocabulary.  The value can be a URL.";
                         rdfs:label "DisplayFormatSchema"@en;
                         rdfs:range xsd:string;
                         schema:domainIncludes sdtl:SetDisplayFormat;
                         schema:rangeIncludes xsd:string.
sdtl:dropCasesCondition a owl:ObjectProperty;
                        rdfs:comment "Logical condition for dropping rows.";
                        rdfs:label "DropCasesCondition"@en;
                        rdfs:range sdtl:ExpressionBase;
                        schema:domainIncludes sdtl:AppendFileDescription,
                                              sdtl:MergeFileDescription;
                        schema:rangeIncludes sdtl:ExpressionBase.
sdtl:dropVariables a owl:ObjectProperty;
                   rdfs:comment "List of variables to drop";
                   rdfs:label "DropVariables"@en;
                   rdfs:range sdtl:VariableReferenceBase;
                   schema:domainIncludes sdtl:AppendFileDescription,
                                         sdtl:MergeFileDescription,
                                         sdtl:ReshapeLong,
                                         sdtl:ReshapeWide;
                   schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:elseCommands a owl:ObjectProperty;
                  rdfs:comment "Commands to be performed if the condition is false.";
                  rdfs:label "ElseCommands"@en;
                  rdfs:range sdtl:CommandBase;
                  schema:domainIncludes sdtl:DoIf,
                                        sdtl:IfRows;
                  schema:rangeIncludes sdtl:CommandBase.
sdtl:endCondition a owl:ObjectProperty;
                  rdfs:comment "Describes a condition that ends interation.  ";
                  rdfs:label "EndCondition"@en;
                  rdfs:range sdtl:ExpressionBase;
                  schema:domainIncludes sdtl:LoopWhile;
                  schema:rangeIncludes sdtl:ExpressionBase.
sdtl:expression a owl:ObjectProperty;
                rdfs:comment "The expression used to compute the value of the variable(s)";
                rdfs:label "Expression"@en;
                rdfs:range sdtl:ExpressionBase;
                schema:domainIncludes sdtl:Compute,
                                      sdtl:GroupedExpression;
                schema:rangeIncludes sdtl:ExpressionBase.
sdtl:fileFormat a owl:DatatypeProperty;
                rdfs:comment "The name of a file format";
                rdfs:label "FileFormat"@en;
                rdfs:range xsd:string;
                schema:domainIncludes sdtl:AppendFileDescription,
                                      sdtl:Load,
                                      sdtl:MergeFileDescription,
                                      sdtl:Save;
                schema:rangeIncludes xsd:string.
sdtl:fileName a owl:DatatypeProperty;
              rdfs:comment "Name of the file being appended.  May be the name of an active dataframe.";
              rdfs:label "FileName"@en;
              rdfs:range xsd:string;
              schema:domainIncludes sdtl:AppendFileDescription,
                                    sdtl:Load,
                                    sdtl:MergeFileDescription,
                                    sdtl:Save;
              schema:rangeIncludes xsd:string.
sdtl:first a owl:DatatypeProperty;
           rdfs:comment "Lowest variable name in range";
           rdfs:label "First"@en;
           rdfs:range xsd:string;
           schema:domainIncludes sdtl:VariableRangeExpression;
           schema:rangeIncludes xsd:string.
sdtl:firstVariable a owl:DatatypeProperty;
                   rdfs:comment "The name of a variable set to 1 for the first row of each group of cases with the same value for the MergeByVariables variables and set to  0 for all other rows.";
                   rdfs:label "FirstVariable"@en;
                   rdfs:range xsd:string;
                   schema:domainIncludes sdtl:MergeDatasets;
                   schema:rangeIncludes xsd:string.
sdtl:fromValue a owl:ObjectProperty;
               rdfs:comment "The values to be recoded.";
               rdfs:label "FromValue"@en;
               rdfs:range sdtl:ExpressionBase;
               schema:domainIncludes sdtl:RecodeRule;
               schema:rangeIncludes sdtl:ExpressionBase.
sdtl:function a owl:DatatypeProperty;
              rdfs:comment "The name of the function being called.";
              rdfs:label "Function"@en;
              rdfs:range xsd:string;
              schema:domainIncludes sdtl:FunctionCallExpression;
              schema:rangeIncludes xsd:string.
sdtl:groupByVariables a owl:ObjectProperty;
                      rdfs:comment "Variables used as keys to identify groups.";
                      rdfs:label "GroupByVariables"@en;
                      rdfs:range sdtl:VariableReferenceBase;
                      schema:domainIncludes sdtl:Aggregate,
                                            sdtl:Collapse;
                      schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:id a owl:DatatypeProperty;
        rdfs:comment "ID of the object being referenced.";
        rdfs:label "ID"@en;
        rdfs:range xsd:string;
        schema:domainIncludes sdtl:Program;
        schema:rangeIncludes xsd:string.
sdtl:idVariables a owl:ObjectProperty;
                 rdfs:comment "One or more variables identifying unique rows in the wide data.";
                 rdfs:label "IDVariables"@en;
                 rdfs:range sdtl:VariableReferenceBase;
                 schema:domainIncludes sdtl:ReshapeLong,
                                       sdtl:ReshapeWide;
                 schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:indexValues a owl:ObjectProperty;
                 rdfs:comment "A list of values that produce new rows (long) or columns (wide) for this variable.";
                 rdfs:label "IndexValues"@en;
                 rdfs:range sdtl:ExpressionBase;
                 schema:domainIncludes sdtl:ReshapeItemDescription;
                 schema:rangeIncludes sdtl:ExpressionBase.
sdtl:indexVariableLabel a owl:DatatypeProperty;
                        rdfs:comment "Label for the variable in IndexVariableName.";
                        rdfs:label "IndexVariableLabel"@en;
                        rdfs:range xsd:string;
                        schema:domainIncludes sdtl:ReshapeItemDescription;
                        schema:rangeIncludes xsd:string.
sdtl:indexVariableName a owl:DatatypeProperty;
                       rdfs:comment "Name of the variable that will contain the value of the index for this row.";
                       rdfs:label "IndexVariableName"@en;
                       rdfs:range xsd:string;
                       schema:domainIncludes sdtl:ReshapeItemDescription;
                       schema:rangeIncludes xsd:string.
sdtl:isCompressed a owl:DatatypeProperty;
                  rdfs:comment "Indicates whether the file format is compressed.";
                  rdfs:label "IsCompressed"@en;
                  rdfs:range xsd:boolean;
                  schema:domainIncludes sdtl:AppendFileDescription,
                                        sdtl:Load,
                                        sdtl:MergeFileDescription,
                                        sdtl:Save;
                  schema:rangeIncludes xsd:boolean.
sdtl:isSdtlName a owl:DatatypeProperty;
                rdfs:comment "When true, the Function property contains the name of a function from the SDTL function library. When false, the Function property contains the name of a system-specific or user-defined function.";
                rdfs:label "IsSdtlName"@en;
                rdfs:range xsd:boolean;
                schema:domainIncludes sdtl:FunctionCallExpression;
                schema:rangeIncludes xsd:boolean.
sdtl:iteratorSymbolName a owl:ObjectProperty;
                        rdfs:comment "The name used in  IteratorCommands  for the index variable that changes value in the loop.";
                        rdfs:label "IteratorSymbolName"@en;
                        rdfs:range sdtl:IteratorSymbolExpression;
                        schema:domainIncludes sdtl:IteratorDescription;
                        schema:rangeIncludes sdtl:IteratorSymbolExpression.
sdtl:iteratorValues a owl:ObjectProperty;
                    rdfs:comment "Describes the values that are substituted for the index variable that changes value in the loop.";
                    rdfs:label "IteratorValues"@en;
                    rdfs:range sdtl:ExpressionBase;
                    schema:domainIncludes sdtl:IteratorDescription;
                    schema:rangeIncludes sdtl:ExpressionBase.
sdtl:iterators a owl:ObjectProperty;
               rdfs:comment "Describes one or more iteration processes in this loop.";
               rdfs:label "Iterators"@en;
               rdfs:range sdtl:IteratorDescription;
               schema:domainIncludes sdtl:LoopOverList;
               schema:rangeIncludes sdtl:IteratorDescription.
sdtl:keepCasesCondition a owl:ObjectProperty;
                        rdfs:comment "Logical condition for keeping rows.";
                        rdfs:label "KeepCasesCondition"@en;
                        rdfs:range sdtl:ExpressionBase;
                        schema:domainIncludes sdtl:AppendFileDescription,
                                              sdtl:MergeFileDescription;
                        schema:rangeIncludes sdtl:ExpressionBase.
sdtl:keepNullCases a owl:DatatypeProperty;
                   rdfs:comment "When set to TRUE, rows in which all constructed variables are missing are not deleted.";
                   rdfs:label "KeepNullCases"@en;
                   rdfs:range xsd:boolean;
                   schema:domainIncludes sdtl:ReshapeLong;
                   schema:rangeIncludes xsd:boolean.
sdtl:keepVariables a owl:ObjectProperty;
                   rdfs:comment "List of variables to keep";
                   rdfs:label "KeepVariables"@en;
                   rdfs:range sdtl:VariableReferenceBase;
                   schema:domainIncludes sdtl:AppendFileDescription,
                                         sdtl:MergeFileDescription,
                                         sdtl:ReshapeLong,
                                         sdtl:ReshapeWide;
                   schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:label a owl:DatatypeProperty;
           rdfs:comment "A value label for the new recoded value, if appropriate";
           rdfs:label "Label"@en;
           rdfs:range xsd:string;
           schema:domainIncludes sdtl:RecodeRule,
                                 sdtl:SetVariableLabel,
                                 sdtl:ValueLabel;
           schema:rangeIncludes xsd:string.
sdtl:labels a owl:ObjectProperty;
            rdfs:comment "The label to be assigned to the variables";
            rdfs:label "Labels"@en;
            rdfs:range sdtl:ValueLabel;
            schema:domainIncludes sdtl:SetValueLabels;
            schema:rangeIncludes sdtl:ValueLabel.
sdtl:last a owl:DatatypeProperty;
          rdfs:comment "Highest variable name in range";
          rdfs:label "Last"@en;
          rdfs:range xsd:string;
          schema:domainIncludes sdtl:VariableRangeExpression;
          schema:rangeIncludes xsd:string.
sdtl:lastVariable a owl:DatatypeProperty;
                  rdfs:comment "The name of a variable set to 1 for the last row of each group of cases with the same value for the MergeByVariables variables and set to  0 for all other rows.";
                  rdfs:label "LastVariable"@en;
                  rdfs:range xsd:string;
                  schema:domainIncludes sdtl:MergeDatasets;
                  schema:rangeIncludes xsd:string.
sdtl:lineCount a owl:DatatypeProperty;
               rdfs:comment "The number of lines in the source file.";
               rdfs:label "LineCount"@en;
               rdfs:range xsd:int;
               schema:domainIncludes sdtl:Program;
               schema:rangeIncludes xsd:int.
sdtl:lineNumber a owl:DatatypeProperty;
                rdfs:comment "The line number of the source that the messages is related to, if relevant.";
                rdfs:label "LineNumber"@en;
                rdfs:range xsd:int;
                schema:domainIncludes sdtl:Message;
                schema:rangeIncludes xsd:int.
sdtl:lineNumberEnd a owl:DatatypeProperty;
                   rdfs:comment "The line number of the end of the transform code";
                   rdfs:label "LineNumberEnd"@en;
                   rdfs:range xsd:int;
                   schema:domainIncludes sdtl:SourceInformation;
                   schema:rangeIncludes xsd:int.
sdtl:lineNumberStart a owl:DatatypeProperty;
                     rdfs:comment "The line number of the beginning of the transform code";
                     rdfs:label "LineNumberStart"@en;
                     rdfs:range xsd:int;
                     schema:domainIncludes sdtl:SourceInformation;
                     schema:rangeIncludes xsd:int.
sdtl:makeItems a owl:ObjectProperty;
               rdfs:comment "New variables created by this command.";
               rdfs:label "MakeItems"@en;
               rdfs:range sdtl:ReshapeItemDescription;
               schema:domainIncludes sdtl:ReshapeLong,
                                     sdtl:ReshapeWide;
               schema:rangeIncludes sdtl:ReshapeItemDescription.
sdtl:mergeByNames a owl:ObjectProperty;
                  rdfs:comment "An ordered list of variables used as keys  in this file to be matched to the variables in the mergeByVariables property of the MergeDatasets command.  This property is only used when the key variables in this file have different names than the variable names listed in the MergeDatasets command.";
                  rdfs:label "MergeByNames"@en;
                  rdfs:range sdtl:VariableReferenceBase;
                  schema:domainIncludes sdtl:MergeFileDescription;
                  schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:mergeByNamesList a owl:ObjectProperty;
                      rdfs:label "MergeByNames (ordered list)"@en;
                      cogsmeta:orderedCompanionOf sdtl:mergeByNames;
                      schema:domainIncludes sdtl:MergeFileDescription;
                      schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:mergeByVariables a owl:ObjectProperty;
                      rdfs:comment """A variable or list of variables that acts as the unique case identifier across datasets.  If MergeByVariables is absent, MergeType must be \"sequential\" on all files.""";
                      rdfs:label "MergeByVariables"@en;
                      rdfs:range sdtl:VariableReferenceBase;
                      schema:domainIncludes sdtl:MergeDatasets;
                      schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:mergeFiles a owl:ObjectProperty;
                rdfs:comment "Description of files to be merged.";
                rdfs:label "MergeFiles"@en;
                rdfs:range sdtl:MergeFileDescription;
                schema:domainIncludes sdtl:MergeDatasets;
                schema:rangeIncludes sdtl:MergeFileDescription.
sdtl:mergeFlagVariable a owl:DatatypeProperty;
                       rdfs:comment "Name of a new variable indicating whether the row came from this file or a different input file.";
                       rdfs:label "MergeFlagVariable"@en;
                       rdfs:range xsd:string;
                       schema:domainIncludes sdtl:MergeFileDescription;
                       schema:rangeIncludes xsd:string.
sdtl:mergeType a owl:DatatypeProperty;
               rdfs:comment "Describes the type of merge performed. ";
               rdfs:label "MergeType"@en;
               rdfs:range xsd:string;
               schema:domainIncludes sdtl:MergeFileDescription;
               schema:rangeIncludes xsd:string.
sdtl:messageText a owl:DatatypeProperty;
                 rdfs:comment "Adds a message that can be displayed with the command.";
                 rdfs:label "MessageText"@en;
                 rdfs:range xsd:string;
                 schema:domainIncludes sdtl:CommandBase;
                 schema:rangeIncludes xsd:string.
sdtl:messages a owl:ObjectProperty;
              rdfs:comment "Messages related to the parsing of the source file.";
              rdfs:label "Messages"@en;
              rdfs:range sdtl:Message;
              schema:domainIncludes sdtl:Program;
              schema:rangeIncludes sdtl:Message.
sdtl:modelCreatedTime a owl:DatatypeProperty;
                      rdfs:comment "The date and time the SDTL was generated.";
                      rdfs:label "ModelCreatedTime"@en;
                      rdfs:range xsd:dateTime;
                      schema:domainIncludes sdtl:Program;
                      schema:rangeIncludes xsd:dateTime.
sdtl:modelVersion a owl:DatatypeProperty;
                  rdfs:comment "The version of the SDTL model.";
                  rdfs:label "ModelVersion"@en;
                  rdfs:range xsd:string;
                  schema:domainIncludes sdtl:Program;
                  schema:rangeIncludes xsd:string.
sdtl:name a owl:DatatypeProperty;
          rdfs:comment "A name used for the index variable that takes different values inside a loop.";
          rdfs:label "Name"@en;
          rdfs:range xsd:string;
          schema:domainIncludes sdtl:IteratorSymbolExpression;
          schema:rangeIncludes xsd:string.
sdtl:newRow a owl:DatatypeProperty;
            rdfs:comment "When TRUE,  generate new row when not matched to other files";
            rdfs:label "NewRow"@en;
            rdfs:range xsd:boolean;
            schema:domainIncludes sdtl:MergeFileDescription;
            schema:rangeIncludes xsd:boolean.
sdtl:newVariable a owl:ObjectProperty;
                 rdfs:comment "The new name of the variable.";
                 rdfs:label "NewVariable"@en;
                 rdfs:range sdtl:VariableSymbolExpression;
                 schema:domainIncludes sdtl:RenamePair;
                 schema:rangeIncludes sdtl:VariableSymbolExpression.
sdtl:numberOfColumns a owl:DatatypeProperty;
                     rdfs:comment "Number of columns in new dataframe";
                     rdfs:label "NumberOfColumns"@en;
                     rdfs:range xsd:int;
                     schema:domainIncludes sdtl:NewDataframe;
                     schema:rangeIncludes xsd:int.
sdtl:numberOfRows a owl:DatatypeProperty;
                  rdfs:comment "Number of rows in new dataframe";
                  rdfs:label "NumberOfRows"@en;
                  rdfs:range xsd:int;
                  schema:domainIncludes sdtl:NewDataframe;
                  schema:rangeIncludes xsd:int.
sdtl:numberRangeEnd a owl:ObjectProperty;
                    rdfs:comment "Ending value for range";
                    rdfs:label "NumberRangeEnd"@en;
                    rdfs:range sdtl:ExpressionBase;
                    schema:domainIncludes sdtl:NumberRangeExpression;
                    schema:rangeIncludes sdtl:ExpressionBase.
sdtl:numberRangeIncrement a owl:ObjectProperty;
                          rdfs:comment "Increment for stepping through range";
                          rdfs:label "NumberRangeIncrement"@en;
                          rdfs:range sdtl:ExpressionBase;
                          schema:domainIncludes sdtl:NumberRangeExpression;
                          schema:rangeIncludes sdtl:ExpressionBase.
sdtl:numberRangeStart a owl:ObjectProperty;
                      rdfs:comment "Starting value for range";
                      rdfs:label "NumberRangeStart"@en;
                      rdfs:range sdtl:ExpressionBase;
                      schema:domainIncludes sdtl:NumberRangeExpression;
                      schema:rangeIncludes sdtl:ExpressionBase.
sdtl:numericType a owl:DatatypeProperty;
                 rdfs:comment "Type of the number";
                 rdfs:label "NumericType"@en;
                 rdfs:range xsd:string;
                 schema:domainIncludes sdtl:NumericConstantExpression;
                 schema:rangeIncludes xsd:string.
sdtl:oldVariable a owl:ObjectProperty;
                 rdfs:comment "The old name of the variable.";
                 rdfs:label "OldVariable"@en;
                 rdfs:range sdtl:VariableSymbolExpression;
                 schema:domainIncludes sdtl:RenamePair;
                 schema:rangeIncludes sdtl:VariableSymbolExpression.
sdtl:originalSourceText a owl:DatatypeProperty;
                        rdfs:comment "The original source code of the data transform code";
                        rdfs:label "OriginalSourceText"@en;
                        rdfs:range xsd:string;
                        schema:domainIncludes sdtl:SourceInformation;
                        schema:rangeIncludes xsd:string.
sdtl:outputDatasetName a owl:DatatypeProperty;
                       rdfs:comment "The name of a new, aggregated dataset to be created.";
                       rdfs:label "OutputDatasetName"@en;
                       rdfs:range xsd:string;
                       schema:domainIncludes sdtl:Collapse;
                       schema:rangeIncludes xsd:string.
sdtl:parser a owl:DatatypeProperty;
            rdfs:comment "The name of the parser used to generate the SDTL.";
            rdfs:label "Parser"@en;
            rdfs:range xsd:string;
            schema:domainIncludes sdtl:Program;
            schema:rangeIncludes xsd:string.
sdtl:parserVersion a owl:DatatypeProperty;
                   rdfs:comment "The version of the parser used to generate the SDTL.";
                   rdfs:label "ParserVersion"@en;
                   rdfs:range xsd:string;
                   schema:domainIncludes sdtl:Program;
                   schema:rangeIncludes xsd:string.
sdtl:problemDescription a owl:DatatypeProperty;
                        rdfs:comment "A message describing the issue with the invalid command.";
                        rdfs:label "ProblemDescription"@en;
                        rdfs:range xsd:string;
                        schema:domainIncludes sdtl:Invalid;
                        schema:rangeIncludes xsd:string.
sdtl:processedSourceText a owl:DatatypeProperty;
                         rdfs:comment "The source code of the data transform code after processing macros or loops";
                         rdfs:label "ProcessedSourceText"@en;
                         rdfs:range xsd:string;
                         schema:domainIncludes sdtl:SourceInformation;
                         schema:rangeIncludes xsd:string.
sdtl:producesDataframe a owl:ObjectProperty;
                       rdfs:comment "Signify the dataframe which this transform produces.";
                       rdfs:label "ProducesDataframe"@en;
                       rdfs:range sdtl:DataframeDescription;
                       schema:domainIncludes sdtl:TransformBase;
                       schema:rangeIncludes sdtl:DataframeDescription.
sdtl:propertyName a owl:DatatypeProperty;
                  rdfs:comment "The name of the property to be set (for example, 'Title' or 'Subtitle').";
                  rdfs:label "PropertyName"@en;
                  rdfs:range xsd:string;
                  schema:domainIncludes sdtl:SetDatasetProperty;
                  schema:rangeIncludes xsd:string.
sdtl:rangeEnd a owl:DatatypeProperty;
              rdfs:comment "Ending value for range";
              rdfs:label "RangeEnd"@en;
              rdfs:range xsd:string;
              schema:domainIncludes sdtl:StringRangeExpression;
              schema:rangeIncludes xsd:string.
sdtl:rangeStart a owl:DatatypeProperty;
                rdfs:comment "Starting value for range";
                rdfs:label "RangeStart"@en;
                rdfs:range xsd:string;
                schema:domainIncludes sdtl:StringRangeExpression;
                schema:rangeIncludes xsd:string.
sdtl:recodedVariableRange a owl:ObjectProperty;
                          rdfs:comment "A range of variables to which the recode rules are applied. The resulting values are stored in the same variable.";
                          rdfs:label "RecodedVariableRange"@en;
                          rdfs:range sdtl:VariableRangeExpression;
                          schema:domainIncludes sdtl:Recode;
                          schema:rangeIncludes sdtl:VariableRangeExpression.
sdtl:recodedVariables a owl:ObjectProperty;
                      rdfs:comment "The variables that will have their values recoded. The resulting values may be either stored in the same variable, or a newly created destination variable";
                      rdfs:label "RecodedVariables"@en;
                      rdfs:range sdtl:RecodeVariable;
                      schema:domainIncludes sdtl:Recode;
                      schema:rangeIncludes sdtl:RecodeVariable.
sdtl:renameVariables a owl:ObjectProperty;
                     rdfs:comment "Variables to be renamed";
                     rdfs:label "RenameVariables"@en;
                     rdfs:range sdtl:RenamePair;
                     schema:domainIncludes sdtl:AppendFileDescription,
                                           sdtl:MergeFileDescription;
                     schema:rangeIncludes sdtl:RenamePair.
sdtl:renames a owl:ObjectProperty;
             rdfs:comment "A list of variable rename objects, which includes the old name and the new name.";
             rdfs:label "Renames"@en;
             rdfs:range sdtl:RenamePair;
             schema:domainIncludes sdtl:Rename;
             schema:rangeIncludes sdtl:RenamePair.
sdtl:rowDimensions a owl:ObjectProperty;
                   rdfs:comment "An ordered list of variables used as hierarchical dimensions in a data cube or multi-index";
                   rdfs:label "RowDimensions"@en;
                   rdfs:range sdtl:VariableReferenceBase;
                   schema:domainIncludes sdtl:DataframeDescription;
                   schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:rowDimensionsList a owl:ObjectProperty;
                       rdfs:label "RowDimensions (ordered list)"@en;
                       cogsmeta:orderedCompanionOf sdtl:rowDimensions;
                       schema:domainIncludes sdtl:DataframeDescription;
                       schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:rules a owl:ObjectProperty;
           rdfs:comment "A mapping describing which values will be recoded to which new values";
           rdfs:label "Rules"@en;
           rdfs:range sdtl:RecodeRule;
           schema:domainIncludes sdtl:Recode;
           schema:rangeIncludes sdtl:RecodeRule.
sdtl:scriptMd5 a owl:DatatypeProperty;
               rdfs:comment "The MD5 hash of the contents of the file.";
               rdfs:label "ScriptMD5"@en;
               rdfs:range xsd:string;
               schema:domainIncludes sdtl:Program;
               schema:rangeIncludes xsd:string.
sdtl:scriptSha1 a owl:DatatypeProperty;
                rdfs:comment "The SHA-1 hash of the contents of the file.";
                rdfs:label "ScriptSHA1"@en;
                rdfs:range xsd:string;
                schema:domainIncludes sdtl:Program;
                schema:rangeIncludes xsd:string.
sdtl:severity a owl:DatatypeProperty;
              rdfs:comment "Information, Warning, Error";
              rdfs:label "Severity"@en;
              rdfs:range xsd:string;
              schema:domainIncludes sdtl:Message;
              schema:rangeIncludes xsd:string.
sdtl:software a owl:DatatypeProperty;
              rdfs:comment "The software package that works with the file.";
              rdfs:label "Software"@en;
              rdfs:range xsd:string;
              schema:domainIncludes sdtl:AppendFileDescription,
                                    sdtl:Load,
                                    sdtl:MergeFileDescription,
                                    sdtl:Save;
              schema:rangeIncludes xsd:string.
sdtl:sortCriteria a owl:ObjectProperty;
                  rdfs:comment "Describes how cases are sorted.";
                  rdfs:label "SortCriteria"@en;
                  rdfs:range sdtl:SortCriterion;
                  schema:domainIncludes sdtl:SortCases;
                  schema:rangeIncludes sdtl:SortCriterion.
sdtl:sortDirection a owl:DatatypeProperty;
                   rdfs:comment "The direction in which to sort.";
                   rdfs:label "SortDirection"@en;
                   rdfs:range xsd:string;
                   schema:domainIncludes sdtl:SortCriterion;
                   schema:rangeIncludes xsd:string.
sdtl:source a owl:DatatypeProperty;
            rdfs:comment "The name of the variable which will have its values recoded";
            rdfs:label "Source"@en;
            rdfs:range xsd:string;
            schema:domainIncludes sdtl:RecodeVariable;
            schema:rangeIncludes xsd:string.
sdtl:sourceFileLastUpdate a owl:DatatypeProperty;
                          rdfs:comment "The date and time the file was last updated.";
                          rdfs:label "SourceFileLastUpdate"@en;
                          rdfs:range xsd:dateTime;
                          schema:domainIncludes sdtl:Program;
                          schema:rangeIncludes xsd:dateTime.
sdtl:sourceFileName a owl:DatatypeProperty;
                    rdfs:comment "The name of the file containing the source code.";
                    rdfs:label "SourceFileName"@en;
                    rdfs:range xsd:string;
                    schema:domainIncludes sdtl:Program;
                    schema:rangeIncludes xsd:string.
sdtl:sourceFileSize a owl:DatatypeProperty;
                    rdfs:comment "The size of the file in bytes.";
                    rdfs:label "SourceFileSize"@en;
                    rdfs:range xsd:long;
                    schema:domainIncludes sdtl:Program;
                    schema:rangeIncludes xsd:long.
sdtl:sourceInformation a owl:ObjectProperty;
                       rdfs:comment "Information about the source of the command.";
                       rdfs:label "SourceInformation"@en;
                       rdfs:range sdtl:SourceInformation;
                       schema:domainIncludes sdtl:CommandBase;
                       schema:rangeIncludes sdtl:SourceInformation.
sdtl:sourceLanguage a owl:DatatypeProperty;
                    rdfs:comment "The language of the source code.";
                    rdfs:label "SourceLanguage"@en;
                    rdfs:range xsd:string;
                    schema:domainIncludes sdtl:Program;
                    schema:rangeIncludes xsd:string.
sdtl:sourceStartIndex a owl:DatatypeProperty;
                      rdfs:comment "The character index of the beginning of the transform code";
                      rdfs:label "SourceStartIndex"@en;
                      rdfs:range xsd:int;
                      schema:domainIncludes sdtl:SourceInformation;
                      schema:rangeIncludes xsd:int.
sdtl:sourceStopIndex a owl:DatatypeProperty;
                     rdfs:comment "The character index of the end of the transform code";
                     rdfs:label "SourceStopIndex"@en;
                     rdfs:range xsd:int;
                     schema:domainIncludes sdtl:SourceInformation;
                     schema:rangeIncludes xsd:int.
sdtl:sourceVariables a owl:ObjectProperty;
                     rdfs:comment "Source variables in the original dataset used to create this variable.";
                     rdfs:label "SourceVariables"@en;
                     rdfs:range sdtl:VariableReferenceBase;
                     schema:domainIncludes sdtl:ReshapeItemDescription;
                     schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:stub a owl:DatatypeProperty;
          rdfs:comment "The stub is a string used in the names of variables in the wide dataset.";
          rdfs:label "Stub"@en;
          rdfs:range xsd:string;
          schema:domainIncludes sdtl:ReshapeItemDescription;
          schema:rangeIncludes xsd:string.
sdtl:subType a owl:DatatypeProperty;
             rdfs:comment "The name used in the associated schema.";
             rdfs:label "SubType"@en;
             rdfs:range xsd:string;
             schema:domainIncludes sdtl:SetDataType;
             schema:rangeIncludes xsd:string.
sdtl:subTypeSchema a owl:DatatypeProperty;
                   rdfs:comment "A vendor or standards body with a controlled vocabulary.  The value can be a URL.";
                   rdfs:label "SubTypeSchema"@en;
                   rdfs:range xsd:string;
                   schema:domainIncludes sdtl:SetDataType;
                   schema:rangeIncludes xsd:string.
sdtl:target a owl:DatatypeProperty;
            rdfs:comment "The name of the new variable into which the recoded values are inserted. This may be the same as the source variable if values are recoded in place.";
            rdfs:label "Target"@en;
            rdfs:range xsd:string;
            schema:domainIncludes sdtl:RecodeVariable;
            schema:rangeIncludes xsd:string.
sdtl:targetVariableLabel a owl:DatatypeProperty;
                         rdfs:comment "Label for new variable created by this command.";
                         rdfs:label "TargetVariableLabel"@en;
                         rdfs:range xsd:string;
                         schema:domainIncludes sdtl:ReshapeItemDescription;
                         schema:rangeIncludes xsd:string.
sdtl:targetVariableName a owl:DatatypeProperty;
                        rdfs:comment "Name of new variable created by this command.";
                        rdfs:label "TargetVariableName"@en;
                        rdfs:range xsd:string;
                        schema:domainIncludes sdtl:ReshapeItemDescription;
                        schema:rangeIncludes xsd:string.
sdtl:thenCommands a owl:ObjectProperty;
                  rdfs:comment "Commands to be performed if the condition is true.";
                  rdfs:label "ThenCommands"@en;
                  rdfs:range sdtl:CommandBase;
                  schema:domainIncludes sdtl:DoIf,
                                        sdtl:IfRows;
                  schema:rangeIncludes sdtl:CommandBase.
sdtl:timeDurationValue a owl:DatatypeProperty;
                       rdfs:comment "A duration of time in ISO 8601 format";
                       rdfs:label "TimeDurationValue"@en;
                       rdfs:range xsd:duration;
                       schema:domainIncludes sdtl:TimeDurationConstant;
                       schema:rangeIncludes xsd:duration.
sdtl:to a owl:DatatypeProperty;
        rdfs:comment "The new value";
        rdfs:label "To"@en;
        rdfs:range xsd:string;
        schema:domainIncludes sdtl:RecodeRule;
        schema:rangeIncludes xsd:string.
sdtl:update a owl:DatatypeProperty;
            rdfs:comment """When the same variables exist in more than one dataframe. values in the \"Master\" dataframe can be replaced by values from a different dataframe. \"Master\" is the default value.  \"Ignore\" means values in this dataframe are never used.  \"FillNew\" is used on rows not found in the \"Master\" dataframe.  \"UpdateMissing\" replaces missing values in the \"Master\" dataframe. \"Replace\" changes all values in the \"Master\" dataframe.\"""";
            rdfs:label "Update"@en;
            rdfs:range xsd:string;
            schema:domainIncludes sdtl:MergeFileDescription;
            schema:rangeIncludes xsd:string.
sdtl:updated a owl:DatatypeProperty;
             rdfs:comment "When TRUE, the loop has been expanded into separate commands.";
             rdfs:label "Updated"@en;
             rdfs:range xsd:boolean;
             schema:domainIncludes sdtl:LoopOverList,
                                   sdtl:LoopWhile;
             schema:rangeIncludes xsd:boolean.
sdtl:value a owl:DatatypeProperty;
           rdfs:comment "The missing value as it appears in the system (e.g., .a, .b, .c).  If Null, this is the system missing value.";
           rdfs:label "Value"@en;
           rdfs:range xsd:string;
           schema:domainIncludes sdtl:MissingValueConstantExpression,
                                 sdtl:NumericConstantExpression,
                                 sdtl:SetDatasetProperty,
                                 sdtl:StringConstantExpression,
                                 sdtl:ValueLabel;
           schema:rangeIncludes xsd:string.
sdtl:values a owl:ObjectProperty;
            rdfs:comment "The values to be considered as missing values";
            rdfs:label "Values"@en;
            rdfs:range sdtl:ExpressionBase;
            schema:domainIncludes sdtl:SetMissingValues,
                                  sdtl:ValueListExpression;
            schema:rangeIncludes sdtl:ExpressionBase.
sdtl:variable a owl:ObjectProperty;
              rdfs:comment "The variable that is computed.";
              rdfs:label "Variable"@en;
              rdfs:range sdtl:VariableReferenceBase;
              schema:domainIncludes sdtl:Compute,
                                    sdtl:SetVariableLabel,
                                    sdtl:SortCriterion;
              schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:variableInventory a owl:DatatypeProperty;
                       rdfs:comment "Variables in the dataframe in order";
                       rdfs:label "VariableInventory"@en;
                       rdfs:range xsd:string;
                       schema:domainIncludes sdtl:DataframeDescription;
                       schema:rangeIncludes xsd:string.
sdtl:variableName a owl:DatatypeProperty;
                  rdfs:comment "The name of a variable";
                  rdfs:label "VariableName"@en;
                  rdfs:range xsd:string;
                  schema:domainIncludes sdtl:VariableSymbolExpression;
                  schema:rangeIncludes xsd:string.
sdtl:variables a owl:ObjectProperty;
               rdfs:comment "The variables to be dropped.";
               rdfs:label "Variables"@en;
               rdfs:range sdtl:VariableReferenceBase;
               schema:domainIncludes sdtl:DropVariables,
                                     sdtl:KeepVariables,
                                     sdtl:SetDataType,
                                     sdtl:SetDisplayFormat,
                                     sdtl:SetMissingValues,
                                     sdtl:SetValueLabels,
                                     sdtl:VariableListExpression;
               schema:rangeIncludes sdtl:VariableReferenceBase.
sdtl:weightType a owl:DatatypeProperty;
                rdfs:comment "Type of weight to use";
                rdfs:label "WeightType"@en;
                rdfs:range xsd:string;
                schema:domainIncludes sdtl:Weight;
                schema:rangeIncludes xsd:string.
sdtl:weightVariable a owl:ObjectProperty;
                    rdfs:comment "The variable used as a weight in the operation.";
                    rdfs:label "WeightVariable"@en;
                    rdfs:range sdtl:ExpressionBase;
                    schema:domainIncludes sdtl:Weight;
                    schema:rangeIncludes sdtl:ExpressionBase.
sdtl:weighting a owl:ObjectProperty;
               rdfs:comment "Description of the weights to be used";
               rdfs:label "Weighting"@en;
               rdfs:range sdtl:Weight;
               schema:domainIncludes sdtl:Aggregate,
                                     sdtl:Collapse;
               schema:rangeIncludes sdtl:Weight.
schema:domainIncludes a owl:AnnotationProperty.
schema:rangeIncludes a owl:AnnotationProperty.
