We take a computational ontology to be a directed acyclic graph where nodes represent concepts and the links between concepts represent the taxonomic “isa” relation (e.g. in the graph where ‘Wine → Red Wine → Brunello di Montalcino, everything that “is a” instance of Brunello di Montalcino “is a” instance of Red Wine, and everything that “is a” instance of Red Wine “is a” instance of Wine (we are less strict as to whether this subsumption relation must hold in all contexts of discourse—see Sect. 6.2). A knowledge base is an ontology that has been populated with individuals; mathematically, knowledge bases contain another kind of link denoting the “instance of” taxonomic relation, and a new kind of node denoting individuals (with the restriction that no individual can have any children). Thus we may populate our toy ontology with an individual, ‘Campogiovanni Brunello’, which is an instance of the concept Brunello di Montalcino. A computational ontology will also contain declarations for a number of non-taxonomic relations, which can either hold between individuals and constants (properties) or between two (or more) individuals (relations). Instances of these non-taxonomic relations may also be encoded in the process of ontology population. For example, a knowledge base might record the property ‘alcohol_content (Campo- giovanni Brunello, 7%)’ and the relation ‘pairs_with (Campogiovanni Brunello, Parmigiano Reggiano)’. Finally, a computational ontology may also contain a number of inference rules and axioms that can be used to reason about objects in the domain (e.g. infer the presence of certain relations on the basis of others, enforce consistency and default properties, and so forth).