<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 free software package designed to help you with
    genealogical research. It allows you to store, edit, and research
    genealogical data using your computer. &app; is an open source
    software package, which means you are free to run it on any number
    of computers, examine the code, make changes, and redistribute as
    many copies as you like.  It is developed and maintained by a
    worldwide team of volunteers and is available at no cost from the
    project web site and from many software distributions
    
    </para> 

    <sect1 id="why-gramps">
      <title>Why use GRAMPS?</title>

      <para> 
 
      Most genealogy programs allow the researcher to input
      information related to a family tree. They can usually display
      descendant or ancestral relationships through graphical
      displays, charts, or reports. Some allow pictures or other media
      to be inserted to enhance the raw data. Most provide a means to
      include data on individuals or families that may or may not be
      related to the primary family being researched.  And they may
      include other features such as exporting or importing to and
      from other programs and printing data contained in various
      reports.

      </para><para>

      &app; has all these capabilities and more. Notably, it allows
      you to integrate bits and pieces of stray data as the arise from
      your research and put all this information in one place - your
      computer. You can then use the speed, power, and accuracy of
      your computer to store, manipulate, correlate, and analyze your
      data, rather than messing with reams of paper.

      </para><para>

      &app; has the power to let you rearrange your data in any order
      or sequence and to help you fill gaps in genealogical
      relationships.

      </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
	    accomplished.  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 a
	    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 additional 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 of 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
	    functionality. This is on both the GNOME-wide level
	    and within the &app;.  
          </para><para>
            The preferences are now properly stored 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, 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>

          The manual also provides 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, there are warnings, notifying you 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, you will be warned beforehand.
	      </para>
	  </warning>
       </para>
    </sect1>

  </preface>