From: Alan A. <al...@ru...> - 2003-02-02 04:45:45
|
Bruce, > I've raised this question in another context, but since it seems people > are working on improved GUI clients for RefDB, I'll raise it here: > > How are you guys designing the entry forms? It seems to me there are > two possible approaches: > > 1) Just a straight representation of RIS (and in the future BibX). > > 2) Introduce an abstraction, such that you have reference type > specific field names that map onto the underling data model. > > To understand the difference, say you want to enter a movie. In the > first, you would use a field called "author" to enter the director. In > the second, you'd use a field called "director." This would be > particularly important for things like legal citations and such. What I've done is a simple abstraction. The form creation is customizable (although you'll need to edit the Perl at this time) and one specifies the RIS field and a textual description used on the form. One can specify as many or as few fields as desired and the order they are displayed in the form. My intention was to avoid requiring an understanding of RIS for the users. The important example for me is a conference proceeding. The user needs to specify a title for the paper, a conference title, authors for the paper and editors for the conference proceedings. I always forget whether the editors are A2 or A3, so I wanted a way to set this one time and not have to worry about it again. The customization simply states that A3 is to be displayed as "Editor(s)", so the user never even knows that what is entered relates to RIS. Hopefully, they'll never have to know what RIS is unless they need to do something speciallized. > Or a perhaps more important example: a reference that is not covered by > existing types. In the second example, you could set up a custom > template to represent that, while still using the existing RIS data > model. Couldn't this get confusing if you are using a type, eg. CONF, for both conference proceeding and something not yet defined as a RIS type? If records exist for both types a user (and certainly a "poorly" designed program) could be confused by the results of a query. Is there an "unknown" or "general" type in RIS? > The first is easier to program, the second probably more intuitive and > flexible from a user standpoint (and is also how Endnote and other > commercial products work). I might argue whether the second is harder to program. As an OOP believer, I see this as a typical use of polymorphism. One defines an abstract interface for data retrieval from the form, and each type simply needs to follow the defined interface, but is allowed to present it to the user in whatever way they see fit. I'm not really using an OOP environment, so this doesn't apply to my Perl GUI attempt, but if I were to attempt this from Java or C++ (and possibly PHP), I certainly would take this approach. My two cents worth... Thanks for the input. Al |