Types and constants are also declared in .mln files. For example, in univ-train.mln we declare the types person, title, etc., and their associated constants.
Ground atoms are defined in .db (database) files. Ground atoms preceded by ! (e.g., !professor(Bart)) are false, by ? are unknown, and by neither are true. If the closed-world assumption is made for a predicate, its ground atoms that are not defined in a .db file are false, while if the open world assumption is made, its undefined ground atoms are unknown. In univ-train.db, we specified all the true ground atoms of the predicates professor, student, etc. Function mappings are defined in the .db file, as well.
Linked-in functions and predicates are defined in a separate C++ file. An example file, functions.cpp is supplied. There are certain guidelines which must be followed when defining linked-in functions. This is discussed in Section 5.