ASPL Operations Guide v 1.00
© 2025 Bassem W. Jamaleddine
ASPL provides operators to do set comparison between your set variables, these operators are called setcomparison operators. These are as follows: equal, subset, superset, and disjoint. These four operators, along their derivatives, are termed setadic operators: their operands are set variables representing groups. The derivative of a set comparison operator is the operator mnemonic name suffixed with either one of the syntatic amplifier words: mostly or loosely, so that the operator amplifies the comparison operation carried by it.
The mostly is a settable percentage using the mostly command, directing ASPL set comparison operators to do the comparison based on a certain percentage. If you type the command mostly at the ASPL prompt, then hit ENTER, you will realize that this command provides a percentage number that is used as an amplifier for the set comparison.
The loosely amplifier makes a loosely set comparison at the elements level by ignoring the group label and its subgroups.
Furthemore, the set comparison can be further intensified by ignoring the elements attributes; this is simply done by further prefixing the operator with the intensifier word noeattr.
The following shows the output when entering mostly at the ASPL prompt:
# aspl
______ ____ ______ __
/ __ / / ___\ / __ / / /
/ /_/ / \ \ / ____/ / /
/ __ / __ \ / / / /
/ / / / / __ / / / / /____
/_/ /_/ \___/ /_/ /______/
STARTING ASPL SESSION WITH WORKSPACE: TRIVIAL
NAMED GROUP: ZEROGROUP
last saved 2023-05-15 02:31:49.734247
2:47:40 root@vienna /home/bassem aspl:1 > mostly
mostly percent is set to 20
that is 20% mostly acceptance for set comparison operators
To change the mostly percentage, use the command 'mostly' followed by an integer between 0 and 100
When set comparison operator is prefixed with mostly, then this operator will use the
mostly percentage to determine if the set comparison is true or false.
The mostly is a number between 0 and 100 and it represents the acceptance percentage
or the unacceptance percentage when comparing set variables. When mostly is set to 0
then all set comparison operators will return true. When mostly is set to 100 then
a mostly-set-comparison-operator will return true if and only if it is 100% true without its
mostly quantifier.
To use mostly the set comparison operators are prefixed with "mostly":
mostlyEqual mostlyDisjoint mostlySubset mostlySuperset mostlyLooselyEqual ..
For mostlyEqual the percentage is to accept equality if the ratio of the matching elements of both set variables
are larger then the percentage.
For mostlyDisjoint the percentage is to accept inequality if the ratio of the unmatched elements of both set
variables are larger then the percentage.
"mostlyEqual S1 S2" return TRUE if 20% or more of the elements are in S1 and in S2
"mostlyDisjoint S1 S2" return TRUE if 20% or more of the elements of set S1 and S2 are not in both sets
"mostlySubset S1 S2" return TRUE if 20% or more of the elements of set S1 are in S2
"mostlySuperset S1 S2" return TRUE if 20% or more of the elements of set S2 are in S1
Setting this to 0 will make everything vanish to 0 and always true for anything mostly- equal, disjoint, subset, or superset
Setting this to 100 will make mostlyEqual true if and only if the sets are really Equal, that is:
Setting this to 100 will make mostlyEqual equivalent to the Equal
Setting this to 100 will make mostlySubset equivalent to the Subset
At anytime, type setcomparison at the ASPL prompt to get the summary of ASPL set comparison operators. The following four sections describe the setness comparison operators along their amplifications.
■ SET EQUALITY and its Amplifiers
This equal can be amplified by prefixing it with amplification syntax shown in the following table:
| Equal | determines if two or more sets are equal |
| mostlyEqual | determines if two or more sets are mostly equal |
| looselyEqual | determines if two or more sets are loosely equal |
| mostlyLooselyEqual | determines if two or more sets are mostly loosely equal |
| noeattrEqual | determines if two or more sets (ignoring the attributes) are equal |
| mostlyNoeattrEqual | determines if two or more sets (ignoring the attributes) are equal |
| looselyNoeattrEqual | determines if two or more sets (ignoring the attributes) are mostly equal |
| mostlyLooselyNoeattrEqual | determines if two or more sets (ignoring the attributes) are mostly loosely equal |
■ SUBSETNESS and its Amplifiers
This subset can be amplified by prefixing it with amplification syntax shown in the following table:
| Subset | determines if a set is a subset of a set or of a series of sets |
| mostlySubset | determines if a set is mostly a subset of a set or of a series of sets |
| looselySubset | determines if a set is loosely a subset of a set or of a series of sets |
| mostlyLooselySubset | determines if a set is mostly loosely a subset of a set or of a series of sets |
| noeattrSubset | determines if a set (ignoring the attributes) is a subset of a set or of a series of sets |
| mostlyNoeattrSubset | determines if a set (ignoring the attributes) is mostly a subset of a set or of a series of sets |
| looselyNoeattrSubset | determines if a set (ignoring the attributes) is loosely a subset of a set or of a series of sets |
| mostlyLooselyNoeattrSubset | determines if a set (ignoring the attributes) is mostly loosely a subset of a set or of a series of sets |
■ SUPERSETNESS and its Amplifiers
This superset can be amplified by prefixing it with amplification syntax shown in the following table:
| Superset | determines if a set is a superset of a set or of a series of sets |
| mostlySuperset | determines if a set is mostly a superset of a set or of a series of sets |
| looselySuperset | determines if a set is loosly a superset of a set or of a series of sets |
| mostlyLooselySuperset | determines if a set is mostly loosely a superset of a set or of a series of sets |
| noeattrSuperset | determines if a set (ignoring the attributes) is a superset of a set or of a series of sets |
| mostlyNoeattrSuperset | determines if a set (ignoring the attributes) is mostly a superset of a set or of a series of sets |
| looselyNoeattrSuperset | determines if a set (ignoring the attributes) is loosely a superset of a set or of a series of sets |
| mostlyLooselyNoeattrSuperset | determines if a set (ignoring the attributes) is mostly loosely a superset of a set or of a series of sets |
■ DISJOINTNESS and its Amplifiers
This disjoint can be amplified by prefixing it with amplification syntax shown in the following table:
| Disjoint | determines if two or more sets are disjoint |
| mostlyDisjoint | determines if two or more sets are mostly disjoint |
| looselyDisjoint | determines if two or more sets are loosely disjoint |
| mostlyLooselyDisjoint | determines if two or more sets are mostly loosely disjoint |
| noeattrDisjoint | determines if two or more sets (ignoring the attributes) are disjoint |
| mostlyNoeattrDisjoint | determines if two or more sets (ignoring the attributes) are mostly disjoint |
| looselyNoeattrDisjoint | determines if two or more sets (ignoring the attributes) are loosely disjoint |
| mostlyLooselyNoeattrDisjoint | determines if two or more sets (ignoring the attributes) are mostly loosely disjoint |