- Delete Instances of an Entity Type
- Delete Instances of a Relationship Type
- Delete Associations with Attributes
Delete Instances of an Entity Type
To delete an instance of an entity type from the knowledge graph, we use a match clause followed by the
delete keyword and the variable to be deleted.
This deletes a particular instance of the
person type with the id of
Delete Instances of a Relationship Type
To delete an instance of a relationship type, similar to deleting an entity type, we first
match and then
This deletes all instances of the
employment type where the
employer is an
Delete Associations with Attributes
Attributes with the same value are shared among their owners. It’s important that one understands thoroughly how attributes are defined in a Grakn knowledge graph prior to performing
delete queries on them.
To delete only the association that a thing has with an attribute, we use the
via keyword to capture and delete the relationship between the owner and the owned attribute - NOT the instance of the attribute type itself, as doing so disowns the instance from any other instance that may have owned it.
This looks for a
travel that owns the attribute
start-date with the value of
2013-12-22, captures the association between the attribute and the owner as the variable
$r and finally deletes
$r. This ensures that the attribute instance of type
start-date and value
2013-12-22 remains associated with any other instance that may own it.
If we had instead written the query as
match $t isa travel, has start-date $st; $st == 2013-12-22"; delete $st;, we would have deleted the instance of
start-date with value
2013-12-22 and its association with all other concept types that previously owned it.
delete query preceded by a
match clause is used to delete one or more data instances from the knowledge graph.
Next, we learn how to update data in a Grakn knowledge graph.