Epilog: A Language for Extended Programming in Logic