Il existe plusieurs définitions de ce qu'est une ontologie.
Schulz en fait une abstraction d'un domaine d'intérêt utilisable par des programmes http://dl.acm.org/citation.cfm?id=1566094. Bard définit les ontologies de façon plus opérationnelle en indiquant qu'il s'agit d'une « façon formelle de représenter des connaissances en décrivant pour les concepts à la fois leurs sens et les relations qui les lient » http://www.nature.com/nrg/journal/v5/n3/full/nrg1295.html .
En pratique, les ontologies sont principalement constituées de classes (aussi appelées « concepts » ou « types »), de relations (aussi appelées propriétés) et éventuellement de règles de raisonnement. L'utilisation des classes pour décrire les données se fait par leur identifiant (par exemple « ATOL:0001259 » pour le poids). Cet identifiant est lui-même constitué d'un préfixe (ici ATOL) désignant l'ontologie et d'une partie unique au sein de l'ontologie (ici 0001259). Cela permet ainsi de combiner plusieurs ontologies pour décrire les données plus finement sans avoir de problème d'ambiguité.
Une ontologie est donc une description formelle des connaissances d'un domaine. Elle est caractérisée par la notion de généricité (le tibia est un os, le tibia fait partie de la jambe) à opposer à la dimension anecdotique des données (ce tibia mesure 32cm). Pour schématiser, on peut dire que l'ontologie représente ce qui est toujours vrai, alors que les données sont constituées de ce qui varie. Les données sont typiquement stockées dans des bases de données, et annotées par des ontologies afin de pouvoir être interprétées automatiquement.