Source: https://computationalcreativity.net/iccc2019/papers/iccc19-paper-4.pdf