Skip to content

Rel Modules


Our declarative modeling language Rel now supports modules!

A module groups together one or more declarations. For instance

module person
    def name = "Sherlock Holmes"
    module address
        def street = "221B Baker Street"
        def city = "London"
        def country = "UK"
    def telephone = "+44 202-456-1111"

This will display as below:

def output = person[:address][:street]

Relation: "221B Baker Street"

Modules can be imported into a lexical scope using the with construct, allowing the use of short names. The with construct can also be used to rename imported members.

with person use name, telephone as phone
with person:address use street
def output = name
def output = phone
def output = street


Modules are relations and computations can be performed over them like any other relation:

def person_without_phone(key, values...) =
        person(key, values...) and
        key != :telephone
def output = json_string[person_without_phone]


" { "address": { "city": "London", "country": "UK", "street": "221B Baker Street" }, "name": "Sherlock Holmes" }"

For a more detailed introduction to modules, see the documentation (opens in a new tab).

Get Started!

Start your journey with RelationalAI today! Sign up to receive our newsletter, invitations to exclusive events, and customer case studies.

The information you provide will be used in accordance with the terms of our Privacy Policy. By submitting this form, you consent to allow RelationalAI to store and process the personal information submitted above to provide you the content requested.