TheoryObjectifier
An Objectifier of Theory instances: since a Theory is itself an Iterable<it.unibo.tuprolog.core.Clause>, it is objectified as a plain list holding the TermObjectifier-produced representation of each of its clauses, in iteration order. This is what lets a TheorySerializer render a whole knowledge base as JSON, YAML, or XML.
A TheoryDeobjectifier recognizes exactly this shape, so deobjectifier.deobjectify(objectifier.objectify(theory)) round-trips (up to variable renaming and numeric literal formatting, and up to any clause reordering/deduplication the underlying Theory implementation performs).
See also
for the inverse conversion.