https://sheremetov.com/programming/prolog/