A source ODL driven IMDL file: People.imdl
hide Person::cstate, Person::children, Address::street;
rename Person::name to Person::lastname;
rename Person::age to Person::how_old_is_he;
typedef sequence<Person> PersonList;
map readonly attribute PersonList same_age_persons from
oql("list(Person.age = this.age)");
map boolean is_he_rich() from expr("return salary() > 10000 ? 1 : 0");