What is GELLO Expression Language & its Types, Properties & Goals?

What is GELLO Expression Language & its Types, Properties & Goals?
Have you heard about the term GELLO? It is an object-oriented language that is built on different standards. It is an expression language based on Object Constraint Language (OCL) and is developed by the Object Management Group. It was started in 2001 and then introduced in 2002. In 2005, it was adopted as an international standard by HL7 International and ANSI for a support language. 

Different components of GELLO have been integrated into the GELLO to provide a framework for manipulation of data for decision support in healthcare. This language can be used to construct decision criteria by building expressions about data features. Additionally, it can be used to create expressions and formulae for other applications.  

The language has been designed in the context of a guideline execution model proposed in the HL7 CDSTC. It comprises a series of steps, including actions, decisions, patient-state, branches, and synchronization. This expression language is used for deriving different summary values and specifying decision criteria. It has the flexibility that is needed for the implementation in a range of applications. 

To facilitate the process of the evaluation of expressions and to maximize the sharability of expressions, it provides the basic built-in-data types and provides the mechanisms to access an underlying data model with the associated methods. 

Overview of GELLO

It is an expression language and is the result of an effort of the Decision Systems Group and works with the HL7 Clinical Decision Support Technical Committee (CDSTC). It can be used to build up queries and to manipulate data from medical records. It is based on the Object Constraint Language (OCL) and is the most expressive language in the context of GLIF. 

OCL expressions can refer to different classifiers and datatypes. A property of an object under OCL can be an attribute, a side-effect-free operation, or an association end. Standardization of GELLO has made this language easy going with the HL7 version 3.0 Reference Information Model (RIM).  

GELLO Goals & Properties

GELLO is an independent-standard query and manipulates knowledge in a medical context. Specifically, it is targeted to clinical applications that use queries and expression languages for decision support. It is a platform-independent in that the language can be implemented on different platforms. 

Furthermore, it is vendor-independent by depending on the language specification that is not vendor-specific. GELLO is a declarative language, and its expressions have no side effects. The object-oriented approach allows encapsulation and extensibility. 

Use Cases

The use cases define a goal-oriented set of interactions between external actors and GELLO. A use case is initiated by a user with some goal in mind. It is defined as actors interacting with the system for a particular purpose. 

User Profiles

Researchers are not familiar with computer languages. They have basic experience with computers and know word processing and different software packages. Knowledge engineers with programming experience and medical knowledge. Health Economists with skills in health economics and a little knowledge of computers. 


It is a strongly-typed language. This means that every expression used in the language must be a known type. It has two types of categories, i.e., pre-defined types and model types. Model types refer to the defined classes in the data model. Whereas, predefined types include collection type, enumeration type, and other basic types. Some basic primitive data types are integer, string, and boolean. 

A Boolean type is a three-valued type and can three possible values  - true, false, and unknown. Integers represent the mathematical natural numbers and are a subtype of real. Strings are the sequence of characters and are enclosed within a single bracket (quotes). A GELLO collection is an abstract type with collection types as subtypes. 

It has three types- bag, set, and sequence. A bag is a collection of elements. Also, all elements have the same type. A sequence is a collection having ordered elements. Also, all elements in a sequence should have the same type. 

Collection Type Hierarchy and Type Conformance Rules

1. Tuple Type 

It is a part of an OCL and combines elements with different types into an aggregate type. The type of tuple part can be a model or a basic type. The tuple is represented as Tuple {label1::value1, …, labeln: valuen}, where label i is the label of the element ith and value
'i' is a valid value.

2. Names

Names are referred to as declare entities in an expression. The entity is a local variable and a parameter in a method call. It consists of a single identifier or different identifiers separated by double-quotes. 

Final Words 

GELLO is a subset of OCL. But some features like context declaration, package context, enumeration types, an implicit reference to objects are not included in this. It was conceived as a pure and strongly typed language that contains expression sublanguage components. It provides the mechanism to access medical data through an OO data model. 
Covetus Get in Touch
Get free consultation right away via text message or call
Send Massage