Ontoprolog: a Prolog-based language for describing ontologies