<preface id="gramps-preface">

<!--
	  User Manual for Gramps - a GTK+/GNOME based genealogy program

	  Copyright (C) 2003-2005  Alexander Roitman

	  This document is free software; you can redistribute it and/or modify
	  it under the terms of the GNU General Public License as published by
	  the Free Software Foundation; either version 2 of the License, or
	  (at your option) any later version.

	  This document is distributed in the hope that it will be useful,
	  but WITHOUT ANY WARRANTY; without even the implied warranty of
	  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	  GNU General Public License for more details.

	  You should have received a copy of the GNU General Public License
	  along with this program; if not, write to the Free Software
	  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-->

<!-- $Id$ -->

    <title>Preface</title> 
    <para> &app; is a genealogical 
    application. &app; is an acronym for the 
    Genealogical Research and Analysis Management Programming System. To put 
    it shortly, it allows you to store, edit, and research genealogical data 
    using your computer. Its functionality is somewhat common to other 
    genealogical programs. However, &app; offers some unique features. </para> 

    <sect1 id="why-gramps">
      <title>Why GRAMPS?</title>
      <para> &app; was conceived under the concept
      that most genealogy programs were designed to provide the researcher the 
      capability to input information related to a particular family tree.  
      Most of these programs have allowed for the arranging and storing of
      information consistent with the GEDCOM standards. They usually provide
      means for displaying descendant or ancestral relationships by means of
      graphical displays, charts, or reports.  These may be augmented with 
      pictures or other media to enhance the data.  Most provide for inputting 
      data on unconnected individuals/families that may or may not have a 
      relationship to the primary surname being researched.  Various other 
      enhancements may also be provided in the genealogical program that 
      allows for different degrees of importing and exporting data from other 
      programs and printing the data contained in the various reports. </para>
      
      <para> &app;, on the other hand, attempts to
      provide all of the common capabilities of these programs, but, more
      importantly, to provide an additional capability of integration not common
      to these programs.  This is the ability to input any bits and pieces of
      information directly into &app; and
      rearrange/manipulate any/all data events in the entire data base (in any
      order or sequence) to assist the user in doing research, analysis and
      correlation with the potential of filling relationship gaps.  In short, it 
      is a tool that provides a way to input all your research into one place and 
      do your analysis and correlation using the speed, power, and accuracy of 
      your computer instead of pencils and unmanageable reams of paper. </para>
    </sect1>
    

    <sect1 id="whats-new">
        <title>What's new since 1.0.X</title>
        <para>This section lists most notable changes from the previous stable branch of 
        &app;, the 1.0.X.</para>

      <variablelist>

      <varlistentry><term>Berkeley database backend</term>
	<listitem><para>The default format for &app; is now the BSDDB database.
    This change allowed us to overcome performance issues and memory
    requirements of the 1.0.X branch. With the database backend, the database
    sizes of up to a hundred thousand people do not
	present a major obstacle any longer.</para>
	
	<para>
	The default extension for &app; BSDDB database files is grdb. The new format is open and
	fully documented in the developer's API reference distributed with the source of &app;.
	</para>

	<para>A consequence of the new database backend is that the changes, once approved
	by the user, are applied immediately. In short, once you click <guibutton>OK</guibutton> 
	in the Person, Family, Source, Place, Media object, or Event editor, all the changes made to 
	this object are recorded in the database. No saving is necessary (or even possible). The analog 
	of quitting without saving would be abandoning all changes and quitting. Also, it is possible 
	to undo recent actions.
	
	</para>
	</listitem>
      </varlistentry>

      <varlistentry><term>Interface improvements</term>
	<listitem><para>
	There were numerous changes in the interface. Most of them are subtle and incremental 
	improvements, and all of them cannot be listed here. The most noticeable changes are:
	<itemizedlist>
	<listitem><para>Removal of alphabetical tabs</para></listitem>
	<listitem><para>Ability to add/remove/rearrange columns in list views</para></listitem>
	<listitem><para>Removal of Save function and addition of Undo</para></listitem>
	<listitem><para>Proper window management and removal of most modal windows</para></listitem>
	<listitem><para>Support for Tip of the Day</para></listitem>
	<listitem><para>Person-dependent context menus (right-click) in Pedigree View
	listing parents, children, spouses, and siblings</para></listitem>
	<listitem><para>Export wizard</para></listitem>
	<listitem><para>Built-in Find function in list views</para></listitem>
	<listitem><para>Date selector dialog</para></listitem>
	<listitem><para>Name editor enhancements: patronymic names and non-default grouping</para></listitem>
	<listitem><para>Recent file support (both gramps-specific and gnome-wide)</para></listitem>
	</itemizedlist>	

	</para></listitem>
      </varlistentry>

      <varlistentry><term>Other database backends</term>
	<listitem><para>
	Along with the BSDDB backend, the in-memory database handling for &app; XML and 
	GEDCOM formats has been added. Simply put, it is now possible to natively open data
	in those two formats (although the preferred and default format is grdb) and work with
	that data, without necessarily setting up an empty database and then importing into it.
	This approach requires holding all data in memory, so it is only useful for small databases
	(depending on the available memory size). In such mode, the data is automatically
	saved upon exit, to mimic the functionality of the real database.

           <warning id="gedcom-inmem1-warn">
               <title>GEDCOM Editing</title>
	      <para>
		Please keep in mind that some information in GEDCOM file may be lost
		during import into &app;. Simply opening and viewing the file will not change it.
		However, if any changes were made and they were not abandoned upon exit,
		exiting &app; will save the data, with the possible data loss.
	      </para>
           </warning>                

	</para></listitem>
      </varlistentry>

      <varlistentry><term>Import and Export</term>
	<listitem><para>
	New import and export filters available for the GeneWeb format.
	</para></listitem>
      </varlistentry>

      <varlistentry><term>Reports</term>
	<listitem><para>
	A new report -- Statistics Chart -- has been added to &app;.
	</para>

	<para>An overall change of the whole report framework has been acomplished. 
	All reports now remember their options. It is possible to generate reports from the command
	line, without launching the interactive &app; session. The report API is much simpler now,
	making it easy to write custom report. A single code instance may be used for a standalone
	report,	a book item, and a command-line report. </para></listitem>
      </varlistentry>

      <varlistentry><term>Command line</term>
	<listitem><para>The new command line functionality includes opening the filename
	argument	given without any flags, as well as new flags and options for report generation.
	Also, the addition of new formats leads to addition of available format options.
	</para></listitem>
      </varlistentry>

      <varlistentry><term>Internationalization</term>
	<listitem><para>
	The approach for entering and displaying dates has been completely
    re-worked. In particular, the new framework allows for a deeper
    localization of displayed dates than was ever possible using the
    translatable strings.</para>

	<para>The internationalization of names have also been improved.
    Names can be grouped under a non-default string. Patronymic names are
    supported, and it is easy to program new ways on displaying names, as
    may be required by various cultures	and languages.
	</para></listitem>
      </varlistentry>

      <varlistentry><term>Desktop integration</term>
	<listitem><para>All formats known to &app; are now registered as mime types, each
	with its icon and &app; as a default handler. Double-clicking on a file with any of these
	formats will launch &app; and open that file. &app; also added support for the recent
	documents functinonailty. This is on both for the GNOME-wide level and within the &app;.
	</para>
	<para>The preferences are now properly store using GConf, with schemas, partitioning
	of keys into smaller directories, error checking, and notification. </para>
	</listitem>
      </varlistentry>

      </variablelist>
    </sect1>


    <sect1 id="typography">
        <title>Typographical conventions</title>
	<para>
          In this book, we some words are marked with special typography:
          <itemizedlist>
	    <listitem><simpara><application>Applications</application></simpara></listitem>
	    <listitem><simpara><command>Commands</command> you type at the command 
            line</simpara></listitem>
            <listitem><simpara><filename>Filenames</filename></simpara></listitem>
            <listitem><simpara><replaceable>Replaceable text</replaceable></simpara></listitem>
	    <listitem><simpara><guilabel>Labels</guilabel> for buttons and other
             portions of the graphical interface</simpara></listitem>

            <listitem><simpara>Menu selections look like this:
                       <menuchoice>
                          <guimenu>Menu</guimenu>
                          <guisubmenu>Submenu</guisubmenu> 
                          <guimenuitem>Menu Item</guimenuitem>
                     </menuchoice>
            </simpara></listitem>
	    <listitem><simpara><guibutton>Buttons</guibutton> you can
            click</simpara></listitem> 
            <listitem><simpara><userinput>Anything you type
            in</userinput></simpara></listitem>
	 </itemizedlist>
        </para>

        <para>
        We also provide assorted bits of additional information in tips 
        and notes, as follows. 

	  <tip id="example-tip">
	      <title>Tip</title>
	      <para>
		Tips and bits of extra information will look like
		this.
	      </para>
	    </tip>
          
           <note id="example-note">
               <title>Note</title>
	      <para>
		Notes will look like this.
	      </para>
           </note>                
         </para>

        <para>
         Finally, we have warnings, in cases where you should be careful:

	    <warning id="example-warning">
	      <title>Example Warning</title>
	      <para>
		This is what a warning looks like. If there's a chance
		you'll run into trouble, we'll warn you beforehand.
	      </para>
	  </warning>
       </para>
    </sect1>

  </preface>
