If you are learning about the Semantic Web, one of the things you will hear is that the Semantic Web assumes the Open World. In this post, I will clarify the distinction between the Open World Assumption and the Closed World Assumption.
The Closed World Assumption (CWA) is the assumption that what is not known to be true must be false.
The Open World Assumption (OWA) is the opposite. In other words, it is the assumption that what is not known to be true is simply unknown.
Consider the following statement: “Juan is a citizen of the USA.” Now, what if we were to ask “Is Juan a citizen of Colombia?” Under a CWA, the answer is no. Under the OWA, it is I don’t know.
When Do CWA and OWA Apply?
The CWA applies when a system has complete information. This is the case for many database applications. For example, consider a database application for airline reservations. If you are looking for a direct flight between Austin and Madrid, and it doesn’t exist in the database, then the result is “There is no direct flight between Austin and Madrid.” For this type of application, this is the expected and correct answer.
On the other hand, OWA applies when a system has incomplete information. This is the case when we want to represent knowledge (a.k.a ontologies) and want to discover new information. For example, consider a patient’s clinical history system. If the patient’s clinical history does not include a particular allergy, it would be incorrect to state that the patient does not suffer from that allergy. It is unknown if the patient suffers from that allergy, unless more information is given to disprove the assumption.
CWA vs. OWA: An Example
CWA is not only about returning “no” and OWA is not only about returning “I don’t know.” Consider the following example:
Let’s continue with the example of “Juan is a citizen of USA” and assume the following statement is true: “a person can only be citizen of one country.” Up to now, everything is fine. Now consider we add the following statement: “Juan is a citizen of Colombia.” In a CWA system, this would be an error because we previously stated that person can only be a citizen of one country and we assume that USA and Colombia are different countries. In an OWA system, instead of generating an error, it would infer a new statement. The logic is the following: “If a person can only be citizen of one country, and if Juan is a citizen of USA and Colombia, then USA and Colombia must be the same thing!”
Note that in the CWA case, we assumed that USA and Colombia are different countries. With OWA, this is not assumed. This is what is called Unique Named Assumption (UNA). CWA systems have UNA. OWA systems do not have UNA. However, one could manually add the UNA. In other words, if I have a list of all the countries, I would have to explicitly state that each country is different from each other. In our example, if we add the following statement: “USA is different from Colombia,” the OWA would now generate an inconsistency. The OWA logic is the following: “If a person can only be a citizen of one country, and if Juan is a citizen of USA and Colombia, then USA and Colombia must be the same thing; but hold on, USA and Colombia are different, so they can’t be the same! Something is wrong.”
OWA and the Semantic Web
Recall that OWA is applied in a system that has incomplete information. Guess what the Web is? The Web is a system with incomplete information. Absence of information on the web means that the information has not been made explicit. That is why the Semantic Web uses the OWA. The essence of the Semantic Web is the possibility to infer new information.