Foundations of Description Logics
Making prolog more expressive