Knowledge Engineering In First Order Logic