Sets rule's description.
Sets rule's name. Name set via the attribute overrides the default name, which is the fully qualified class name.
Sets rule's priority. If multiple rules get activated at the same time, rules with higher priority get executed first. Priority value can be positive, negative or zero. Default priority is zero.
Expression builder for queries.
Sets rule's repeatability, that is, how it behaves when it is activated with the same set of facts multiple times, which is important for recursion control. By default rules are Repeatable, which means a rule will fire every time it is activated with the same set of facts. If repeatability is set to NonRepeatable then the rule will not fire with the same combination of facts, unless that combination was previously deactivated (i.e. through retraction).
Base class for inline rule definitions. To create a rule using internal DSL, create a class that inherits from NRules.Fluent.Dsl.Rule and override Define method. Use When and Then methods to define rule's conditions and actions correspondingly. A rule can also be decorated with attributes to add relevant metadata: NameAttribute, DescriptionAttribute, TagAttribute, PriorityAttribute, RepeatabilityAttribute.
Adds a tag to rule's metadata. A rule class can have multiple tag attributes, and also inherits tag attributes from its parent classes. Tags can be used to filter rules when loading them through fluent load specification.
Rule's dependencies expression builder.
Rule's filters expression builder.
Rule's left hand side (conditions) expression builder.
Root of the query method chain.
Intermediate query chain element.
Internal builder for queries.
Rule's right hand side (actions) expression builder.