How RefKeep Organizes and Stores Information

RefKeep is a tool which helps you organize and retrieve your research material efficiently. Here we look at how the various pieces of data are organized and stored by RefKeep.

Record Types

RefKeep organizes data into Records. Each Record represents a set of related information. For example, all the details about an Author (of books, papers, etc) is collected in a Record of type Author. An Author record may contain a Record of type Organization which aggregates information about the organization, say university or research lab, to which the particular author belongs. The different types of Records supported by RefKeep are described in the following table:

Table 1. Record types in RefKeep

Record TypeDescription
NoteThis type of record is used to store general notes and comments. Each Note may be associated with a Source and page numbers, which for example may indicate the page of the Journal the note was taken from.
SourceA Source record represents a "source" of information - for example books, journals, conference proceedings, papers etc. The following are the different types of sources supported by RefKeep.

Table 2. Different types of Source Records

Source Record TypeDescription
Book This represents a normal book, for example: Fundamentals of Algorithms by Cormen, Leiserson and Rivest
JournalThis represents a Journal, say Theory of Networks. A Journal record may contain zero or more JournalIssues.
Conference ProceedingsThis is used to represent the proceedings of a particular conference, say Proc. IEEE PIMRC 2004, Barcelona. Paper records can use this a Conference Proceedings record as its source, i.e. where the paper was published.
Edited Volume This represents an Edited Volume, for example, Handbook of Wireless Networks
Series This record type represents a Series, for example Springer Verlag Lecture Notes in Computer Science.
Paper This represents a research paper. The paper may have been sourced from some Book, Journal, Conference Proceedings, Series or Edited Volume.

Author This record reprsents an author or editor of a book, paper, series or edited volume. Authors may belong to a particular Organization.
Publisher This record encapsulates information about publishers of books, conference proceedings, journals, series and edited volumes.
Organization This represents the organization to which an author belongs, for example IIT Madras.
WWWLink This represents a internet link to some interesting website, for example: www.slashdot.org.

Record Collections and RefCollections

A group of records of a particular type, say Book records, is referred to as a RecordCollection of Books. A RefCollection is a collection of Record Collections, one of each of the different record types, all related to a common theme. For example, all books, notes, papers, edited volumes, and WWW Links related to the field of Wireless Networks can be collected together into a RefCollection on Wireless Networks. Records related to a very different subject, say Biology, can be collected in a separate RefCollection.

Data Storage on Disk

RefKeep stores all data in XML. The advantage of XML is that it is highly portable and readable by any external program. This means that your data stored via RefKeep can be very easily read and processed by external applications. Each RefCollection is associated with a master file with extension .rcl, say wireless.rcl. Each Record Collection is stored in a separate file with name of the form RefCollectionName_RecordType.xml, for example wireless_Books.xml for the RecordCollection of Book records.

RefKeep uses three Document Type Definitions (DTD) files to describe the format in which data is stored in the various .xml files. A copy of these .dtd files must be present in the same directory as the .xml files.

You may manually edit the .xml in any text editor. However, this is not recommended as any deviations from the DTD caused during editing will make the data unreadable by RefKeep. Manual editing is never needed - everything can be done safely through the RefKeep user interface.