Source: Oracle ( Gary Hallmark)
In the semantic domain, we use boldface '=' to mean identity. But in FEEL syntax, italic '=' is specified in 188.8.131.52, primarily in table entries for grammar rule 51.a.
(side comment: all the tables in 184.108.40.206 need table numbers.)
Also confusingly, the semantic mapping table entry for 51.a where FEEL Syntax is 'e1 < e2' also applies to 'e1 = e2'. This must be clarified.
To avoid doubt about whether '=' means equals or identical, we should write identical(a,b) (or 'a is b') instead of a=b when inquiring whether or not 2 elements of the semantic domain are identical. For example,
identical("1", 1) is false
"1" = 1 is null
We should clarify the existing rules that imply that
1/0 = null is true
1/0 = 1/0 is null
1/0 != 1/0 is null
1/0 != null is false
1/0 in (0, null) is true
By symmetry, we should also have
null = 1/0 is true
null != 1/0 is false
The semantic rules don't explicitly cover the symmetry.
Semantics of if/then/else must be clarified as 'if identical(test, true) then ... else ...' A true test result will return the interpreted then part. A false or null (or anything other than true) test result will return the interpreted else part. Similarly, a list filter retains list items where the test is true and omits items where the test evaluates to anything other than true.
Reported: DMN 1.0b1 — Thu, 2 Jan 2014 23:42 GMT
Disposition: Resolved — DMN 1.0
Revise FEEL semantics in clause 10.3 as indicated.
Updated: Tue, 21 Apr 2015 01:19 GMT