In IQL, the value associated with an object identifier can be accessed by using the object identifier dereferencing operator ^.
IQL directly supports relations in addition to classes.
In IQL, object identifiers are system-created, as in object-oriented programming languages.
Object identity in IQL can be used not only for object sharing and update management, but also for set grouping as data function of COL.
6 The following rules show how to derive the relation ancestorsof from the relation parentsof using object identifiers as grouping in IQL.
At an intuitive level, oids are "typed pointers" and IQL is based on a controlled use of indirection.
The operational part of the data model, the language IQL, is also surprisingly simple both in syntax and semantics.
As a consequence, the typing of IQL is similar with that of query languages in Kuper and Vardi , Abiteboul and Beeri , and Abiteboul and Grumbach  and corresponds to strong typing in programming languages.
The design of IQL was greatly influenced by both the COL language of Abiteboul and Grumbach , for the manipulation of sets, and the detDL language of Abiteboul and Vianu , for the invention of new oids.
In summary, IQL is inflationary Datalog with negation [Abiteboul and Vianu 1988; Kolaitis and Papadimitriou 1988] combined with set/tuple types, invention of new oids, and a weak form of assignment.