We give a brief outline of first order predicate logic, set theory and properties of mappings. These theories are then used to expose the foundations of formal semantics for the description language of a given domain. It is described as a juxtaposition of two languages, the object language used to describe the objects of the domain and the property language that is used to describe the properties of these objects.
Both of the languages are based on the syntax of first order predicate logic. We then consider the description of a domain in terms of a hierarchical classification in this framework. We define the notions of ontology and taxonomy, explain how they are related and how a taxonomy imposes a syntactic structure on the object language that mimics a semantic and endows the language with reasoning power.