Skip to content

Condition editor

A condition is a set of clauses that can be combined through logical tests (AND, OR, NOT), and gives a probability as a result.

CogTL works with probabilities, i.e. fuzzy logic, which means that entities have a certain probability, that can be below 100%. Therefore conditions must take this into account. That's the reason why condition editors are generally associated with a threshold that allows to define the limit above which the condition must be considered as true, or false.

For example, if a condition just tests if an entity has a specific data value, the result will be equal to the probability of this entity.

A condition is a decision tree. Leaves of the tree are tests (atomic, expressions or navigations), and nodes are logical operators (AND, OR, NOT).

Tests

Atomic tests

An atomic test is a very simple (and efficient) way of comparing one value with another. It consists of one left member, one right member and an operator.

Every member can be a constant, an entity data value (referring to a variable), or an expression.

The operator is either a mathematic operator, or a more specialized operator depending on the types of the left and right members (contains, contains ignoring case, matches, has bits...). The real operation that will be performed by CogTL depends on the type. Typically, contains will be a string operation when dealing with a left value of type STRING, but can also be an IP-related operation if comparing a IPv4_ADDRESS with an IPV4_SUBNET.

Expression

Any expression (refer to the documentation here) that results in a fuzzy boolean value.

A navigation query on the knowledge graph, starting from one variable in the current context. Refer to this help page for more information.