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. These declarations must occur before formulas in the .mln file.
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.