3.0 2006-10-07 -------------- * Refactored the library into SetObject, RelationSetObject, ElementObject and RelationObject classes. * Added methods for union, intersect, complement, and xor * Added powerset and subset methods * Generalized static creation of element and relation with the ElementObject using the "+" plusproperty notation. 2.1 2006-09-05 -------------- broke out relation.t into separate modules based on classes. renamed "result" and "results" to "matrix" in the library code. Added the methods to RelationSet: * isIdentical(otherSet) returns true if this relation set is to be considered identical to otherSet; otherwise returns nil. * equals(otherSet) returns true if this relation set is to be considered equal to the otherSet; otherwise returns nil. * isSubsetOf(otherSet) returns true if this relation set is a subset of the otherSet; otherwise returns nil. * isSupersetOf(otherSet) returns true if this relaiton set is a superset of the otherSet; otherwise returns nil. * hasMember([parms]) returns true if the relation is a member of this relation set; otherwise returns nil. Added the following methods to RelationObject: * isIdentical(otherRelation) returns true if this relation is to be considered identical to otherRelation; otherwise returns nil. * equals(otherRelation) returns true if this relation set is to be considered equal to the otherRelation; otherwise returns nil. * isMemberOf(parms, relationSet) returns true if this relation is a member of relationSet; otherwise returns nil. * getMembershipList([parms]) returns a list of all relation sets for which the parameter list forms a relation. 2.0 2006-08-26 -------------- Renamed macros: * DefRelation is now RelSet * Relate is now Relation Added macros: * MakeRelSet used for creating dynamic relation sets * Relate used for creating dynamic relations * Remove used for removing relations Renamed objects: * Relation is now RelationObject New Objects: * RelationObject has been refactored into two objects: RelationSet and RelationObject. * null is now used as a placeholder in the matrix * all is used for subset searches New Methods: * remove(mask, [flg]) has been added to the RelationSet. This method takes two parameters and is used to remove relations from their respective relation sets. * toMatrix() returns a n x m matrix of relations where n is the size of the relation set and m is the maximum arity of the relation set. The null object pads any relation parm positions that have no values. * toList() returns a list of relation parms for the relation set *Not(notSet, [univSet]) returns the complement of the notSet as constrained by the univSet.