Re: Love or hate, or? domains with cardinality two

From: Nicola <nvitacolonna_at_gmail.com>
Date: Mon, 2 Nov 2015 22:55:17 +0100
Message-ID: <n18m45$gp2$1_at_adenine.netfront.net>


I think that part of my discomfort has to do with the Closed World Assumption. This is better explained with a contrived example: instead of a predicate Cat(x) that holds when x is a cat, let us consider a binary predicate P(x,y) with y boolean, such that

P(x,true) means "x is a cat" and P(x,false) means "x is not a cat".
Now, what does it mean for a tuple (x,true) *not* to be in P? By the
CWA, it means that 'not P(x,true)' must hold. That is, 'it is not true
that x is a cat'. But then, (x,false) must be in P. So, for every element of the (infinite) domain of x there must be a tuple in P.

Now, in the Employee example things are a bit different. Employee(x,y,true) is a compound predicate: 'employee x belongs to dept y and x is a manager of y'. The negation is a disjunction, which is consistent with (x,y,false) being or not being in Employee (I leave the details to you). If the semantics were 'x is a manager of dept y', then there would be trouble.

The Loves/Hates example is another story. The starting schema has two predicates Loves(x,y) and Hates(x,y). Of course, if a tuple (a,b) is in neither, it means that 'a does not love b' and 'a does not hate b', which must not be a contradiction - if it were, then the two relations would need to be infinite if the domains are infinite (each pair should occur in one of the two relations). So, love/hate is not really a boolean attribute.

Nicola

Received on Mon Nov 02 2015 - 22:55:17 CET

Original text of this message