abstract
|
This documentation is not current - it is for TypeDB 2.x, which is no longer supported. View the documentation for TypeDB 3.x: |
The abstract keyword is used in TypeQL to define a type as an abstract type.
Syntax
The syntax of a simple statement with the type keyword:
<type label> abstract;
The abstract keyword doesn’t use any object, so after the keyword always follows either a comma, or a semicolon.
Behavior
TypeQL statements with the abstract keyword are used in Define queries to define (declare) that the type is abstract.
An abstract type can’t be used to insert a data instance but can be used to create a subtype or to query (for its subtypes).
Usage in a schema definition
For this example, use a database with the IAM schema and sample data loaded.
Since in Define queries you can’t use variables, the abstract keyword can be used only with a type label.
It can be a part of a composite statement.
For example, to define a new abstract attribute type id as a subtype of the attribute root type,
and then the email non-abstract (concrete) type as a subtype of the id, use:
define
id sub attribute, abstract, value string;
email sub id, value string;