From: Jonathan Karges <J.Karges at dkfz-heidelberg.de>
Message-Id: <199406101511.AA23494 at cvx12.inet.dkfz-heidelberg.de>
To: acedev at genome.lbl.gov
Subject: Empty objects...
I tried to read ace-dumps in ACEDB 3.0 (SPARCstation IPC) and
recognized that after reading the dump file, empty objects (only the
name is known but no data is stored for the objects) are not listed in
the keyset. However, if you then try to create a new object under the
name of an read empty object, this name is known. So, the empty object
has really been stored in the database.
I think, empty objects also should be listed in the keyset.
Your empty objects are not displayed because they are flagged as
deleted objects. When you delete an object from ACEDB, you in fact
just empty it. You have to leave a database entry with a name for it
because there may be dangling pointers. So when an object is saved
with no data in it, it is flagged deleted, and not shown in keyset
listings. This also applies to empty objects that you try to read in
as empty (they get stored empty). If you create a name by a reference
from another object, it will not get flagged empty, and will display
in the keyset list, in plain font rather than bold because you can't
display it. If you want to explicitly create a name for an empty
object that will be displayed in keysets, then you could do so by, for
example, reading in a keyset of them, then deleting the keyset object.
If you want to display an empty object as a tree, you can use the
Add/Alias/Rename window -- you need write access for this, but the
only reason to display an empty tree would be to put data into it.
Sorry this is all a bit round/about. The equation of deletion with
empty objects is correct with respect to ACEDB semantics. For
example, it is required to make parsing and acediff work properly.
Also to delete objects created only to hold cross-references, when the
cross-reference is deleted. These are important.