Title: Generate new InternalId on Document copy operations Date Prepared: April 30, 1996 Date Needed: Priority: Routine Document Affected: Design Paragraphs Affected: 4.1 References: Change Required: Alter the CopyBareDocument() and CopyDocument() operations such that they assign a new Id to the generated copy. In addition, make a Document Id be unique only within a Collection and not within the entire Tipster system. Specific Recommendation: Alter the last paragraph of the description of Documents to read as follows: Each document is part of one or more Collections (see Section 4.2). A Document has persistence by virtue of being member of a Collection, and can be accessed only as a member of a Collection. Each document is given a unique identity by its Id component and its native Collection: an Id is unique within a Collection. Alter the CopyBareDocument() description to read as follows: makes a copy of Document, including only its ExternalId and RawData, assigns a new unique Id to the copy, and places the copy in collection NewParent. The attributes and annotations of the original document are not copied by this operation. Alter the CopyDocument() description to read as follows: makes a copy of Document, including its ExternalId, RawData, attributes, and annotations, assigns a new unique Id to the copy, and places the copy in Collection NewParent. Alter the description of the Id component of a Document to read as follows: an internal document identifier, assigned automatically when a new Document is created, which is unique within the Collection in which the Document resides. Reason for Proposed Change: Currently, the Id component of a Document uniquely identifies the Document's RawData component. All other components of a Document (Parent, ExternalId, Annotations, and Attributes) can contain different values in different copies of the Document, though each of these copies will have the same Id component. Under a proposed change to Documents, the RawData component of a Document will be writable. Given this change, different copies of the same Document might have different RawData components. Therefore, the Id of a Document will no longer uniquely identify the RawData component across diffferent copies of the same Document. This proposed change is intended to avoid a situation where the Document Id does not uniquely identify anything. Under this change, each copy of a Document will have its own unique Id. The Id will therefore uniquely identify all components of a Document. In order to find the original of a copy, the application would have to add an Attribute to the copy identifying its original. This is not a significant change, as currently the copy does not automatically track the Collection in which its original is stored. This RFC also changes the nature of the uniqueness of a Document's Id component. Previously, an Id was unique within an entire Tipster system. This RFC alters this to make the Id unique within a single Collection. The purpose of this is that there is no Tipster operation to retrieve a Document given only its Id: the Document's Collection needs to be known as well. Because of this, and because Documents in different Collections will no longer have the same Id (as proposed in this RFC), having Document Id's be unique within an entire system is unnecessary. Change Evaluation: Applications Affected: Evaluator: Organization: Name: Phone Number: Date: Change Requested By: Organization: Logicon, Inc. Name: Joseph Dzikiewicz Phone Number: (703) 486-3500 x2227 Date: April 30, 1996 CCB Action: Approved Disapproved Hold Name: Title: Date: Ac Action: Approved Disapproved Name: Title: Date: