![]() | Contexts in Cyc® |
![]() | What Is A Context? |
![]() | Accessible Assertions and Domain Assumptions in Contexts |
To link up two microtheories ?MT1 and ?MT2 in this way, you assert
this to Cyc:
(#$genlMt ?MT1 ?MT2)A context ?MT1 has access to another ?MT2 if everything that is true in the accessed context ?MT2 is true in the accessing context ?MT1 as well. In other words, to say (#$genlMt #$HumanAilmentMt #$AilmentMt)--i.e., that the #$HumanAilmentMt has access to the #$AilmentMt as its base (or that the #$AilmentMt is the base microtheory of the #$HumanAilmentMt)--means that every assertion that is true in the #$AilmentMt is also true in the #$HumanAilmentMt.
Cyc's #$genlMt relation relates all contexts to two special contexts: one, called #$BaseKB, is the base microtheory of every other context in the system. Conversely the other extreme, called #$EverythingPSC (a "virtual" context used only in browsing around in Cyc), has every other context in the system as its base microtheory. The former, called the #$BaseKB, is the most general context in the system, and contains only information that will be true in every other context as well; as a result, only the most general, context-independent information belongs in the #$BaseKB.
The #$EverythingPSC, on the other hand, has every other context as a base; it is used to see the totality of information that has been entered about some unit in all contexts. Because it is used only for browsing, and not as a theory of some domain, assertions cannot be made in the #$EverythingPSC itself.
Cyc uses temporary Problem-Solving Contexts (PSCs) when it needs to combine information from various other contexts to solve a particular problem. A PSC has no built-in facts or IF-THEN rules of its own; it get all its assertions by "lifting" them from other microtheories which exist in Cyc® to solve the problem at hand. When Cyc® is finished working, the PSC is discarded.
Mathematically speaking, then, the microtheories in the Cyc Knowledge Base form a partially ordered set (also called a "poset" or just "ordered set") of contexts with #$genlMt as the ordering relation. This corresponds to a Directed Acyclic Graph (DAG), having a top node (#$EverythingPSC) above other contexts, and a bottom node (#$BaseKB) included in all others. This is not merely a tree structure because one context may have many "parents" and many "children" in the partially ordered set of contexts.