...
Code Block |
---|
ruleset hello_world {
meta {
name "Hello World"
description <<
A first ruleset for the Quickstart
>>
author "Phil Windley"
logging on
shares hello
}
global {
hello = function(obj) {
msg = "Hello " + obj;
msg
}
}
rule hello_world {
select when echo hello
send_directive("say", {"something": "Hello World"})
}
} |
...
Line 1: A ruleset starts with the ruleset
keyword, followed by the ruleset identifier or RID. In this case, the RID is hello_world
. The body of a ruleset is contained within the curly brackets opening at line 1 and closing at line 24. By convention, this ruleset will be stored in a file named hello_world.krl
(the RID followed by a .krl
file extension).
Lines 2-109: A ruleset usually contains a meta
block giving information about the ruleset. This information includes data like the ruleset name
and author
, as well as pragmas that affect the ruleset's behavior. For example, this ruleset has a shares
pragma saying which global functions are shared with the outside world.
Lines 1211-1716: A ruleset usually contains a global
block which globally binds values to names, some of which may be shared. In this case, the name hello
is bound to a function value and is shared.
Lines 1918-2221: A ruleset usually contains one or more rules. In this case there is one rule named hello_world
which will be watching for events with domain echo
and name, or type, hello
.
...