Citation styles are the concern of published material, and will differ both for the medium and for the publisher. So long as the necessary information of creator, title, enclosing work (for e.g. magazine or jouranl articles), publisher (if published) or repository (if not), date, and details (like page number) are available in the citation, the style isn't very important to the reader. Publishers want all of their publications to have a consistent style and issue style manuals to help authors prepare their work.

For a computer program like GRAMPS, the goals should be to collect all of the necessary information noted above in a way that is easy for users to enter, to support evidence analysis and comparison to create "proof arguments", and to link those proof arguments to the genealogical conclusions in the database.

Workflow

Entering source information

When the end user cites a source for information, they would be prompted
with a window where they would select a main type and drill down
through subtypes, as in the first few columns of the table presentation
I've given. Once it is selected, the user will be prompted for the
required (and perhaps optional) fields specific for that type of source
reference.

The user would select the type of the source, and fill in the fields,
for L (biblio list), F (full citation), and S (short citation) at citation time. The templates I've provided would
be in pop up menus for the user to select.

comment: popup is not very user friendly, better would be a wizard button on the source editor, this lets you define the source, asks for fields, and shows the automatic citation markup based on the templates at the bottom while user adds fields. On Save, all this data is saved in the attributes as needed. To investigate if a new field is needed on source editor.

Generating citation in reports

Then, when generating a report that contains citations, the mark up
needs to be done on the fields according to the specifications in
the table method or template method I've provided. (e.g. substitute
the variables, italicize, embed with the proper punctuation, etc.
Remove optional variables (and their punctuation) if the variable
was not input. Remove privacy fields unless a privacy flag is turned
on so that things like home addresses and phone numbers of people
aren't put in reports unless you "force" it.

And the first time a citation is encountered in a report, use the
Full version (F). The second and succeeding times use the Short (S)
version. And when a bibliography is called for, use the L (List)
template for that.

template definition

The templates would be stored in an internal database, as would the
completed citations for storage and retrieval.

But, these would only be a (good) starting set. Part of the beauty
of this parametrization is that the end user can use the language
of the mark up in this table or template to define his own source
style, punctuation, field quoted or italicized, etc. So in essence,
any source output style can be accommodated, and is under full
control of the end user. Evidence Style templates can be supplied
as a starting set, not the only set. New Evidence Styles can be
added, old ones deleted or modified, as the user wishes.

Proposed changes

Proposed Interface changes

How to store the fields? Attributes in the attribute tab of source?

Proposed Report changes

Reports use the new citation style, using templates to build the citation.