You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »


ISNULL

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.namePerson.SequenceNumber
“Bob”654
“Jane”?

 

  • for Bob, ISNULL ( Person.SequenceNumber ) = FALSE
  • for Jane, ISNULL ( Person.SequenceNumber ) = TRUE

Back to Top

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.namePerson.SequenceNumber
“Bob”654
“Jane”?
“Mary”667
“Rick”?
“Ron”?
“Jenny”765

 

  • for Jane, ISUNKNOWN ( Person.SequenceNumber , 999 ) = 999
  • for Mary, ISUNKNOWN ( Person.SequenceNumber , 999 ) = 667

Back to Top

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 expression TYPE OF Room = “Kitchen”
  • for the Bedroom instances the expression TYPE OF Room = “Bedroom” = TRUE

Back to Top

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_idPerson.namePerson.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 (since Person_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
    By using the 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,

Back to Top

 

 

  • No labels