A logic program is composed of one or more modules.
A module is composed of one or more predicates.
A predicate is composed of one or more clauses.
A clause is constructed from terms.
A term can be a primitive, structure or list.