510 likes | 709 Views
IFF Category Theory Ontology. IJCAI 2001 Workshop on the IEEE Standard Upper Ontology. http://suo.ieee.org/Kent-IFF.pdf. Sections. Introduction (6 slides) The Core Namespace (6 slides) The Category Theory Ontology (11 slides) Examples – some with logical code (16 slides)
E N D
IFF Category Theory Ontology IJCAI 2001 Workshop on the IEEE Standard Upper Ontology http://suo.ieee.org/Kent-IFF.pdf
Sections • Introduction (6 slides) • The Core Namespace (6 slides) • The Category Theory Ontology (11 slides) • Examples – some with logical code (16 slides) • Summary & Future Work ~ IFF Category Theory Ontology ~
Table of Contents: Introduction • Origins and Influences • Possible outcomes of the SUO Effort • The Truth Classification & Truth Concept Lattice • Components of Logic • Architecture • The Category Theory Principle ~ IFF Category Theory Ontology ~
Category Theory: the study of structures and structure morphisms; starts with the observation that many properties of mathematical systems can be unified and simplified by a presentation with diagrams of arrows. Information Flow: the logic of distributed systems; a mathematically rigorous, philosophically sound foundation for a science of information. Formal Concept Analysis: advocates methods and instruments of conceptual knowledge processing that support people in their rational thinking, judgments and actions. IFF Foundation Ontology Origins and Influences ~ IFF Category Theory Ontology ~
Hayes A single, usable, well-designed, universal upper ontology is created … . A ‘standard’ upper ontology is created which is a shambles … . The whole enterprise is eventually abandoned … . Sowa A framework is created which can support an open-ended number of theories (potentially infinite) organized in a lattice together with systematic metalevel techniques for moving from one to another, for testing their adequacy for any given problem, and for mixing, matching, combining, and transforming them to whatever form is appropriate for whatever problem anyone is trying to solve. Kent (the IFF Foundation Ontology) A framework is created for the truth concept lattice of a first-order language L generated from the truth classification of the language. Replace of the theories of outcome 4 with the concepts in the truth concept lattice. Suitable set-theoretic foundational concerns are covered in the IFF Category Theory Ontology (discussed here), a subontology of the IFF Foundation Ontology. Proposal: Use the IFF Foundation Ontology as a structuring methodology for the SUO metalevel. This will provide a principled approach to John Sowa’s framework. Possible outcomes of the SUO Effort ~ IFF Category Theory Ontology ~
⊤= all structures, true sentences c = extent(c), intent(c) 1st-order sentence ⊥ = no structures, all sentences 1st-order structure The Truth Classification & Truth Concept Lattice • Truth classification of 1st-order language L • Instances are L-structures. • Types are L-sentences. • Incidence is satisfaction: M ⊨L when is true in M. • Truth concept lattice of L • In the IFF approach, this is the appropriate “lattice of ontological theories.” • Formal concept is a pair c = extent, intent(c) where: • The intent(c) is a closed theory (set of sentences). • The extent(c) is the collection of all models for that theory. • Lattice order is the opposite of theory inclusion. • The join or supremum of two theories is the intersection of the theories. • The meet or infimum of two theories is the theory of the common models. • Both L-structures and L-sentences generate formal truth concepts (theories). • An object concept is the theory of a model. • An attribute concept is the models of a sentence. ~ IFF Category Theory Ontology ~
Components of Logic ~ IFF Category Theory Ontology ~
IFF Foundation Ontology IFF Category Theory (sub)Ontology core namespace upper metalevel IFF Model Theory (sub)Ontology lower ֻ object level ֻ ֻ Domain Ontology Middle Ontologyn Upper Ontology Upper Ontology Middle Ontology Domain Ontologyp Middle Ontology Domain Ontology Upper Ontologym Architecture • Lower metalevel • Declare, define, axiomatize and reason about categories, functors, natural transformations, adjunctions, colimits, monads, etc. • Categories include Set, Classification, IF-Logic, Top, Rel, Gph, Lang, etc. • Functors include inst, typ, inst-pow, typ-pow, etc. • Object level • Declare, define, populate and reason about objects and morphisms. • Objects may be sets, partial orders, topological spaces, classifications, hypergraphs, languages, models, etc. • Morphisms may be functions, continuous maps, infomorphisms, 1st-order interpretations, model morphisms, etc. ~ IFF Category Theory Ontology ~
The Lower Metalevel • The lower metalevel makes heavy use of the upper metalevel for both representation and reasoning. • The following module will be placed on the lower metalevel in a later version of the IFF Foundation Ontology (version 2.0 or 3.0): • IF Model Theory Ontology • Other possible modules on the lower metalevel include the following: • Module for categorical model theory • Modules for modal, tense and linear logic • Modules for rough and fuzzy sets • Module for semiotics • etcetera ~ IFF Category Theory Ontology ~
The Categorical Design Principle • Principle: A central goal in modeling the lower metalevel is to abide by the following categorical property. • [strictly category-theoretic] all axioms are expressed in terms of category-theoretic notions, such as the composition and identity of large/small functions or the pullback of diagrams of large/small functions. • [no KIF] no axioms use explicit KIF connectives or quantification. • [no basic KIF ontology] no axioms use terms from the basic KIF ontology, other than pair bracketing '[-]' or pair projection '(- 1)', '(- 2)'. • This principle is an ideal that has proven very useful in the design of the IF Model Theory Ontology. All modules that satisfy this property should (i) be easier to design and (ii) provide the basis for simpler proof techniques. • This design principle would seem to extend to all ontologies for true categories (not quasi-categories) – those categories whose object and morphism collections are classes (not conglomerates). All ontologies that reside at the lower metalevel will be centered on true categories. ~ IFF Category Theory Ontology ~
Table of Contents: The Core Namespace • Collection Hierarchy • Kinds of Specific Collections • Core Conglomerates and Functions • Principal Terms at the Core • Sub-namespaces in the Core Namespace • Terms introduced in the Core Namespace ~ IFF Category Theory Ontology ~
Conglomerate Class large classes Individual atomic things, a.k.a. ur elements Set small classes Collection Hierarchy ~ IFF Category Theory Ontology ~
Kinds of Specific Collections • Conglomerates • The collections of classes, functions, opspans and binary cones • The collections of large categories and functors between large categories • The collections of natural transformations and adjunctions • Classes • The object and morphism collections in any large category • The collections of algebras and homomorphisms of a monad (e.g. groups) • The collections of diagrams and cocones for finite colimits in a category • Sets • Sets as collections and the extent of their functions • The instance and type sets of classifications and the instance and type functions of infomorphisms ~ IFF Category Theory Ontology ~
Natural Transformation unit component counit Adjunction source target left underlying morphism Graph Morphism right Functor Function inclusion object Graph 2-cell source source target source target source target target eta mu morphism Category Class Graph underlying object Core Conglomerates and Functions ~ IFF Category Theory Ontology ~
CNG conglomerate (possibly n-ary) function (binary) relation SET class (binary) function source target (binary) relation set (small) set (binary) function source target (binary) relation subcollection subclass (function) restriction f X Y Č ↪ C f F D ↪ Ď Principal Terms at the Core ~ IFF Category Theory Ontology ~
Sub-namespaces in the Core Namespace • The Core Namespace – (SET) • Classes • Functions – (SET.FTN) • Finite Completeness – (SET.LIM) • The Terminal Class • Binary Products – (SET.LIM.PRD) • Equalizers – (SET.LIM.EQU) • Subequalizers – (SET.LIM.SEQU) • Pullbacks – (SET.LIM.PBK) • Topos Structure – (SET.TOP) ~ IFF Category Theory Ontology ~
Currently there are 11 terms in the conglomerate namespace and about 130 terms in the core namespace. About 100 of these 130 terms are for finite limits, especially pullbacks. Eventually the core namespace will grow to contain several hundred terms. Terms introduced in the Core Namespace ~ IFF Category Theory Ontology ~
Table of Contents: Category Theory Ontology • Category Theory • Sub-namespaces in the Category Theory Ontology • Terms introduced in the Category Theory Ontology • Formal definition of a category C • KIF Formalism for Category • KIF Formalism for Graph Multiplication • Formal definition of a functor F • Monad Theory • Formal Definition of a Monad M • Formal Definition of an M-algebra • Limits/Colimits ~ IFF Category Theory Ontology ~
Category Theory • Started in 1945 with Eilenberg & Mac Lane’s paper entitled "General Theory of Natural Equivalences." • It is a general mathematical theory of structures and systems of structures. • Reveals how structures of different kinds are related to one another (morphisms), as well as the universal components of a family of structures of a given kind (limits/colimits). • It is considered by many as being an alternative to set theory as a foundation for mathematics. ~ IFF Category Theory Ontology ~
The Namespace of Graphs – (GPH) Graphs Graph Morphisms – (GPH.MOR) The Namespace of Categories – (CAT) The Namespace of Functors – (FUNC) The Namespace of Natural Transformations – (NAT) The Namespace of Adjunctions – (ADJ) The Namespace of Monads – (MND) Monads and Monad Morphisms Algebras and Freeness – (MND.ALG) The Namespace of Colimits – (COL) Initial Objects Binary Coproducts – (COL.PRD) Coequalizers – (COL.COEQU) Pushouts – (COL.PSH) The Namespace of Kan Extensions – (KAN) The Namespace of Classifications – (CLS) IF Theories – (CLS.TH) IF Logics – (CLS.LOG) The Namespace of Concept Lattices – (LAT) The Namespace of Topoi – (TOP) Sub-namespaces in the Category Theory Ontology ~ IFF Category Theory Ontology ~
Currently there about 170 terms in the category theory subontology. When the base-line terminology is complete, there may be 250+ terms. Eventually it will grow to contain thousands of terms. Terms introduced in the Category Theory Ontology ~ IFF Category Theory Ontology ~
src(C) mor(C) obj(C) tgt(C) idC(a) f a a a b f•Cg f c Formal definition of a category C • C is a graph. • There are two classes: the objects obj(C) and the morphisms mor(C). • Any morphism fmor(C) has a source and target object f : a b. • C has monoidal structure. • For any composable pair of morphisms f : a b and g : a b, there is a composition morphism (f•Cg) : a c. • For every object a obj(C), there is a morphism idC(a) : a a called the identity on a. • Associativity and identity laws hold. • If f : a b, g : b c and h : c d, then f•C (g•Ch) = (f•Cg) •Ch. • If f : a b, then (idC(a) •Cf) = f and (f•CidC(b)) = f. ~ IFF Category Theory Ontology ~
KIF Formalism for Category (1) (CNG$conglomerate category) (2) (CNG$function underlying) (CNG$signature underlying category GPH$graph) (3) (CNG$function mu) (CNG$signature mu category GPH.MOR$2-cell) (forall (?c (category ?c)) (and (= (GPH.MOR$source (mu ?c)) (GPH$multiplication (underlying ?c) (underlying ?c))) (= (GPH.MOR$target (mu ?c)) (underlying ?c)))) (4) (CNG$function composition) (CNG$signature composition category SET.FTN$function) (forall (?c (category ?c)) (= (composition ?c) (GPH.MOR$morphism (mu ?c)))) (5) (CNG$function eta) (CNG$signature eta category GPH.MOR$2-cell) (forall (?c (category ?c)) (and (= (GPH.MOR$source (eta ?c)) (GPH$unit (GPH$object (underlying ?c)))) (= (GPH.MOR$target (eta ?c)) (underlying ?c)))) (6) (CNG$function identity) (CNG$signature identity category SET$function) (forall (?c (category ?c)) (= (identity ?c) (GPH.MOR$morphism (eta ?c)))) ~ IFF Category Theory Ontology ~
mor(G) objmor(G) 1st 2nd mor(G) mor(G) src(G) tgt(G) src(G) tgt(G) obj obj obj KIF Formalism for Graph Multiplication (1) (CNG$function multiplication-opspan) (CNG$signature multiplication-opspan graph graph SET.LIM.PBK$opspan) (forall (?g0 (graph ?g0) ?g1 (graph ?g1)) (<=> (exists (?s (SET.LIM.PBK$opspan ?s)) (= (multiplication-opspan ?g0 ?g1) ?s)) (= (object ?g0) (object ?g1)))) (forall (?g0 (graph ?g0) ?g1 (graph ?g1)) (=> (= (object ?g0) (object ?g1)) (and (= (SET.LIM.PBK$opvertex (multiplication-opspan ?g0 ?g1)) (object ?g0)) (= (SET.LIM.PBK$opfirst (multiplication-opspan ?g0 ?g1)) (target ?g0)) (= (SET.LIM.PBK$opsecond (multiplication-opspan ?g0 ?g1)) (source ?g1))))) (2) (CNG$function multiplication) (CNG$signature multiplication graph graph graph) (forall (?g0 (graph ?g0) ?g1 (graph ?g1)) (<=> (exists (?g (graph ?g)) (= (multiplication ?g0 ?g1) ?g)) (= (object ?g0) (object ?g1)))) (forall (?g0 (graph ?g0) ?g1 (graph ?g1)) (=> (= (object ?g0) (object ?g1)) (and (= (object (multiplication ?g0 ?g1)) (object ?g0)) (= (morphism (multiplication ?g0 ?g1)) (SET.LIM.PBK$pullback (multiplication-opspan ?g0 ?g1))) (= (source (multiplication ?g0 ?g1)) (SET$composition (SET.LIM.PBK$projection1 (multiplication-opspan ?g0 ?g1)) (source ?g0))) (= (target (multiplication ?g0 ?g1)) (SET$composition (SET.LIM.PBK$projection2 (multiplication-opspan ?g0 ?g1)) (target ?g1)))))) ~ IFF Category Theory Ontology ~
IdA F A A A B F◦G G C Formal definition of a functor F • F is a graph morphism. • There is a source and a target category: src(F) = A and tgt(F) = B, F : AB. • There are two functions: the object function obj(F) : obj(A) obj(B) and the morphism function mor(F) : mor(A) mor(B). • These are compatible w.r.t. source/target: for any A-morphism f : a b, src(B)(mor(F)(f)) = obj(F)(src(A)(f)) and tgt(B)(mor(F)(f)) = obj(F)(tgt(A)(f)). • F preserves monoidal structure. • For any composable pair of A-morphisms f : a b and g : a b, the images are composable and mor(F)(f•Ag) = mor(F)(f) •B mor(F)(g). • For every object a obj(C), there is a morphism idC(a) : a a called the identity on a. • Associativity and identity laws hold for functor composition. • If F : A B, G : B C and H : C D, then F◦ (G◦H) = (F◦G) ◦H. • If F : A B, then IdA◦F = F and F◦IdB = F. ~ IFF Category Theory Ontology ~
Monad Theory • Relates universal algebra with adjunctions • For each type of algebra or equational presentation τ = with • category Algτ of τ-algebras and τ-homomorphisms. • underlying functor Uτ : AlgτSet • free functor Fτ : SetAlgτ • adjunction Fτ⊣Uτ • with “insertion of variables” natural transformation ητ: IdSetFτ · Uτ • with “evaluation” natural transformation ετ: Uτ · FτIdAlgτ there is a monad Tτ ητ μτ over the category Set, where • Tτ = Fτ ◦ Uτ : SetSet “equationally equivalent terms” • μτ = F ◦ ε ◦U multiplication (substitution) of terms into terms. ~ IFF Category Theory Ontology ~
M = Tημ underlying endofunctor T : AA natural transformation η : IdAT natural transformation μ : T ◦ TT IdT◦ μ T T μ ◦ IdT μ T T μ η ◦ IdT IdT◦ η T = IdA ◦ T T T ◦ IdA = T μ IdT IdT T Formal Definition of a Monad M ~ IFF Category Theory Ontology ~
Assume M = Tημ is a monad over categoryA. An M-algebra a ξ consists of an underlying object aobj(A), a structure map ξ : Taa that satisfies the associative and unit laws. An M-homomorphism h : a ξa ξ consists of an A-morphism h : a a that preserves structure. unit law Tξ Ta Ta μa ξ Ta a ξ Ta ηa associative law ξ a ξ Ta a a ida Th h Ta a ξ structure preservation Formal Definition of an M-algebra ~ IFF Category Theory Ontology ~
Limits Notions of producting, and-ing and matching A large part of the core namespace (100 of the 130 terms) Finite kinds Terminal object (unit class in core) Binary product Equalizer Subequalizer Pullback (core pullback is heavily used in Category Theory Ontology) Colimits Notions of summing, or-ing, and fusion. No terms in the core namespace Axiomatized in the colimit namespace of the Category Theory Ontology Finite kinds Initial object Binary coproduct Coequalizer Pushout AA ABA E A f f A A A A B f f B Limits/Colimits ~ IFF Category Theory Ontology ~
Table of Contents: Examples • Categories • The ordinal category ord3 • The category Set • The category Classification • Monads and Algebras • The instance and instance power functors • The inst ⊣ pow adjunction • Data Structures as Initial Algebras (stacks) • Data Structures as Initial Algebras (s-expressions & binary trees) • Data Structures as Initial Algebras (trees-forests) • Object level logical code [Domain Ontology – ieee namespace] • Lower metalevel logical code [Model Theory (sub)Ontology – classification namespace] • Upper metalevel logical code [core namespace & Category Theory (sub)Ontology – graph & category namespace] • Use of SET finite limits by namespaces in the Category Theory (sub)Ontology: pullback • Use of SET finite limits by namespaces in the Category Theory (sub)Ontology: equalizer • Use of SET finite limits by namespaces in the Category Theory (sub)Ontology: subequalizer ~ IFF Category Theory Ontology ~
Categories • Almost every known example of a mathematical structure with the appropriate structure preserving map yields a category. • Sets with functions between them. • Groups with group homomorphisms. • Topological spaces with continuous maps. • Vector spaces and linear transformations. • Any class itself is a category with only identity morphisms. • Any monoid is a one-object category with elements being morphisms. • Any preordered class is a category with morphisms being pair orderings. • Classifications and infomorphisms (or bonds, or bonding pairs). • Hypergraphs and their morphisms. • Models and their morphisms. • Concept lattices and concept lattice morphisms. • Complete lattices and adjoint morphisms (or complete homomorphisms). ~ IFF Category Theory Ontology ~
Obj(ord3) = {0, 1, 2}; Mor(ord3) = {00, 11, 22, 01, 12, 02}; one nontrivial composition 01 • 12 = 02. The code on the right defines the category ord3 by populating it using terminology from the Category Theory Ontology. 1 2 0 The ordinal category ord3 ((SET.TOP$element SET.TOP$natural-numbers) ord3$0) ((SET.TOP$element SET.TOP$natural-numbers) ord3$1) ((SET.TOP$element SET.TOP$natural-numbers) ord3$2) (= ord3$0 SET.TOP$zero) (= ord3$1 (SET.FTN$composition ord3$0 SET.TOP$successor)) (= ord3$2 (SET.FTN$composition ord3$1 SET.TOP$successor)) (CAT$category ord3)((CAT$object ord3) ord3$0) ((CAT$object ord3) ord3$1) ((CAT$object ord3) ord3$2) ((CAT$morphism ord3) ord3$00) ((CAT$morphism ord3) ord3$11) ((CAT$morphism ord3) ord3$22) ((CAT$morphism ord3) ord3$01) ((CAT$morphism ord3) ord3$12) ((CAT$morphism ord3) ord3$02) (= ((CAT$source ord3) ord3$01) ord3$0) (= ((CAT$target ord3) ord3$01) ord3$1) (= ((CAT$source ord3) ord3$12) ord3$1) (= ((CAT$target ord3) ord3$12) ord3$2) (= ((CAT$source ord3) ord3$02) ord3$0) (= ((CAT$target ord3) ord3$02) ord3$2) (= ((CAT$identity ord3) ord3$0) ord3$00) (= ((CAT$identity ord3) ord3$1) ord3$11) (= ((CAT$identity ord3) ord3$2) ord3$22) (= ((CAT$composition ord3) ord3$01 ord3$12) ord3$02) ~ IFF Category Theory Ontology ~
Objects in Obj(Set) are (small) sets. Morphisms in Mor(Set) are (unary) functions between (small) sets. The code below makes the following assertion using terminology from both the Category Theory Ontology and the (Small) Set Ontology in an external namespace “There is a KIF axiomatization for the Set category in the ‘set’ namespace.” Some theorem-proving is involved here. The category Set (CAT$category set)(= (CAT$underlying set) set.ftn$set-graph) (= (CAT$object set) set$set) (= (CAT$morphism set) set.ftn$function) (= (CAT$source set) set.ftn$source) (= (CAT$target set) set.ftn$target) (= (CAT$composable set) set.ftn$composable) (= (CAT$composition set) set.ftn$composition) (= (CAT$identity set) set.ftn$identity) ~ IFF Category Theory Ontology ~
Objects in Obj(Classification) are classifications. Morphisms in Mor(Classification) are infomorphisms. The code below (front diagram) makes the following assertion using terminology from both the Category Theory Ontology and the (Small) Classification Ontology in an external namespace “There is a KIF axiomatization for the Classification category in the ‘if.cls’ namespace.” Some theorem-proving is involved here. IFF Category Theory (sub)Ontology core namespace IFF Model Theory (sub)Ontology (SET$class classification) (= classification rel$relation) (SET.FTN$function instance) (= (SET.FTN$source instance) classification) (= (SET.FTN$target instance) set$set) (= instance rel$object1) (SET.FTN$function type) (= (SET.FTN$source type) classification) (= (SET.FTN$target type) set$set) (= type rel$object2) (SET.FTN$function incidence) (= (SET.FTN$source incidence) classification) (= (SET.FTN$target incidence) set$relation) (= incidence rel$extent) (CAT$category classification)(= (CAT$underlying classification) if.cls.info$classification-graph) (= (CAT$object classification) if.cls$classification) (= (CAT$morphism classification) if.cls.info$infomorphism) (= (CAT$source classification) if.cls.info$source) (= (CAT$target classification) if.cls.info$target) (= (CAT$composable classification) if.cls.info$composable) (= (CAT$composition classification) if.cls.info$composition) (= (CAT$identity classification) if.cls.info$identity) The category Classification ~ IFF Category Theory Ontology ~
IFF Model Theory (sub)Ontology Int-Vb Tr-Vb Noun Adj bet eat fit Domain Ontology friend square … … The Webster Classification (if.cls$Classification Webster)((if.cls$type Webster) Noun)((if.cls$type Webster) Intransitive-Verb)((if.cls$type Webster) Transitive-Verb)((if.cls$type Webster) Adjective) ((if.cls$instance Webster) bet)((if.cls$instance Webster) eat)((if.cls$instance Webster) fit)((if.cls$instance Webster) friend)((if.cls$instance Webster) square)...((if.cls$incidence Webster) [bet Noun])((if.cls$incidence Webster) [bet Intransitive-Verb])((if.cls$incidence Webster) [bet Transitive-Verb])(not ((if.cls$incidence Webster) [bet Adjective]))(not ((if.cls$incidence Webster) [eat Noun]))((if.cls$incidence Webster) [eat Intransitive-Verb])((if.cls$incidence Webster) [eat Transitive-Verb])(not ((if.cls$incidence Webster) [fit Adjective]))((if.cls$incidence Webster) [fit Noun])((if.cls$incidence Webster) [fit Intransitive-Verb])((if.cls$incidence Webster) [fit Transitive-Verb])((if.cls$incidence Webster) [fit Adjective])((if.cls$incidence Webster) [friend Noun])(not ((if.cls$incidence Webster) [friend Intransitive-Verb]))((if.cls$incidence Webster) [friend Transitive-Verb])(not ((if.cls$incidence Webster) [friend Adjective]))((if.cls$incidence Webster) [square Noun])(not ((if.cls$incidence Webster) [square Intransitive-Verb]))((if.cls$incidence Webster) [square Transitive-Verb])((if.cls$incidence Webster) [square Adjective])... • This is the Webster classification on page 70 of the text Information Flow: The Logic of Distributed Systems by Barwise and Seligman. • This classification is (a small part of) the classification of English words according to parts of speech as given in Webster’s dictionary. ~ IFF Category Theory Ontology ~
Monads and Algebras • Universal Algebra: Each type (equational presentation) τ = Einduces a monad Mτ = Tτητμτ over Set with E-algebras equivalent to Mτ-algebras. • Closure: If the underlying category is a preorder, then a monad is a closure operator and an algebra is a closed element. • Monoid action: Any monoid M e ◦ defines a monad on Set • TM(A) = AM • ηM: AAM : a ↦ (a, e) • μM: AMMAM : (a, m, m) ↦ (a, m ◦ m) and an algebra A δ: AMA is called an M-action (A-automaton) • δ(a, m ◦ m) = δ(δ(a, m), m) • δ(a, e) = a • Module: Any ring R defines a monad on Ab (abelian groups) • TR(A) = AR • ηA: AAR : a ↦ (a, 1) • μA: ARRAR : (a, r, r) ↦ (a, r ◦ r) and an algebra is a right R-module ~ IFF Category Theory Ontology ~
The instance functor inst Classification Setop forgets type information. The power functor pow Setop Classification adds subsets and inverse image. The code below makes the following assertion using terminology from both the Category Theory Ontology and the (Small) Classification Ontology in an external namespace: “There is a KIF axiomatization for the instance and instance-power functors in the ‘if.cls’ namespace.” Some theorem-proving is involved here. The instance and instance power functors (FUNC$functor instance) (= (FUNC$source instance) classification) (= (FUNC$target instance) (CAT$opposite set)) (= (FUNC$underlying instance) if.cls.info$instance-graph-morphism) (= (FUNC$object instance) if.cls$instance) (= (FUNC$morphism instance) if.cls.info$instance) (FUNC$functor instance-power) (= (FUNC$source instance-power) (CAT$opposite set)) (= (FUNC$target instance-power) classification) (= (FUNC$underlying instance-power) if.cls.info$instance-power-graph-morphism) (= (FUNC$object instance-power) if.cls$instance-power) (= (FUNC$morphism instance-power) if.cls.info$instance-power) ~ IFF Category Theory Ontology ~
There is a natural transformation : IdClassificationinst • pow whose component at any classification is the extent infomorphism associated with that classification. The code below makes the following assertion in an external namespace using terminology from both the Category Theory Ontology and the (Small) Classification Ontology : “Appropriate code in the ‘if.cls’ namespace represents the fact that the underlying instance functor is left adjoint to the instance power functor with being the unit of this adjunction and the counit being the identity.” The inst⊣pow adjunction (NAT$natural-transformation eta) (= (NAT$source eta) (FUNC$identity Classification)) (= (NAT$target eta) (FUNC$composition [instance instance-power])) (= (NAT$component eta) if.cls$extent) (FUNC$composable [instance instance-power]) (= (FUNC$composition [instance-power instance]) (FUNC$identity set)) (ADJ$adjunction inst-pow) (= (ADJ$underlying-category inst-pow) Classification) (= (ADJ$free-category inst-pow) Set) (= (ADJ$left-adjoint inst-pow) instance) (= (ADJ$right-adjoint inst-pow) instance-power) (= (ADJ$unit inst-pow) eta) (= (ADJ$counit inst-pow) (NAT$identity (FUNC$identity Set))) ~ IFF Category Theory Ontology ~
1 + Stack(A)A Stack(A) id1+idA@ @ 1 + QA Q unique F-homomorphism Data Structures as Initial Algebras (stacks) • Stacks over atoms A • Solution to recursive equation X 1 + XA • Endofunctor F : Set Set : Q ↦1 + QA • F-algebras are A-automata Q : QA Q • Stack(A) is the initial F-algebra over A with unfolding to ‘empty-stack’ and ‘push’. Also, : 1 + Stack(A)A Stack(A) is an isomorphism (bijection), with inverse being (‘is-empty’, ‘pop-top’). • Initial algebraStack(A) defined via the -colimit of the following iteration diagram in Set: F … Fn … F = 1 + A = 1 F2 = FF = F1 = 1 + 1A = A2 F3 = FF2 = 1 + 1+1AA = 1 + 1A + 1AA = A3 … • Unique homomorphism to Q is the run map for the automaton @ : Stack(A) Q ~ IFF Category Theory Ontology ~
Data Structures as Initial Algebras (s-expressions & binary trees) • S-expressions over atoms A • Solution to recursive equation S 1 + A + SS • Endofunctor F : Set Set : Q ↦1 + A + QQ • Sexp(A) is the initial F-algebra over A with unfolding to ‘empty-s-expression’, ‘atom-as-sexp’ and ‘cons’. Also, : 1 + A + Sexp(A)Sexp(A) Sexp(A) is an isomorphism with inverse being (‘is-null’, ‘is-atom’, ‘car-cdr’). • Initial algebraSexp(A) defined via the -colimit of the following iteration diagram in Set: F … Fn … • Binary trees over atoms A • Solution to recursive equation B 1 + BBA • Endofunctor F : Set Set : Q ↦1 + QQA • BinTree(A) is the initial F-algebra over A with unfolding to ‘empty-bintree’ and ‘make-bintree’. Also, : 1 + BinTree(A)BinTree(A)A BinTree(A) is an isomorphism (bijection), with inverse being (‘is-empty’, ‘left-right-atom’). • Initial algebraBinTree(A) defined via the -colimit of the following iteration diagram in Set: F … Fn … ~ IFF Category Theory Ontology ~
a … … Data Structures as Initial Algebras (trees-forests) • Trees and Forests • Solution to pair of recursive equations T FA, F 1 + FT • Endofunctor TF : SetSet SetSet : P, Q↦ QA,1 + QP • TF-algebras are function pairs P, Q : QA P : 1 + QP Q • Tree(A) Forest(A) is the initial TF-algebra over A with : Forest(A)ATree(A) being ‘make-tree’, and : 1 + Forest(A)Tree(A) Forest(A) unfolding to ‘empty-forest’ and ‘push-tree’. Also, : Forest(A)A Tree(A) and : 1 + Forest(A)Tree(A) Forest(A) are isomorphisms (bijections), with inverse being (‘data’, ‘forest’) and (‘is-empty’, ‘pop-top’), respectively. • Isomorphism: Forests Binary trees • Substitute T into F-equation: • F 1 + FT 1 + F(FA) 1 + FFA ~ IFF Category Theory Ontology ~
Lower metalevel terms: ‘if.log$logic’, ‘if.log$theory’, ‘if.log$classification’, ‘if.th$subtype’, ‘if.cls$type’, ‘if.cls$object’, ‘if.cls$incidence’, … Object level terms: ‘ieee$logic’, ‘ieee$theory’, ‘ieee$classification’, ‘ieee$organization’, ‘ieee$technical-society’, ‘ieee$region’, … IFF Model Theory (sub)Ontology ieee$technical-society Domain Ontology ieee$circuits-and-systems-society ieee$computer-society Object level logical code[Domain Ontology – ieee namespace] • (if.log$logic ieee$logic) • (= (if.log$theory ieee$logic) ieee$theory) • (= (if.log$classification ieee$logic) ieee$classification) • ((if.cls$type ieee$classification) ieee$organization) • ((if.cls$type ieee$classification) ieee$technical-society) • ((if.cls$type ieee$classification) ieee$region) • ((if.th$subtype ieee$theory) [ieee$region ieee$organization]) • ((if.th$subtype ieee$theory) [ieee$technical-society ieee$organization]) • ((if.cls$object ieee$classification) ieee$circuits-and-systems-society) • ((if.cls$object ieee$classification) ieee$computer-society) • ((if.cls$incidence ieee$classification) • [ieee$circuits-and-systems-society ieee$technical-society]) • ((if.cls$incidence ieee$classification) • [ieee$computer-society ieee$technical-society]) • … ~ IFF Category Theory Ontology ~
Upper metalevel terms: Core namespace ‘SET$class’, ‘SET.FTN$function’, ‘SET.FTN$source’, ‘SET.FTN$target’, … Category Theory (sub)Ontology – graph & category namespaces ‘GPH$graph’, ‘GPH$object’, ‘GPH$morphism’, ‘GPH$source’ , ‘GPH$target’, ‘CAT$category’, ‘CAT$underlying’ , ‘CAT$composable’ , ‘CAT$composition’ , ‘CAT$identity’ Lower metalevel terms: ‘if.cls$classification’, ‘if.cls$type’, ‘if.cls$object’, ‘if.cls$incidence’ ‘if.info$infomorphism’ , ‘if.info$source’ , ‘if.info$target’ , ‘if.info$composable’ , ‘if.info$composition’ , ‘if.info$identity’, … • (SET$class classification) • (SET.FTN$function instance) • (= (SET.FTN$source instance) classification) (= (SET.FTN$target instance) set$set) • (SET.FTN$function type) • (= (SET.FTN$source type) classification) (= (SET.FTN$target type) set$set) • (SET.FTN$function incidence) • (= (SET.FTN$source incidence) classification) (= (SET.FTN$target incidence) rel$relation) • … (GPH$graph classification-graph)(= (GPH$object classification-graph) if.cls$classification) (= (GPH$morphism classification-graph) if.info$infomorphism) (= (GPH$source classification-graph) if.info$source) (= (GPH$target classification-graph) if.info$target) (CAT$category classification)(= (CAT$underlying classification) classification-graph) (= (CAT$composable classification) if.info$composable) (= (CAT$composition classification) if.info$composition) (= (CAT$identity classification) if.info$identity) Lower metalevel logical code[Model Theory (sub)Ontology – classification namespace] ~ IFF Category Theory Ontology ~
Upper metalevel terms: Conglomerate & Core namespaces ‘CNG$conglomerate’, ‘CNG$function’ , ‘CNG$signature’ , ‘SET$class’, ‘SET.FTN$function’, … Category Theory (sub)Ontology – graph & category namespaces ‘GPH$graph’, ‘GPH$multiplication’, ‘GPH.MOR$2-cell’, ‘GPH.MOR$source’,, ‘GPH.MOR$target’, ‘CAT$category’, ‘CAT$underlying’ , ‘CAT$mu’ , ‘CAT$composition’ , … • (CNG$conglomerate category) • (CNG$function underlying) • (CNG$signature underlying category GPH$graph) • (CNG$function mu) • (CNG$signature mu category GPH.MOR$2-cell) • (forall (?c (category ?c)) • (and (= (GPH.MOR$source (mu ?c)) • (GPH$multiplication (underlying ?c) (underlying ?c))) • (= (GPH.MOR$target (mu ?c)) • (underlying ?c)))) • (CNG$function composition) • (CNG$signature composition category SET.FTN$function) • (forall (?c (category ?c)) • (= (composition ?c) • (GPH.MOR$morphism (mu ?c)))) • … • (KIF$class collection) • (forall (?c (collection ?c)) (KIF$class ?c)) • (collection conglomerate) • (forall (?c (conglomerate ?c)) (collection ?c)) • (not (conglomerate conglomerate)) • … • (CNG$conglomerate class) • (forall (?c (class ?c)) (CNG$conglomerate ?c)) • (not (class class)) • … • (CNG$conglomerate function) • (forall (?f (function ?f)) (CNG$function ?f)) • (CNG$function source) • (CNG$signature source function SET$class) • … Upper metalevel logical code[core namespace & Category Theory (sub)Ontology – graph & category namespace] ~ IFF Category Theory Ontology ~
IFF Category Theory (sub)Ontology core namespace Use of SET finite limits by namespaces in the Category Theory (sub)Ontology: pullback • SET.LIM.PBK$pullback • Two morphisms of a category are composable when the target of the first is identical to the source of the second. (CNG$function composable-opspan) (CNG$signature composable-opspan category SET.LIM.PBK$opspan) (forall (?c (category ?c)) (= (composable-opspan ?c) (GPH$multiplication-opspan (underlying ?c) (underlying ?c)))) (CNG$function composable) (CNG$signature composable category SET$class) (forall (?c (category ?c)) (= (composable ?c) (GPH$morphism (GPH$multiplication (underlying ?c) (underlying ?c))))) ~ IFF Category Theory Ontology ~
Use of SET finite limits by namespaces in the Category Theory (sub)Ontology: equalizer • SET.LIM.EQU$equalizer • A classification is extensional when any two coextensive types are identical. (SET.FTN$function coextensive) (= (SET.FTN$source coextensive) classification) (= (SET.FTN$target coextensive) rel$relation) (= (SET.FTN$composition coextensive rel$object) type) (= coextensive rel$equivalence2) (SET.LIM.EQU$parallel-pair extensional-parallel-pair) (= (SET.LIM.EQU$source extensional-parallel-pair) classification) (= (SET.LIM.EQU$target extensional-parallel-pair) rel$relation) (= (SET.LIM.EQU$function1 extensional-parallel-pair) coextensive) (= (SET.LIM.EQU$function2 extensional-parallel-pair) (SET.FTN$composition type rel$identity)) (SET$class extensional) (SET$subclass extensional classification) (= extensional (SET.LIM.EQU$equalizer extensional-parallel-pair)) ~ IFF Category Theory Ontology ~
(CNG$conglomerate reflexive) (CNG$subconglomerate reflexive endorelation) (forall (?r (endorelation ?r)) (<=> (reflexive ?r) (forall (?x ((class ?r) ?x)) ((extent ?r) [?x ?x])))) (forall (?r (endorelation ?r)) (<=> (reflexive ?r) (subendorelation (rel$identity (class ?r)) ?r))) (SET.LIM.SEQU$lax-parallel-pair reflexive-lax-diagram) (= (SET.LIM.SEQU$order reflexive-lax-diagram) subendorelation) (= (SET.LIM.SEQU$source reflexive-lax-diagram) endorelation) (= (SET.LIM.SEQU$function1 reflexive-lax-diagram) (SET.FTN$composition class identity)) (= (SET.LIM.SEQU$function2 reflexive-lax-diagram) (SET.FTN$identity endorelation)) (= reflexive (SET.LIM.SEQU$subequalizer reflexive-lax-diagram)) Use of SET finite limits by namespaces in the Category Theory (sub)Ontology: subequalizer • SET.LIM.SEQU$subequalizer • An endorelation is reflexive when it contains the identity relation on its class. ~ IFF Category Theory Ontology ~
Summary • I propose that the IFF Foundation Ontology be used to represent the metalevel structure of the SUO. • The IFF Foundation Ontology is founded on category theory – more strongly, the upper level of the IFF Foundation Ontology represents Category Theory. • The two levels of the IFF Foundation Ontology represent the large/small distinction. • The upper metalevel consists of the Category Theory Ontology anchored at the core namespace. • It is strongly recommended that the object level and the metalevel have a distinct and obvious boundary. ~ IFF Category Theory Ontology ~
Future Work • Future versions • Version 2.0: add terminology/axioms for the IFF Model Theory (sub)Ontology. • Namespaces: small sets, small relations, small classifications, spans and hypergraphs, models, and 1st-order interpretations. • Version 3.0 etc. • Namespaces: limits, Kan extensions, large classifications & concept lattices, topoi and fibrations. • Applications • Kestrel Institute’s Specware • Semantics for DAML-OIL • Category Theory Review • Initial reviewers • Ross Street, a category-theorist who has interest in applications; see his link to Category Theory at The Boeing Company, which refers to the Specware software mentioned in Michael Uschold’s message Composing Ontologies using morphisms and colimits. • Colin McLarty, who gave the challenge topos axioms, and has written a topos-theory book "Elementary Categories, Elementary Toposes". • Bill Lawvere, who is one of the primary creators of topos theory, and whose interest in applications (although a theorist) is indicated in the very detailed response that he gave to a question of Mike Healy's on the category list. • Submit to the category list at large for review, comments and criticisms. ~ IFF Category Theory Ontology ~