MM-cat Docs
Application GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Instance Category

An instance category is a structure capable of holding actual data. It is organized in a same way as the schema category, however its entities have different contents.

Objects

Consider a schema object AA with superid σf=3,σg=6{ \sigma_f = \texttt{3}, \sigma_g = \texttt{6} } where f:ABf: A \rightarrow B and g:ACg: A \rightarrow C reference the objects BB and CC. Let us denote tit_i as one specific instance of values of these objects. Then the corresponding instance object can be considered as a set of all tit_i in our domain. One tit_i can be represented as a set of tuples (σ,v)(\sigma, v), where σ\sigma is one of the signatures and vv is a value from the domain of the object linked to AA with morphism with signature σ\sigma. So in this case a tit_i can be written as ti=(σf,bj),(σg,ck) . t_i = {(\sigma_f, b_j), (\sigma_g, c_k)} \ . For example, BB can represent a first name with possible values Frodo, Bilbo and Samwise while CC represents a surname with possible values Baggins, Gamgee etc. All the possible tit_i in the set would be:

{ 3: "Frodo", 6: "Baggins" },
{ 3: "Bilbo", 6: "Baggins" },
{ 3: "Samwise", 6: "Gamgee" }

One tit_i is called an active domain row. A set of all tit_i together creates an active domain (or instance object) of the schema object AA, which can be denoted as I(A)I(A).

It is important to note that the objects BB and CC must be the simple schema objects with the empty signature as an identifier, so we can reference them by their values. A complex object (e.g. AA) can be also referenced, but we have to use one of its identifiers to do so.

Morphisms

An instance morphism is a set of all relations between the rows from two instance objects. If f:ABf: A \rightarrow B is a schema morphism with the domain object AA and the codomain object BB, we can denote mim_i to be a specific relation between selected two rows ajI(A)a_j \in I(A) and bkI(B)b_k \in I(B). In other words, mim_i is an ordered pair mi=(aj,bk)m_i = (a_j, b_k). The instance morphism of ff, denoted as I(f)I(f), is then the set of all possible mim_i.

If we go back to the previous example, all the miI(f)m_i \in I(f) would look like:

( { 3: "Frodo", 6: "Baggins" }, { ε: "Frodo" } ),
( { 3: "Bilbo", 6: "Baggins" }, { ε: "Bilbo" } ),
( { 3: "Samwise", 6: "Gamgee" }, { ε: "Samwise" } )