<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>GRAMPS is a software package designed for genealogical
    research. Although similar to other genealogical programs, GRAMPS
    offers some unique and powerful features, which we'll discuss
    below. </para>

    <para>GRAMPS is a Open Source Software package, which means you
    are free to make copies and distribute it to anyone you like.
    It's developed and maintained by a worldwide team of volunteers
    whose goal is to make GRAMPS powerful, yet easy to use.</para>

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

      <para>Most genealogy programs allow you to enter information
      about your ancestors and descendants. Typically, they can
      display family relationships through charts, graphs, or
      reports. Some allow you to include pictures or other media. Most
      let you include information about people even if those people
      are not related to the primary family you happen to be
      researching. And they may include features that let you exchange
      data with other programs and print different types of
      reports. </para>

      <para>GRAMPS has all these capabilities and more. Notably, it
      allows you to integrate bits and pieces of data as they arise
      from your research and to put them in one place -- your
      computer. You can then use your computer to manipulate,
      correlate, and analyze your data, rather than messing with reams
      of paper. </para>

    </sect1>
    
    <sect1 id="whats-new">
      <title>What's new since 1.0.X</title>

      <para>If you are new to GRAMPS, it may not be important for you
      to know how GRAMPS version 2.0.0 (the object of this manual)
      differs from previous versions of the software. You may
      therefore elect to skip this section.</para>

      <para>However, if you are already familiar with GRAMPS and are
      interested in the new aspects and features of version 2.0.0,
      please read on.</para>

      <variablelist>

      <varlistentry><term>Berkeley database backend</term>
	<listitem>

  	  <para>We've adopted the Berkeley database format (BSDDB) as
	  the default for GRAMPS. Berkeley is the most widely used
	  open source developer database in the world.</para>

	  <para>This change allowed us to overcome issues of
	  performance and memory requirements that beset version
	  1.0.X. With the new back-end, database sizes of up to a
	  hundred thousand people no longer present a major
	  obstacle.</para>

	  <para>The default extension for GRAMPS' BSDDB database files
	  is grdb. The new format is open and fully documented in the
	  developer's API reference distributed with the source code
	  of GRAMPS. </para>

	  <note id="default-format">
	    <title>Preferred format</title> 

	    <para>The preferred and default format for &app; is the
	    new BSDDB format.</para>
	  </note>

	  <para>A consequence of the new database back-end is that the
	  &quot;saving&quot; function is no longer necessary (or even
	  possible). Now, once you approve changes, they are
	  immediately applied; this means that clicking
	  <guibutton>OK</guibutton> in the Person, Family, Source,
	  Place, Media object, or Event editor immediately records
	  changes to the database. </para>

	  <para>In previous versions, you could &quot;quit without
	  saving.&quot; This option no longer exists per se; however,
	  in version 2.0.0, you can achieve the same effect if you
	  abandon or &quot;cancel&quot; all changes and then
	  quit.</para>

	  <para>Also, it is now possible to undo recent
	  actions.</para>
	</listitem>
      </varlistentry>

      <varlistentry><term>Other database back-ends</term>
        <listitem>
	
	  <para>Along with the BSDDB backend, we've incorporated
	  &quot;in-memory&quot; database handling for the GRAMPS XML
	  and GEDCOM formats. This means you can now open files in
	  those two formats and work with their data without having to
	  first create a new database and import data into it. Since
	  this approach requires GRAMPS to hold all the data in
	  memory, it is only useful for small databases (depending on
	  available memory size).</para>

	  <warning id="gedcom-editing">
	    <title>GEDCOM Editing</title> 

	    <para>Please keep in mind that some information in a
	    GEDCOM file may be lost during import into GRAMPS. Simply
	    opening and viewing the file will not change it. However,
	    if any changes were made and they were not abandoned upon
	    exit, exiting GRAMPS will save the data, with the possible
	    data loss.</para>
	  </warning>

	</listitem>
      </varlistentry>

      <varlistentry>
        <term>Desktop integration</term>
	<listitem>

	<para>We've improved the way GRAMPS integrates with the GNOME
	desktop interface common to many Linux distributions. All file
	formats recognized by GRAMPS are now registered as mime types;
	each has its own icon and has GRAMPS as its default
	handler. Thus, if you double-click on any file having one of
	these formats, GRAMPS will launch and open the file.</para>

	<para>We've also added support for GNOME's &quot;recent
	documents&quot; function and have incorporated this function
	within GRAMPS itself.</para>

	</listitem>
      </varlistentry>

      <varlistentry>
        <term>Interface improvements</term>
	<listitem>

	<para>We've made numerous changes in the interface. Most of
	them are subtle and incremental improvements, and all of them
	cannot be listed here. The most notable are:</para>

	<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 the Save function and addition of Undo.</para>
	  </listitem>
	  <listitem>
	    <para>Proper window management.</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>Addition of an Export wizard.</para>
	  </listitem>
	  <listitem>
	    <para>Built-in Find function in list views.</para>
	  </listitem>
	  <listitem>
	    <para>Addition of a Date selector dialog.</para>
	  </listitem>
	  <listitem>
	    <para>Name editor enhancements: patronymic names and
	    non-default grouping.</para>
	  </listitem>
	  <listitem>
	    <para>&quot;Recent document&quot; support (both within GRAMPS and 
	    GNOME-wide)</para>
	  </listitem>
	</itemizedlist>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>Import and Export</term>
	<listitem>
	  <para>We've added import and export filters for the GeneWeb format.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>Reports</term>
        <listitem>
	<itemizedlist>
 	  <listitem>
  	    <para>We've added a new report: Statistics Chart. </para>
	  </listitem>
	  <listitem>
	    <para>We've changed the overall report framework. All
	    reports now remember the options you configure for
	    them.</para>
	  </listitem>
	  <listitem>
	    <para>It is possible to generate reports from the command
	    line, without launching an interactive GRAMPS
	    session.</para>
	  </listitem>
	  <listitem>
	    <para>The report API is much simpler now, making it easy to
	    write custom reports.</para>
	  </listitem>
	  <listitem>
	    <para>A single code instance may be used for a standalone
	    report, a book item, and a command-line report. </para>
	  </listitem>
	</itemizedlist>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>Internationalization</term>
	<listitem>
	  <para>The approach for entering and displaying dates has
	  been completely reworked. 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 has also been
	  improved. Names can be grouped under a non-default
	  string. Patronymic names are supported, and it is easy to
	  program new ways to display names in the manner customary to
	  a given culture or language.</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>
