You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
I
SNULL
This function checks whether a value is unknown
Syntax
ISNULL(expression)
- expression - Expression that is checked.
Return type
- boolean - TRUE of the attribute is unknown, FALSE otherwise
Examples
Suppose the following data model.
Person.name | Person.SequenceNumber |
---|---|
“Bob” | 654 |
“Jane” | ? |
- for Bob,
ISNULL ( Person.SequenceNumber )
= FALSE - for Jane,
ISNULL ( Person.SequenceNumber )
= TRUE
ISUNKNOWN
This function replaces a value if that value is unknown.
Syntax
ISUNKNOWN(expression, value)
- expression- Expression of which the value has to be returned if that value is known.
- value - Value to return if the attribute value is unknown.
Return type
- any type, equals the attribute type
Examples
Suppose the following data model.
Person.name | Person.SequenceNumber |
---|---|
“Bob” | 654 |
“Jane” | ? |
“Mary” | 667 |
“Rick” | ? |
“Ron” | ? |
“Jenny” | 765 |
- for Jane,
ISUNKNOWN ( Person.SequenceNumber , 999 )
= 999 - for Mary,
ISUNKNOWN ( Person.SequenceNumber , 999 )
= 667
IS A
Use this function to check the type of an instance. The function returns TRUE if the selected instance is of the specified entity.
Syntax
instance IS A entity_name
- instance - Instance to check.
- entity_name - Name of the entity as string.
Return type
- boolean
Examples
Suppose a domain model in which there is a singleton entity Residence
that has a multivalued relation hasRooms
with Room
. Room
is the base entity for singleton Kitchen
and not singletons Bedroom
and Bathroom
.
If you want to determine the number of bedrooms is the residence:
COUNT ( COLLECT Room FROM Residence.hasRooms WHERE ( Room IS A “Bedroom” ) )
If you want to determine the number of bathrooms is the residence:
COUNT ( COLLECT Room FROM Residence.hasRooms WHERE ( Room IS A “Bathroom” ) )
TYPE OF
Use this function to determine the type of an instance. The function returns the name of the entity.
Syntax
TYPE OF base_entity
- base_entity - Name of the instance's base entity.
Return type
- string
Examples
Suppose a domain model in which there is a singleton entity Residence
that has a multivalued relation hasRooms
with Room
. Room
is the base entity for singleton Kitchen
and not singletons Bedroom
and Bathroom
.
- for the
Kitchen
instance the expressionTYPE OF Room
= “Kitchen” - for the
Bedroom
instances the expressionTYPE OF Room = “Bedroom”
= TRUE
ISACTIVE
Use this function to determine if an instance of a specific type is currently active.
ISACTIVE instances [WHERE condition]
- instances - instances to search
- condition - optional condition to limit the collection of instances to check
Return type
boolean - TRUE if one of the instances is active, FALSE otherwise
Singletons are always active, so ISACTIVE <singleton> will always return TRUE
Examples
Suppose the following data model.
instance_id | Person.name | Person.Age |
---|---|---|
Person_1 | “Bob” | 14 |
Person_2 | “Jane” | 25 |
Person_3 | “Mary” | 30 |
- If no instance of Person is activated,
ISACTIVE Person
= FALSE - If
Person_1
is active,ISACTIVE Person
= TRUE - If
Person_1
is active,ISACTIVE Person WHERE Person.Age >= 18
= FALSE (sincePerson_1
is excluded by the condition) ISACTIVE system
= TRUE (system
contains the system attributes and is a singleton. Therefore it is always active)- If no instance of Person is activated, the following expression will fail because Person is not in scope:
Person.Name >= 18
ISACTIVE
function the expression can be evaluated without error:(ISACTIVE Person) AND Person.name >= 18
Note that expression above will be evaluated from left to right, so first (ISACTIVE Person) will be evaluated (= FALSE) and therefore the result of the AND will be FALSE as well. The right hand side of the expression (Person.Name >= 18) will not be evaluated, otherwise the expression would still fail.