From W3C Wiki
Jump to: navigation, search

Suppose I tell you Fred has two brothers, Bob and Jim. Then later somebody asks you if Fred has any sisters. Figuring that I would have told you if he had any sisters while I was telling you about his brothers, you conclude that no, Fred has no sisters.

The assumption that I would have told you about the sisters is a closed world assumption.

Prolog systems typically support a form of closed world assumption called NegationAsFailure: if you can't prove that it's true, conclude that it's false.

When viewed as knowledge representation systems, SQL databases make the same assumption in order to support not, or, and the like.

Another typical closed world assumption is the UniqueNamesAssumption: that things with different names are different; i.e. that there are no aliases or synonyms.

A key part of SemanticWebArchitecture is making sure all your ClosedWorldAssumptions are explicit. See, for example, support for defaults in cwm and the technique of ClosingRoles.