![]() | Sets and Individuals in CYC® |
![]() | Sets and Individuals |
![]() | Uses of #$genls and #$isa |
The fundamental type of CycL expression is the "atomic formula", where a predicate is applied to one or more terms to indicate some relationship between the things denoted by the terms:
(<predicate> <term1> <term2> ...)
If there are no variables in the expression, all the terms are said to be "ground", and so the expression is referred to as a "ground atomic formula", or "GAF".
The predicate #$genls is used to indicate that one collection is more general than another, that it is a "superset". For example,
(#$genls #$Dog #$Animal)
indicates that the collection of animals is a superset of the collection of dogs.
The predicate #$isa is used to indicate that a thing is an instance of (element of) a collection, as in
(#$isa #$Sparky #$Dog) (#$isa #$isa #$Predicate)
where #$Sparky is stated to be an instance of the collection of dogs, and #$isa as a instance of the collection of CYC® predicates.
The predicates #$isa and #$genls are strongly supported by the CYC® system code. There are special datastructures and special code routines inside CYC® which allow rapid, efficient reasoning about collection-membership and collection-supersethood using #$isa and #$genls.
The set-theoretic predicates #$subsetOf and #$elementOf also exist in CYC®. They are applicable to any #$SetOrCollection. However, inferencing with #$subsetOf and #$elementOf is not as strongly supported as that with #$isa and #$genls is. These predicates are not used nearly as often as #$genls and #$isa, which are specifically defined for #$Collections.