PREFIX owl: <http://www.w3.org/2002/07/owl#>
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 sql: <http://ns.inria.fr/ast/sql#>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX ns: <http://www.w3.org/2003/06/sw-vocab-status/ns#>
PREFIX pav: <http://purl.org/pav/>
PREFIX schema: <http://schema.org/>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

sql: a owl:Ontology ;
  rdfs:label "SQL Abstract Syntax Trees Vocabulary"@en ;
  rdfs:comment "A vocabulary that allows SQL code abstract syntax trees to be published in RDF."@en ;
  rdfs:seeAlso <http://ns.inria.fr/ast/sql/index.html> , <http://spinrdf.org/sp> ;
  pav:createdOn "2013-12-09"^^xsd:dateTime ;
  pav:lastUpdatedOn "2014-01-28"^^xsd:dateTime ;
  schema:inLanguage "en" ;
  dcterms:license <http://creativecommons.org/licenses/by/1.0/> ;
  pav:version "0.3" ;
  dcterms:creator "Olivier Corby"@en , "Corentin Follenfant"@en ;
  ns:term_status "unstable"@en ;
  vann:preferredNamespacePrefix "sql" ;
  vann:preferredNamespaceUri "http://ns.inria.fr/ast/sql#"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "sql" ;
    sh:namespace "http://ns.inria.fr/ast/sql#"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "dcterms" ;
    sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI
  ] , [
    sh:prefix "rdf" ;
    sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI
  ] , [
    sh:prefix "rdfs" ;
    sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI
  ] , [
    sh:prefix "ns" ;
    sh:namespace "http://www.w3.org/2003/06/sw-vocab-status/ns#"^^xsd:anyURI
  ] .

sql:Predicate a owl:Class ;
  rdfs:label "Predicate"@en ;
  rdfs:comment "Represents a collection of one or more expressions or subqueries, that may be combined with logical operators, and when evaluated returns one of the TRUE / FALSE / UNKNOWN truth values."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ASTNode .

sql:LogicalOperator a owl:Class ;
  rdfs:label "Logical Operator"@en ;
  rdfs:comment "A SQL logical connective used to perform logical calculation."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Operator .

sql:ComparisonOperator a owl:Class ;
  rdfs:label "Comparison Operator"@en ;
  rdfs:comment "A binary operator used to compare two values, and when evaluated returns one of the TRUE / FALSE / UNKNOWN truth values."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Operator .

sql:In a owl:Class ;
  rdfs:label "In predicate"@en ;
  rdfs:comment "Variadic predicate used to assert whether the first provided expression's value is within the set of following provided expressions' values."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Predicate .

sql:Or a owl:Class ;
  rdfs:label "Logical Disjunction"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:LogicalOperator .

sql:ASTNode a owl:Class ;
  rdfs:label "Generic AST Node"@en ;
  rdfs:comment "Abstract class subsumed by all AST node classes."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty sql:args ;
    owl:allValuesFrom rdf:List
  ] .

sql:Expression a owl:Class ;
  rdfs:label "Expression"@en ;
  rdfs:comment "A SQL expression denotes any clause that when evaluated returns values."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ASTNode .

sql:SessionManagementStatement a owl:Class ;
  rdfs:label "Session Management Statement"@en ;
  rdfs:comment "A SQL session management statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Statement .

sql:UserIdentifier a owl:Class ;
  rdfs:label "User Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog user."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:ProceduralStatement a owl:Class ;
  rdfs:label "Procedural Statement"@en ;
  rdfs:comment "A SQL procedural statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Statement .

sql:Procedure a owl:Class ;
  rdfs:label "Relational Procedure"@en ;
  rdfs:comment "A reference or declarative statement for a catalog procedure."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:ObjectIdentifier a owl:Class ;
  rdfs:label "Database Catalog Object Identifier"@en ;
  rdfs:comment "A database catalog object identifier, qualified or not."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ASTNode .

sql:AccessControlStatement a owl:Class ;
  rdfs:label "Access Control Statement"@en ;
  rdfs:comment "A SQL access control statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Statement .

sql:TableIdentifier a owl:Class ;
  rdfs:label "Table Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog table."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:JoinPredicate a owl:Class ;
  rdfs:label "Join Predicate"@en ;
  rdfs:comment "Binary predicate used join two or more tables."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Predicate .

sql:DeleteStatement a owl:Class ;
  rdfs:label "Delete Statement"@en ;
  rdfs:comment "A SQL DELETE statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataManipulationStatement .

sql:DataDefinitionStatement a owl:Class ;
  rdfs:label "Data Definition Statement"@en ;
  rdfs:comment "A SQL data definition statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Statement .

sql:ArithmeticOperator a owl:Class ;
  rdfs:label "Arithmetic Operator"@en ;
  rdfs:comment "A SQL arithmetic operator used to perform arithmetic calculation."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Operator .

sql:FullOuterJoin a owl:Class ;
  rdfs:label "Full Outer Join Predicate"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:OuterJoin .

sql:InnerJoin a owl:Class ;
  rdfs:label "Inner Join Predicate"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:JoinPredicate .

sql:CaseExpression a owl:Class ;
  rdfs:label "Case Expression"@en ;
  rdfs:comment "A SQL case expression enables the use of the IF <condition> THEN <consequent> ELSE <alternative> logic within SQL statements."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Expression .

sql:UpdateStatement a owl:Class ;
  rdfs:label "Update Statement"@en ;
  rdfs:comment "A SQL UPDATE statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataManipulationStatement .

sql:Sequence a owl:Class ;
  rdfs:label "Relational Sequence"@en ;
  rdfs:comment "A reference or declarative statement for a catalog sequence."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:Function a owl:Class ;
  rdfs:label "Function"@en ;
  rdfs:comment "A SQL built-in function that performs calculation and returns a value. May be vendor-specific."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ASTNode .

sql:GreaterThan a owl:Class ;
  rdfs:label "Greater than comparison"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ComparisonOperator .

sql:RollbackStatement a owl:Class ;
  rdfs:label "Rollback Statement"@en ;
  rdfs:comment "A SQL ROLLBACK statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:TransactionManagementStatement .

sql:NumberFunction a owl:Class ;
  rdfs:label "Number Function"@en ;
  rdfs:comment "A SQL number function that returns a numeric value and reads numeric values or string with numeric characters."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ScalarFunction .

sql:RoleIdentifier a owl:Class ;
  rdfs:label "Role Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog role."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:Between a owl:Class ;
  rdfs:label "Range predicate"@en ;
  rdfs:comment "Ternary predicate used to assert whether a provided expression's value is within the range specified by two other expressions' values."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Predicate .

sql:SetOperator a owl:Class ;
  rdfs:label "Set Operator"@en ;
  rdfs:comment "A SQL set operator used to perform set operation on the results of two or more queries."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Operator .

sql:SchemaIdentifier a owl:Class ;
  rdfs:label "Schema Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog schema."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:ProcedureIdentifier a owl:Class ;
  rdfs:label "Procedure Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog procedure."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:LeftOuterJoin a owl:Class ;
  rdfs:label "Left Outer Join Predicate"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:OuterJoin .

sql:Intersect a owl:Class ;
  rdfs:label "Intersection"@en ;
  rdfs:comment "A SQL intersection operator used to return the common result rows of the combination of the result sets of two or more queries."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:SetOperator .

sql:LessThan a owl:Class ;
  rdfs:label "Less than comparison"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ComparisonOperator .

sql:IndexIdentifier a owl:Class ;
  rdfs:label "Index Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog index."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:AlterStatement a owl:Class ;
  rdfs:label "Alter Statement"@en ;
  rdfs:comment "A SQL ALTER statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataDefinitionStatement .

sql:SequenceIdentifier a owl:Class ;
  rdfs:label "Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog sequence."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:CatalogObject a owl:Class ;
  rdfs:label "Database Catalog Object"@en ;
  rdfs:comment "A database catalog object reference."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ASTNode .

sql:IOStatement a owl:Class ;
  rdfs:label "Import / Export Statement"@en ;
  rdfs:comment "A SQL import or export statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Statement .

sql:Alias a owl:Class ;
  rdfs:label "Alias"@en ;
  rdfs:comment "The SQL AS operator used to give an identifier to an expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Operator .

sql:Count a owl:Class ;
  rdfs:label "Count"@en ;
  rdfs:comment "The SQL aggregate function that returns the number of rows or non NULL values from the result set."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AggregateFunction .

sql:Grant a owl:Class ;
  rdfs:label "Grant Statement"@en ;
  rdfs:comment "A SQL GRANT statement used to give a set of privileges or roles to specified users that are actionable on specified database objects."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AccessControlStatement .

sql:Index a owl:Class ;
  rdfs:label "Relational Index"@en ;
  rdfs:comment "A reference or declarative statement for a catalog index."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:Minus a owl:Class ;
  rdfs:label "Subtraction"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ArithmeticOperator .

sql:Table a owl:Class ;
  rdfs:label "Relational Table"@en ;
  rdfs:comment "A reference or declarative statement for a catalog table."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:Union a owl:Class ;
  rdfs:label "Union"@en ;
  rdfs:comment "A SQL union operator used to return the combination of the result sets of two or more queries."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:SetOperator .

sql:InsertStatement a owl:Class ;
  rdfs:label "Insert Statement"@en ;
  rdfs:comment "A SQL INSERT statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataManipulationStatement , [
    a owl:Restriction ;
    owl:onProperty sql:values ;
    owl:allValuesFrom rdf:List
  ] .

sql:NotEquals a owl:Class ;
  rdfs:label "Difference comparison"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ComparisonOperator .

sql:ViewIdentifier a owl:Class ;
  rdfs:label "View Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog view."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:ColumnIdentifier a owl:Class ;
  rdfs:label "Column Identifier"@en ;
  rdfs:comment "A valid identifier for a catalog column."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ObjectIdentifier .

sql:Column a owl:Class ;
  rdfs:label "Relational Column"@en ;
  rdfs:comment "A reference or declarative statement for a catalog column."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:TransactionManagementStatement a owl:Class ;
  rdfs:label "Transaction Management Statement"@en ;
  rdfs:comment "A SQL transaction management statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Statement .

sql:LockTableStatement a owl:Class ;
  rdfs:label "Lock Table Statement"@en ;
  rdfs:comment "A SQL LOCK TABLE statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:TransactionManagementStatement .

sql:Equals a owl:Class ;
  rdfs:label "Equality comparison"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ComparisonOperator .

sql:Except a owl:Class ;
  rdfs:label "Exclusion"@en ;
  rdfs:comment "A SQL exclusion operator used to return the result set produced by removing the result rows of the second query that appear in the result set of the first query."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:SetOperator .

sql:Exists a owl:Class ;
  rdfs:label "Exists predicate"@en ;
  rdfs:comment "Unary predicate that returns one of the TRUE or FALSE truth values depending on whether the evaluated subquery returns an empty result set."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Predicate .

sql:ScalarFunction a owl:Class ;
  rdfs:label "Scalar Function"@en ;
  rdfs:comment "A SQL scalar function returns a single value given the input values. The input value is of a SQL primitive data type."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Function .

sql:IsNull a owl:Class ;
  rdfs:label "Is Null predicate"@en ;
  rdfs:comment "Unary predicate that compares the evaluated expression's value with NULL"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Predicate .

sql:CreateStatement a owl:Class ;
  rdfs:label "Create Statement"@en ;
  rdfs:comment "A SQL CREATE statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataDefinitionStatement .

sql:CrossJoin a owl:Class ;
  rdfs:label "Cross Join Predicate"@en ;
  rdfs:comment "Join predicate used to perform the cross-product of two tables."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:JoinPredicate .

sql:DataTypeConversionFunction a owl:Class ;
  rdfs:label "Data Type Conversion Function"@en ;
  rdfs:comment "A SQL scalar function."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ScalarFunction .

sql:Negate a owl:Class ;
  rdfs:label "Negation"@en ;
  rdfs:comment "A unary arithmetic operator used to produce the negative of its operand."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ArithmeticOperator .

sql:Revoke a owl:Class ;
  rdfs:label "Revoke Statement"@en ;
  rdfs:comment "A SQL REVOKE statement used to revoke a set of privileges or roles to specified users from specified database objects."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AccessControlStatement .

sql:Schema a owl:Class ;
  rdfs:label "Relational Schema"@en ;
  rdfs:comment "A reference or declarative statement for a catalog schema."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:FunctionExpression a owl:Class ;
  rdfs:label "Function Expression"@en ;
  rdfs:comment "A SQL function expressions consists in the use of any built-in SQL function."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Expression .

sql:StdDev a owl:Class ;
  rdfs:label "Standard Deviation"@en ;
  rdfs:comment "The SQL aggregate function that returns the standard deviation (square root of the variance) of the given expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AggregateFunction .

sql:AggregateFunction a owl:Class ;
  rdfs:label "Aggregate Function"@en ;
  rdfs:comment "A SQL aggregate function returns a single value given the values of multiple rows from a column."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Function .

sql:CommitStatement a owl:Class ;
  rdfs:label "Commit Statement"@en ;
  rdfs:comment "A SQL COMMIT statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:TransactionManagementStatement .

sql:ConnectStatement a owl:Class ;
  rdfs:label "Connect Statement"@en ;
  rdfs:comment "A SQL CONNECT statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:SessionManagementStatement .

sql:TableFunction a owl:Class ;
  rdfs:label "Table Function"@en ;
  rdfs:comment "A SQL function that returns a virtual table."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Function .

sql:AggregationExpression a owl:Class ;
  rdfs:label "Aggregation Expression"@en ;
  rdfs:comment "A SQL aggregation expression consists in the use of an aggregate function."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Expression .

sql:OuterJoin a owl:Class ;
  rdfs:label "Outer Join Predicate"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:JoinPredicate .

sql:DateTimeFunction a owl:Class ;
  rdfs:label "Date Time Computation Function"@en ;
  rdfs:comment "A SQL date time function returns a date or time value or performs a specific date or time value computation."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ScalarFunction .

sql:Concatenation a owl:Class ;
  rdfs:label "Concatenation"@en ;
  rdfs:comment "A SQL concatenation operator that returns the combination of two strings, expressions or values."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:StringOperator .

sql:GreaterEquals a owl:Class ;
  rdfs:label "Greater than or equal to comparison"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ComparisonOperator .

sql:StringOperator a owl:Class ;
  rdfs:label "String Operator"@en ;
  rdfs:comment ""@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Operator .

sql:Statement a owl:Class ;
  rdfs:label "Statement"@en ;
  rdfs:comment "A SQL statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ASTNode , [
    a owl:Restriction ;
    owl:onProperty sql:clause ;
    owl:allValuesFrom sql:ASTNode
  ] .

sql:RightOuterJoin a owl:Class ;
  rdfs:label "Right Outer Join Predicate"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:OuterJoin .

sql:Operator a owl:Class ;
  rdfs:label "Operator"@en ;
  rdfs:comment "A SQL operator used to perform arithmetic calculations, comparisons or value assignments."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ASTNode .

sql:SelectStatement a owl:Class ;
  rdfs:label "Select Statement"@en ;
  rdfs:comment "A SQL SELECT statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataManipulationStatement , [
    a owl:Restriction ;
    owl:onProperty sql:groupBy ;
    owl:allValuesFrom sql:ASTNode
  ] , [
    a owl:Restriction ;
    owl:onProperty sql:limit ;
    owl:allValuesFrom xsd:integer
  ] , [
    a owl:Restriction ;
    owl:onProperty sql:orderBy ;
    owl:allValuesFrom sql:ASTNode
  ] , [
    a owl:Restriction ;
    owl:onProperty sql:having ;
    owl:allValuesFrom sql:ASTNode
  ] , [
    a owl:Restriction ;
    owl:onProperty sql:select ;
    owl:allValuesFrom sql:ASTNode
  ] .

sql:SetStatement a owl:Class ;
  rdfs:label "Set Statement"@en ;
  rdfs:comment "Assigns a value to a session variable identifier."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:SessionManagementStatement .

sql:CallStatement a owl:Class ;
  rdfs:label "Call Statement"@en ;
  rdfs:comment "A SQL CALL statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ProceduralStatement .

sql:Cast a owl:Class ;
  rdfs:label "Cast"@en ;
  rdfs:comment "A SQL scalar function that converts an expression to a target data type"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataTypeConversionFunction .

sql:Like a owl:Class ;
  rdfs:label "Like predicate"@en ;
  rdfs:comment "Binary predicate that returns one of the TRUE or FALSE truth values depending on whether the string resulting in the evaluation of the first expression matches the lightweight regular expression described in the second expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Predicate .

sql:Mult a owl:Class ;
  rdfs:label "Multiplication"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ArithmeticOperator .

sql:Plus a owl:Class ;
  rdfs:label "Addition"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ArithmeticOperator .

sql:Role a owl:Class ;
  rdfs:label "Relational Role"@en ;
  rdfs:comment "A reference or declarative statement for a catalog role."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:User a owl:Class ;
  rdfs:label "Relational User"@en ;
  rdfs:comment "A reference or declarative statement for a catalog user."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:View a owl:Class ;
  rdfs:label "Relational View"@en ;
  rdfs:comment "A reference or declarative statement for a catalog view."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:CatalogObject .

sql:DropStatement a owl:Class ;
  rdfs:label "Drop Statement"@en ;
  rdfs:comment "A SQL DROP statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DataDefinitionStatement .

sql:All a owl:Class ;
  rdfs:label "All"@en ;
  rdfs:comment "The SQL '*' wildcard operator, substitutes to all the columns of the tables in the FROM clause."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Operator .

sql:And a owl:Class ;
  rdfs:label "Logical Conjunction"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:LogicalOperator .

sql:Avg a owl:Class ;
  rdfs:label "Average"@en ;
  rdfs:comment "The SQL aggregate function that returns the mean of the given expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AggregateFunction .

sql:Div a owl:Class ;
  rdfs:label "Division"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ArithmeticOperator .

sql:Max a owl:Class ;
  rdfs:label "Maximum"@en ;
  rdfs:comment "The SQL aggregate function that returns the maximum value of the given expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AggregateFunction .

sql:Min a owl:Class ;
  rdfs:label "Minimum"@en ;
  rdfs:comment "The SQL aggregate function that returns the minimum value of the given expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AggregateFunction .

sql:Not a owl:Class ;
  rdfs:label "Logical Negation"@en ;
  rdfs:comment "A SQL logical negation that can be used to negate any condition."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:LogicalOperator .

sql:Now a owl:Class ;
  rdfs:label "Now"@en ;
  rdfs:comment "A SQL now function is a nullary function that returns the current timestamp."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:DateTimeFunction .

sql:Sum a owl:Class ;
  rdfs:label "Sum"@en ;
  rdfs:comment "The SQL aggregate function that returns the sum of the given expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AggregateFunction .

sql:Var a owl:Class ;
  rdfs:label "Variance"@en ;
  rdfs:comment "The SQL aggregate function that returns the variance of the given expression."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:AggregateFunction .

sql:UnionAll a owl:Class ;
  rdfs:label "Union All"@en ;
  rdfs:comment "A SQL union operator used to return the combination of the result sets of two or more queries, including duplicate result rows."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:SetOperator .

sql:LessEquals a owl:Class ;
  rdfs:label "Less than or equal to comparison"@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:ComparisonOperator .

sql:DataManipulationStatement a owl:Class ;
  rdfs:label "Data Manipulation Statement"@en ;
  rdfs:comment "A SQL data manipulation statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subClassOf sql:Statement .

sql:groupBy a owl:ObjectProperty ;
  rdfs:label "GROUP BY clause"@en ;
  rdfs:comment "The SQL clause that specifies the columns whose values will be considered to cluster the result set of selected rows."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:domain sql:SelectStatement ;
  rdfs:subPropertyOf sql:clause .

sql:limit a owl:DatatypeProperty ;
  rdfs:label "LIMIT clause"@en ;
  rdfs:comment "The SQL clause that limits the number of records from the result set that should be returned."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:range xsd:integer ;
  rdfs:domain sql:SelectStatement ;
  rdfs:subPropertyOf sql:clause .

sql:where a owl:ObjectProperty ;
  rdfs:label "WHERE clause"@en ;
  rdfs:comment "The SQL clause that specifies the filtering predicates to apply on the inputs of the FROM clause."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:subPropertyOf sql:clause .

sql:orderBy a owl:ObjectProperty ;
  rdfs:label "ORDER BY clause"@en ;
  rdfs:comment "The SQL clause that specifies how to order the result set's records according to given expressions."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:domain sql:SelectStatement ;
  rdfs:subPropertyOf sql:clause .

sql:clause a owl:ObjectProperty ;
  rdfs:label "Clause"@en ;
  rdfs:comment "A SQL clause is a part of a statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:range sql:ASTNode ;
  rdfs:domain sql:Statement .

sql:having a owl:ObjectProperty ;
  rdfs:label "HAVING clause"@en ;
  rdfs:comment "The SQL clause that specifies the filtering predicates to apply on the clustered result set resulting of a GROUP BY clause."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:domain sql:SelectStatement ;
  rdfs:subPropertyOf sql:clause .

sql:args a owl:ObjectProperty ;
  rdfs:label "AST Node Arguments"@en ;
  rdfs:comment "The generic predicate used to attach an ordered list of children to any AST node."@en ;
  rdfs:range rdf:List ;
  rdfs:domain sql:ASTNode .

sql:from a owl:ObjectProperty ;
  rdfs:label "FROM clause"@en ;
  rdfs:comment "The SQL clause that specifies the target sources (tables, views, subqueries) of a SELECT statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:range rdf:List ;
  rdfs:subPropertyOf sql:clause .

sql:into a owl:ObjectProperty ;
  rdfs:label "INTO target table clause"@en ;
  rdfs:comment "The SQL clause that specifies into which table the following values or select statement's result set are to be inserted into."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:range sql:Table ;
  rdfs:subPropertyOf sql:clause .

sql:select a owl:ObjectProperty ;
  rdfs:label "SELECT clause"@en ;
  rdfs:comment "The SQL clause that specifies the projected tables of a SELECT statement."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:domain sql:SelectStatement ;
  rdfs:subPropertyOf sql:clause .

sql:values a owl:ObjectProperty ;
  rdfs:label "VALUES list Clause"@en ;
  rdfs:comment "The SQL clause that specifies a list of values or expressions evaluating to values."@en ;
  rdfs:isDefinedBy sql: ;
  rdfs:range rdf:List ;
  rdfs:domain sql:InsertStatement ;
  rdfs:subPropertyOf sql:clause .

pav:createdOn a owl:AnnotationProperty .

pav:lastUpdatedOn a owl:AnnotationProperty .

schema:inLanguage a owl:AnnotationProperty .

dcterms:license a owl:AnnotationProperty .

pav:version a owl:AnnotationProperty .

dcterms:creator a owl:AnnotationProperty .

ns:term_status a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .
