isa statement

The statement <VAR> isa <TYPE> is used to identify the <VAR> as an instance of <TYPE>.

Schema for the following examples
#!test[schema]
define
attribute name, value string;
entity person, owns name;

Inserting instance of type

The isa keyword can be used to create a new instance of a given type.

#!test[write]
insert $person isa person;

Deleting instance of type

The isa keyword is not used to delete an instance of a type. Simply delete the variable that is bound to the instance.

#!test[write]
#{{
match $person isa person;
#}}
delete $person;

Matching

Matching instances of type

The isa keyword can be used to match all instances of a given type and its subtypes.

#!test[read]
match $person isa person;

The isa! keyword can be used to match all instances of a type excluding subtypes.

#!test[read]
match $person isa! person;

Matching types of an instance

The isa keyword can be used to match all types of an instance.

#!test[read]
match $person isa $type;

The isa! keyword can be used to match the exact type of an instance.

#!test[read]
match $person isa! $type;