Applications

Partitioning Classes (PTCL)

This issue of different aspects of color was addressed in the paper by Guizzardi and Almeida [GuAl2020]. The Ontograph in Figure pc-colour shows different kinds of data properties that can be used to distinguish colors. The figure also shows that PC properties can be assigned in two different ways. The first, (^ANM-black_Panther, »is, ^.black) expresses that the species as a whole is black in color. In contrast, (^ANM-black_Panther, »has, ^.black-FurColor) expresses that the color refers to a specific body part. PCs can also be arranged in inheritance hierarchies. For example, color codes in hexadecimal and in RGB form can be subordinated to the respective color name. Thus, (^.RGB-255.255.255, »is, ^.white) and (^.#FFFFFF, »is, ^.white) represent the color white. With the superclasses ∵^.white-FurColor = {^.white-FurColor,^.FurColor, ^.ColorName, ^.Color} any particular of a class like ^ANM-Polar_bear automatically inherit any of the properties of the superclass.

Fig. pc-colour: Partitioning of Color by Name, RGB, and HexCode
  Value Partitions:
Features are defined as data property-value pairs of the form (dp, v). A data property feature (DPF) takes the form dpf =(dp, av) where av ∈ VS(dp), while an object property feature (OPF) takes the form opf = (op, x) where x is the name of the object. Examples are dpf = (.Legs, 6) and opf = (»subClassOf, ^Vehicle). Partitioning classes formed from features are called Feature Partitioning Classes (FPC). For example, let .ΔLegs be the data property specifying the number of legs with VS(.ΔLegs) = {0, 2, 4, 6, 8, 100...}. Consequently the FPCs of .Legs are named .^v-Legs with v ∈ VS(.ΔLegs) and (^.v-Legs, .ΔLegs, v). Then for a transparent data property .ΔA we have the data property definition (^.v-A, .ΔA, :ADT) and the value assignment (^.v-A, .ΔA, v) for each v ∈ VS(.ΔA), e.g., (^.2-Legs, .ΔLegs, 2) or (^Fish, »has, ^.0-Legs).
Attribute-Value Propagation Axioms:
With the data property values of instances that are particulars of a PC or subclasses of a PC, the value assignments can then be entailed as follows. Let .ΔA be the data property of a PC and VS(.ΔA) its value set. Let PCA = ^.A be a PC and ∵PCA all its parents. Then the PC-P axiom PCPAx specifies how an attribute-value pair is propagated from a PC to a particular x connected with >^is to a PC:
{{axiom:PCPAx:PC-P Axiom:For every v ∈ VS(.ΔA) and c ∈ ∵PCA it holds: if (x, >^is, c) ∈ KG ∧ (c, .ΔA, v) ∈ KG → (x, .ΔA, v) ∈ KG }}
The next PC-C axiom PCCAx covers the case where a domain class is subsumed under a PC such as in the instantiation chain ^GoldenEagle »subClassOf ^Bird »is ^.warm-blooded. Then follows that each class in the chain gets the corresponding attribute-value pair, e.g., (^GoldenEagle, .Δwarm-blooded, T) ∈ KG and (^Bird, .Δwarm-blooded, T) ∈ KG. Since .Δwarm-blooded is a Transparent Data Property (TDP) it follows that also every particular of ^GoldenEagle and ^Bird also has the feature (.Δwarm-blooded, T). Let c1, c2, c3 be domain classes where c1 is the lowest class and c3 is the highest class which is subsumed under the partitioning class pc. Let ∵pc be the parent hierarchy of pc and d ∈ ∵pc a partitioning class for which there exists a value assignment (d, .Δdp, vp) ∈ KG with vp ∈ VS(.Δdp) exists. Then, for each d ∈ ∵pc every class from c1 to c3 gets the value vp, i.e., (d,.Δdp, vp) ∈ KG is entailed.

{{axiom:PCCAx:PC-C Axiom:∀d ∈ ∵pc, ∀c2 ∈ ∵c1 : (c3 ∈ ∵c1 ∧ (c3, »is, pc) ∈ KG ) → (c2, .Δdp, vp) ∈ KG }}

The special case where the name of a PC contains an integer value followed by the name of the attribute such as in ^.2-Legs can be treated as a combination of the two previous axioms. Let v ∈ VS(.ΔA), e.g., for VS(.ΔLegs) = {0, 2, 4, 6, 8 ...}. For the instantiation chain ^GoldenEagle »subClassOf ^Bird »is ^.feathered_biped »has ^.2-Legs »is ^.Legs we can then infer (^GoldenEagle, »has, ^.2-Legs) and that (^GoldenEagle, .ΔLegs, 2) ∈ KG. Also every particular of ^GoldenEagle and ^Bird gets the feature (.ΔLegs, 2).

  Boolean Partitioning Classes (BPC):
The BPCs are a special case among the PCs. In Figure PC-boolean we have modeled the traits feathered and warm-blooded as examples. As a default principle, we used the case where the value in the base classes .feathered and ^.warm-blooded is assumed to be ‘true’ (T). Then (^Bird, »is, ^.warm-blooded) implies that all bird species and all bird particulars are ‘warm-blooded’ and thus have the feature (.warm-blooded, T). The special aspect of Boolean PCs is the manner in which the value for ‘false’ (F) is modeled. A boolean attribute can be either T or F. For each of the base classes, we define the opposite partitioning classes using the relational constructor such as in (^.not-feathered, »is-not, ^.feathered) and (^.not-warm-blooded, »is-not, ^.warm-blooded). In the partitioning classes ^.not-feathered and ^.not-warm-blooded, the default value T (true) from the base class is then reassigned with F (false).

In general, however, this also means that the »is-not-relation between the Boolean PCs must be used to instantiate the data property definitions (^.feathered, .^feathered, :Boolean) and (^.warm-blooded, .^warm-blooded, :Boolean). Partitioning classes can then be combined into combined partitioning classes, as in (^.unfeathered-biped, »is, ^.not-feathered) and (^.unfeathered-biped, »has, ^.2-Legs). The definition of humans as unfeathered bipeds by Carnap [Carn1947], page 15, can be modeled with  (^Homo_Sapiens, »is, ^.unfeathered-biped). Humans (^Homo_Sapiens) are thus 2-legged, non-feathered, and warm-blooded. The two examples again show how the modeling is kept lean by assigning the classes ^Bird or ^Homo_Sapiens to only one superclass, ^.feathered-biped or ^.unfeathered-biped. For each of the data properties, the values are not stored in the specific instances (particulars), but can be entailed, so that the storage of three triples per instance is guaranteed only for ^Bird and ^Homo_Sapiens alone. By applying the principal filter ∴ for child hierarchies and the principal ideal ∵ for parent hierarchies in the Preliminaries section we get: ∵^Bird = {^Bird, ^Species, ^.warm-blooded, ^.feathered, ^.feathered_biped, ^.2-Legs, ^.Legs} and ∵^Homo_Sapiens = {^Homo_Sapiens, ^Species, ^.warm-blooded, ^.¬feathered_biped, ^.¬feathered, ^.2-Legs, ^.Legs}. Then with (>ANM_Joe, »pof, ^Golden_Eagle) ∈ KG and (^Golden_Eagle, »is, ^Bird) ∈ KG it is determined that (>ANM_Joe, .Δwarm-blooded, T) ∈ KG, (>ANM_Joe, .Δfeathered, T) ∈ KG, and (>ANM_Joe, .ΔLegs, 2) ∈ KG. As already mentioned attribute-value pairs of PCs are instantiated directly or indirectly into their particulars using the >^is relation, e.g., for >ANM_Joe >^is ^.Adult »is ^.LifePhase »is ^.PClass. For the indirect we have, e.g., the instantiation chain >ANM_Joe »pof ^GoldenEagle »subClassOf ^Bird »is ^.warm-blooded »is ^.PClass.

To summarize, according to figure PC-boolean with (^Bird, »is ^.feathered_biped), (^.feathered_biped, »has, ^.2-Legs) we can entail ∵^.feathered_biped = {^.feathered, ^.2-Legs, ^.Legs} → (^Bird, .ΔLegs, 2) (^Bird, .Δfeathered, T). Also, because of VAP each particular bird has 2 legs and is feathered. With ∵^Fish = {^.¬feathered, ^.¬warm-blooded, ^.0-Legs → (^Fish, .ΔLegs, 0) ∧ (^Fish, .Δfeathered, F) ∧ (^Fish, .Δwarm-blooded, F) it follows that fish have no legs, are featherless, and are not warm-blooded. The examples for ^Bird and ^Fish illustrate the savings potential of the VAP method. The propagated features can be entailed and have not to be explicitly stored in the KG.

Fig. PC-boolean: Boolean Partitioning Classes

Extension: deriver.app

Combined mirror of PTCL Color, Value Partitions, and Boolean. Back to Introduction; Deriver documentation.

Sources: PTCL Color, PTCL Value Partitions, PTCL Boolean.