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.
Consider a schema object with superid where and reference the objects and . Let us denote as one specific instance of values of these objects. Then the corresponding instance object can be considered as a set of all in our domain. One can be represented as a set of tuples , where is one of the signatures and is a value from the domain of the object linked to with morphism with signature . So in this case a can be written as
For example, can represent a first name with possible values Frodo
, Bilbo
and Samwise
while represents a surname with possible values Baggins
, Gamgee
etc. All the possible in the set would be:
{ 3: "Frodo", 6: "Baggins" },
{ 3: "Bilbo", 6: "Baggins" },
{ 3: "Samwise", 6: "Gamgee" }
One is called an active domain row. A set of all together creates an active domain (or instance object) of the schema object , which can be denoted as .
It is important to note that the objects and 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. ) can be also referenced, but we have to use one of its identifiers to do so.
An instance morphism is a set of all relations between the rows from two instance objects. If is a schema morphism with the domain object and the codomain object , we can denote to be a specific relation between selected two rows and . In other words, is an ordered pair . The instance morphism of , denoted as , is then the set of all possible .
If we go back to the previous example, all the would look like:
( { 3: "Frodo", 6: "Baggins" }, { ε: "Frodo" } ),
( { 3: "Bilbo", 6: "Baggins" }, { ε: "Bilbo" } ),
( { 3: "Samwise", 6: "Gamgee" }, { ε: "Samwise" } )