Mutually Disjoint Collections

E-Mail Comments to: doc@cyc.com
Copyright© 1996, 1997, 1998 Cycorp. All rights reserved.

[Up]Sets and Individuals in CYC®
[Back]Uses of #$genls and #$isa
[Next]Collections of Collections

Prerequisites: Viewing CYC® Constants with the Web Interface

#$genls lets us describe which collections subsume others, but we would also like to describe which collections are mutually exclusive. For example, while we say "all dogs are animals" we also want to say "no dogs are ladybugs".

CYC® provides several mechanisms for this, but the simplest is the binary predicate #$disjointWith. For two (sets or) collections, C1 and C2:

     (#$disjointWith C1 C2)

indicates that no instance of C1 can be an instance of C2. So,

     (#$disjointWith #$Dog #$Ladybug)

would make it a contradiction to assert that any constant was both an instance of #$Dog and an instance of #$Ladybug.

Disjoining #$Dog and #$Ladybug in this way may makes for a clear example, but it would be a poor choice for the KB, since it is overly specific and implies a multitude of similar assertions. I.E. dogs are not ants, nor whales, nor planets, etc. It would be better to assert

     (#$disjointWith #$Vertebrate #$Invertebrate)

and similar general propositions. Nevertheless, we would still require a large number of assertions to disjoin #$Dog with its "sibling" collections (such as #$Cat). Because of this awkwardness, most of the disjoins in the CYC® KB are performed with more general mechanisms using #$SiblingDisjointCollection (described in subsequent sections).

#$disjointWith is therefore only used in limited cases where a more general disjoin cannot be applied.

To see some examples, browse #$disjointWith and choose the Predicate Extent item to take you to the section showing assertions where #$disjointWith is in the predicate position. There are a few hundred assertions of this form in the #$BaseKB.


[Up] [Back] [Next]
Last Update: 10/26/1998 11:41:20