[pmwiki-users] Bibliographies

christian.ridderstrom at gmail.com christian.ridderstrom at gmail.com
Tue Sep 12 11:56:41 CDT 2006


On Tue, 12 Sep 2006, Tom Backer Johnsen wrote:

> John Rankin wrote:
> > On Tuesday, 12 September 2006 7:38 AM, Tom Backer Johnsen <backer at psych.uib.no> wrote:
> >> christian.ridderstrom at gmail.com wrote:
> >>> On Mon, 11 Sep 2006, Tom Backer Johnsen wrote:
> >>>
> >>>>> - clicking the link displays the full reference, in the author's chosen
> >>>>>   style
> >>> Hmm... when you say "displays the full reference".. Do you mean that the 
> >>> browser goes to the corresponding place in the bibliography, or that some 
> >>> kind of popup is shown with the full reference information?
> >> Does not really matter, at least to begin with.
> > 
> > In my head, (:cite...:) generates a link of the form
> > 
> >  ... index.php?n=Group.BibTeXPage?ref=id?action=cite
> > 
> > Click and you go to the BibTeXPage and see a nicely-formatted
> > version of the reference you cited, and only that reference.
> 
> That would be nice, but not essential to begin with.

Perhaps he thinks this case is easier to solve?

> To be selfcentered, my BibTex file would be quite small to begin with, 
> and would contain little outside what is needed for the project.

This would probably be true for me as well.

Some user cases (that doesn't actually say what should happen if you 
click on "[1]", although they should):


------------------------------------------------------------------------- 
Case 1. Single page example. Initially, I suspect that I'd simply use this 
as a convenient way of adding a bibliography at the end of the current 
page.  In this case, the same page will contain (:cite:), the bibliography 
database as well as the actual bibliography.

PageWithSimpleBib - everything in one page:
	Bla bla bla (:cite key-1 :) bla bla 
	bla bla bla
	<more text>
	
	(:if false:)
	@Misc{key-1, URI = {http://...} }
	(:ifend:)

	(:bibliographystyle unsrt :)
	(:bibliography :)

Note that I assume the following default behaviour of (:bibliography:):
* (:bibliography:) results in a bibliography, i.e. a list of citations
* (:bibliography:) uses the current page as a bibliographic database

------------------------------------------------------------------------- 
Case 2. Shared bibliography database. Eventually I get a lot of citations 
and wish to keep most of the bibliographic data in a single page instead 
of spread out. So in this case I am using the page 
Site.BibliographyDatabase for this purpose. However, I also want to be 
able to add a few citations (i.e. the details of the source) to the 
current page because right now I don't feel like adding them to 
Site.BibliographyDatabase. So I'd end up with:

PageWithAlmostSimpleBib - shared bibliography database:
	Bla bla bla (:cite key-1 :) bla bla (:cite key-2 :)
	bla bla bla (:cite unusual-key :)
	<more text>
	
	(:if false:)
	@Misc{unusual-key, URI = {http://...} }
	(:ifend:)

	(:bibliographystyle unsrt :)
	(:bibliography {$Name} Site.BibliographyDatabase:)

Site.BibliographyDatabase - home of most of the bibliography database:
	@Misc{key-1, URI = {http://...} }
	@Misc{key-2, URI = {http://...} }

Note that I'm not sure if (:bibliography:) by default always should look 
in the current page for BibTeX data, so I explicitly name both the current 
page and the page Site.BibliographyDatabase.


------------------------------------------------------------------------- 
Case 3. Rendering the bibliography database. As I get more and more useful 
citations in the bibliography database, I probably want to be able to see 
the entire bibliography database. That could simply be done like this 
inserting a few commands in the page with the database:

Site.BibliographyDatabase:
	(:nocite *:)

	(:if false:)
	@Misc{key-1, URI = {http://...} }
	@Misc{key-2, URI = {http://...} }
	(:ifend:)

	(:bibliographystyle unsrt :)
	(:bibliography {$Name} :)

Note the (:nocite *:) which pulls all the citations from the database into 
the bibliography.


------------------------------------------------------------------------- 
Case 4: Shared bibliography between pages in a group. This example is 
based on the idea that all the pages in a group together comprise an 
article or perhaps even a book. For this reason, we want to let all the 
pages in the group have a common *bibliography* (as well as the 
bibliography database). Let's say that the pages with actual text are 
called Page1, Page2, .. PageN. We could pretend that PageX corresponds to 
section X. In addition, let's say we have a trail page called Pages that 
list the pages comprising the book. The bibliography should be shown on a 
page called Bibliography. These will be the important pages:

* Pages - the trail page
* Page1 - 1st page
* Page2 - 2nd page
* ...
* PageN - Nth page
* Bibliography - page with the bibliography
* Site.BibliographyDatabase - bibliography database (in another group,
  although for a book it might make more sense to keep it here).
* GroupHeader - used to insert directives that are common

Note that sharing a bibliography means that "[1]" should refer to the same 
source regardless of which page "[1]" appears on. In other words, the 
number within the brackets may depend not only on the current page, but 
also on the other pages that share the bibliography. In case it's unclear, 
let me give an example: Let us assume we are ussing an unsorted 
bibliography style, i.e. references should be numbered in the order that 
they appear. However, this assumes that pages are ordered... In this 
example it makes sense that the first reference on Page1 will be [1], the 
second will be [2]. And if the last reference on Page1 is [n], then the 
first reference on Page2 should be [n+1]. It should now be obvious that if 
someone adds a reference to Page1, the first reference on Page2 might get 
a new number.

Ok, moving along to the possible content on the pages... Let's use the 
group header to define things common to all the pages, where I pretend 
that the option "BibPage=Bibliography" keeps (:bibliography:) from 
displaying itself as a bibliography. Instead, this will let the 
(:cite:)-directives know where to find the bibliography and the 
bibliography database.

GroupHeader:
	(:bibliographystyle unsrt:)
	(:bibliography Site.BibliographyDatabase BibPage=Bibliography :)

Pages:
	Below is a list of related pages:
	* [[Page 1]]
	* [[Page 1]]
	...
	* [[Page N]]

I use the page "Pages" to define the pages that are kept together in this 
collection. This page will referred to by the page with the bibliography.

Page1:
	Bla bla bla  (:cite key-1 :) and ... (:cite key-2 :)

Page2:
	Bla bla bla bal (:cite key-2 :) and ... (:cite key-1 :)

...
PageN:
	...

Bibliography:
	(:bibliographystyle unsrt :)
	(:bibliography Site.BibliographyDatabase trail=Pages :)

Site.BibliographyDatabase:
	(:if false:)
	@Misc{key-1, ... }
	@Misc{key-2, ... }
	(:ifend:)

I don't think I've got a good markup solution for this last case, nor am I 
sure all the pages have all the information the directives need.

For instance, maybe it would be better to use an indirect scheme like this 
instead:


------------------------------------------------------------------------- 
Case 5: Shared bibliography between pages in a group, indirect definition 
of bibliography database. This is a modified version of user case 4 (see 
above).

I will pretend as before that the option "BibPage=Bibliography" to the 
directive (:bibliography:) keeps the bibliography from being shown. The 
purpose of (:bibliography:) is just to let the (:cite:)-directives know 
where to find the bibliography. In addition, I now assume that the 
(:cite:)-directives will go and "ask" the bibliography (i.e. the page 
Bibliography in this case) about where to find the bibliography database.
Also note that the (:cite:)-directives need to ask not only about the 
bibliography database, but also what the link text should be... and this 
requires knowing what references have been used on the "previous" pages.

GroupHeader:
	(:bibliographystyle unsrt:)
	(:bibliography BibPage=Bibliography :)

Pages:
	Below is a list of related pages:
	* [[Page 1]]
	* [[Page 1]]
	...
	* [[Page N]]

Page1:
	Bla bla bla  (:cite key-1 :) and ... (:cite key-2 :)

Page2:
	Bla bla bla bal (:cite key-2 :) and ... (:cite key-1 :)

...
PageN:
	...

Bibliography:
	(:bibliographystyle unsrt :)
	(:bibliography Site.BibliographyDatabase trail=Pages :)

Site.BibliographyDatabase:
	(:if false:)
	@Misc{key-1, ... }
	@Misc{key-2, ... }
	(:ifend:)


Bah... this is getting complicated, but at least I think we are getting 
somewhere. And as John said before, we shouldn't try and implement all of 
this at once.

/C

-- 
Christian Ridderström, +46-8-768 39 44               http://www.md.kth.se/~chr


More information about the pmwiki-users mailing list