  In this paper we introduce the olog, or ontology log, a category-theoretic
model for knowledge representation (KR). Grounded in formal mathematics, ologs
can be rigorously formulated and cross-compared in ways that other KR models
(such as semantic networks) cannot. An olog is similar to a relational database
schema; in fact an olog can serve as a data repository if desired. Unlike
database schemas, which are generally difficult to create or modify, ologs are
designed to be user-friendly enough that authoring or reconfiguring an olog is
a matter of course rather than a difficult chore. It is hoped that learning to
author ologs is much simpler than learning a database definition language,
despite their similarity. We describe ologs carefully and illustrate with many
examples. As an application we show that any primitive recursive function can
be described by an olog. We also show that ologs can be aligned or connected
together into a larger network using functors. The various methods of
information flow and institutions can then be used to integrate local and
global world-views. We finish by providing several different avenues for future
research.
