# Re: POOD and the Unique Name Assumption

Date: Sat, 14 Jun 2008 16:35:44 -0400

Message-ID: <BYV4k.8174$mh5.7810_at_nlpi067.nbdc.sbc.com>

"Marshall" <marshall.spight_at_gmail.com> wrote in message
news:ae8d562e-884d-41cf-bab6-993d773b127a_at_u12g2000prd.googlegroups.com...

> On Jun 12, 4:21 am, "Brian Selzer" <br..._at_selzer-software.com> wrote:

*>>
**>> >>>>I guess I don't really know what this "Unique Name Assumption" is.
**>>
**>> >>>The Unique Name Assumption ensures that whenever two names are
**>> >>>different,
**>> >>>the objects they represent must also be different.
**>>
**>> >> What is motivation for such an assumption? It doesn't seem to hold in
**>> >> any formal system I can think of.
**>>
**>> The unique name assumption is concerned with how first order language
**>> elements are mapped to objects in the Universe of Discourse. How could
**>> forcing that mapping to be bijective cause aliasing errors?
**>
**> Well, to be pedantic (and who doesn't love an opportunity for that?)
**> I'd
**> have to say here we're talking about *anti* aliasing errors.
**>
**> You said specifically "language elements." So that definitely means
**> things
**> like variable names, and not values from the domain of discourse. Yes?
**>
*

No. Not all language elements can map to objects in the Universe. Certainly not variable names. There are two sets of symbols in a first order language whose members can: the set of constant symbols, each of which maps to an individual, and the set of predicate symbols, each of which maps to a relation. There is also a set of individual variables, but variables do not map directly to individuals in the universe. They are placeholders for that which does.

Incidentally, Date refers to the Unique Name Assumption in the chapter on Logic-Based Databases in /An Introduction to Database Systems/ (page 792 in the Eighth Edition). Of course in the same paragraph he also mentions the Domain Closure axiom, but his interpretation of Reiter appears to be flawed in the same way as his interpretation of the unique name assumption:

3. The "unique name" axiom, which states that every constant is distinguishable from all of the others (i.e., it has a unique name).

4. The "domain closure" axiom, which states that no constants exist other than those in the database domains.

Is problematic because not all of the members of a domain necessarily denote, nor do their referents necessarily exist. For example, suppose that you have a part number A-12349-0 that today happens to be the next internal part number to be used. It currently doesn't refer to any particular assembly, because it hasn't yet been assigned to one. Depending on decisions made today, it could end up referring to one of several assemblies whose design has been quoted. So if quote 103256 is won, and the paperwork reaches engineering first, then A-12349-0 would refer to the assembly quoted on quote 103256, but if the paperwork for quote 103847 reaches engineering first, then A-12349-0 would refer to the assembly quoted on quote 103847. Reiter, in "Equality and Domain Closure in First-Order Databases" (JACM, April 1980), writes,

3. Closed Databases

Let {c1, ..., cp} be all of the distinct constant signs occuring in the formulas of a database DB. These are finite in number since there are just finitely many formulas in DB. Then the following is the /domain closure axiom/ for DB:

(x) x = c1 \/ ... \/ x = cp. ["(x)" is Reiter's notation for "forall x"]

If DB contains its domain closure axiom, then DB is called a /closed database/.

In effect a closed database DB restricts the universe of discourse to just those individuals denoted by the constant signs of DB. As far as DB is concerned, no other individuals exist.

Date mistakenly equates membership in a database domain with "occuring in the formulas of a database," and as my example shows, just because a constant appears in a domain doesn't mean that it denotes--that is, that it references an individual that either exists or existed. Equally flawed is his take on the "unique name" axiom: Of course every constant should be distinguishable from all other constants, but that isn't what the "unique name" axiom is about. Completely missing is the idea that whenever two symbols are distinguishable, their referents in the Universe of Discourse must also be distinguishable.

> So under the UNA, an expression like

*>
**> AxEy:x=y
**>
**> will be false, but ordinarily it would be true. So ... that's going to
**> be weird.
**>
*

So under the UNA, an expression like

AxEy:x=y

would be true.

<snip> Received on Sat Jun 14 2008 - 22:35:44 CEST