# `@independent` annotation

The `@independent` annotation is used to prevent attributes without owners from being deleted automatically.

## [](#_syntax)Syntax

Syntax

```typeql
<type label> @independent;
```

The `@independent` annotation does not accept any arguments.

## [](#_usage)Usage

The `@independent` annotation enforces the `independent` constraint for an attribute type, allowing instances of the type to exist independently of their owner.

By default, attributes (instances of attribute types) depend on their owners:

*   Attributes cannot be inserted without a `has` clause.
    
*   Attributes are automatically deleted when their owners are deleted.
    

In contrast, attributes of independent types can exist without owners.

Independent attribute types definition

```typeql
#!test[schema, commit]
define
  attribute language @independent, value string;
```

Inserting independent attributes

```typeql
#!test[write]
insert
  $english isa language "English";
```

### [](#_subtyping)Subtyping

The `independent` constraint is inherited. This means that all subtypes of an independent type are also independent, and it cannot be changed.

[@cascade](../cascade/index.md) [@abstract](../abstract/index.md)

[Edit on GitHub](https://github.com/typedb/typedb-docs/edit/3.x-development/typeql-reference/modules/ROOT/pages/annotations/independent.adoc) Edit this page on GitHub.