+The source of parent-child relations between ``Books`` is
+the ``dc:relation.hasPart`` metadata field, exposed by
+:py:class:`librarian.dcparser.BookInfo` as ``parts``. This relation
+and the order of children of one parent is expressed with the child
+book's ``parent`` and ``parent_number`` fields.
+
+Additionally, every ``Book`` has a many-to-many relationship `ancestor`,
+onnecting it to all its ancestors, with reverse relationship called
+`descendant`. This relationship is rebuilt after a `Book` is published.