In order for information systems supporting two different organizations to interoperate, there must be an agreement as to what the words mean. There are many such agreements in place, supporting information systems interoperation in many different application areas. Most of these agreements have been created as part of diverse systems development processes, but since the advent of the Semantic Web in the late 1990s, they have been studied as a kind of software artifact in their own right, called an ontology, or description of a shared world. This book brings together developments from philosophy, artificial intelligence and information systems to formulate a collection of functional requirements for ontology development. Once the functional requirements are established, the book looks at several ontology representation languages: RDFS, OWL, Common Logic and Topic Maps, to show how these languages support the functional requirements, what deficiencies there are, and how the languages relate to each other. Besides a collection of running examples used throughout the book, the entire treatment is supported by an extended example of a hypothetical ontology for the Olympic Games presented first as a set of chapter-end exercises and then as a set of solutions which illustrate the various points made in the text in the context of a single coherent development.