How to link to the SCG Bibliography

Embed a query input

You can add a text input field to query the SCG bib anywhere as follows:


Link to an entry

You can link to an scg bib entry by copying the base url of a query result from the SCG Bibliography. You can remove the Seaside session gunk if you want, but it is not necessary. For example:

*Traits theses>*

yields: Traits theses

Within the scg pier, you can also remove the http://... stuff, but then you must use wiki notation for the parameters, as follows:

*Traits theses>/scgbib|query=traits thesis*

yields: Traits theses

Various parameters can be configured. The query field may be either a set of keywords that must be present, or a regular expression. (The query engine makes an educated guess which it is, and reverts to keywords if the supposed regex does not compile.) Note that regexes are slower than to match than keywords. The following parameters can be set:



*Traits theses bibtex>/scgbib|query=traits thesis|display=bibtex|hideControls=true*

Traits theses bibtex

Fixed Queries

To embed the result of a query, another approach is needed, since scgbib query results cannot be directly embedded.

One approach is to create a Component subpage of type Fixed Query, fill in its parameters as required, and then embed that page wherever you like. An example is the SCG Publications page.

Even simpler, you may link to the existing fixed query page and override its parameters as follows:


which yields:

Sort by: Display: Hide controls:

  1. Stéphane Ducasse, Oscar Nierstrasz, Nathanael Schärli, Roel Wuyts, and Andrew P. Black. Traits: A Mechanism for fine-grained Reuse. In TOPLAS: ACM Transactions on Programming Languages and Systems 28(2) p. 331—388, March 2006. DOI PDF 

NB: Escaped or-bars can now be used within queries, so you can write:


  1. Robin Milner. A Calculus of Communicating Systems, LNCS 92, Springer-Verlag, 1980. 
  2. Robin Milner, Joachim Parrow, and David Walker. A Calculus of Mobile Processes, Part I/II. In Information and Computation 100 p. 1—77, 1992. 

Author Pages

Fixed queries should suffice for most needs. To generate a personal publication list, however, a naive query may also return papers authored by other people appearing in a volume edited by the person in question. An author query will return just those entries for papers authored by that person, plus entries for volumes edited by that person, but with no author field. To achieve this, the query field is first used to retrieve all candidate entries. Then a second regex parameter is used to match exactly the author field or the editor field without authors.


For example:




  1. Walter Olthoff (Ed.). Proceedings of the ECOOP'95 European Conference on Object-Oriented Programming, LNCS 952, Springer-Verlag, 1995. 

Refereed Papers in International Journals

  1. Walther Olthoff and James Kempf. An Algebraic Specification of Method Combination for the Common Lisp Object System. In Lisp and Symbolic Computation 2(2) p. 115—152, June 1989. 

Refereed Papers in International Conferences

  1. Peter S. Canning, William Cook, Walter L. Hill, John C. Mitchell, and Walter G. Olthoff. F-Bounded Polymorphism for Object-Oriented Programming. In Proceedings of the ACM Conference on Functional Programming and Computer Architecture, p. 273—280, September 1989. URL 
  2. Peter S. Canning, William Cook, Walter L. Hill, and Walter G. Olthoff. Interfaces for Strongly-Typed Object-Oriented Programming. In Proceedings OOPSLA '89, ACM SIGPLAN Notices, 24 p. 457—468, October 1989. 
  3. Walter G. Olthoff. Augmentation of Object-Oriented Programming by Concepts of Abstract Data Type Theory: The ModPascal Experience. In Proceedings OOPSLA '86, ACM SIGPLAN Notices, 21 p. 429—443, November 1986. 
In this case the query and the author regex are the same, but they need not be. You may also create a dedicated component of type Author Page and configure it as you like. See, for example: Oscar Nierstrasz — Publications.

Detecting Missing Information

Missing Information is another special query component intended for maintenance purposes. Here the additional parameter is a regex specifying information that each entry matching the query is also expected to match.


In most cases the regex required is a or-query. Here are several prepackaged queries:

NB: Now that Pier supports escaped or-bars within queries, a fixed query can be used instead of this component.


The source code resides at in the package Citezen-Pier. Model classes are shown below in yellow, view classes in pink, Pier/Seaside classes in blue, and Citezen/Magritte classes in green.

A BibFile is a Pier Structure pointing to a bibtex file on the server. It holds a timestamp noting the last time the file was loaded. If the file changes, it will be reloaded. There should be just one BibFile per bibtex file. The BibFile splits the bibtex file (via a MAReferenceFileModel) into a BibList of BibEntry objects, each of which holds the text of a single bibtex entry. A BibEntry will lazily generate a parsed Citezen CZEntry if it is needed, i.e., to be rendered.

A BibFile is rendered by a BibFileView. The scgbib on this site is rendered at SCG Bibliography. This interface generates a QuerySpec, which holds all the query parameters and evaluates the query to produce a QueryResult, which is rendered by the various interfaces. Note that a BibFileView is a kind of Pier component that cannot be embedded, which is why we need the other view classes.

A QueryBox is a simple widget that displays an input box and forwards its result to the BibFileView.

A FixedQuery can be used to configure a fixed QuerySpec. Note that the QueryResult has a timestamp too, so it will only be reevaluated if the bibtext file changes. AuthorPage and MissingInfoPage provide additional parameters to AuthorQuerySpec and MissingInfoSpec for complex queries described earlier.

Pier Bib UML

See also: Pierbib Requirements

Last changed by admin on 21 April 2009