[Refdb-devel] jEdit interface to RefDB
Status: Beta
Brought to you by:
mhoenicka
From: Damien J. D. <D.J...@cs...> - 2006-06-23 11:56:39
|
Hello all I am planning to make some improvements to my basic jEdit RefDB interface and since maybe one day this might be useful to someone else, I think I'm justified in seeing if anyone wants to comment before I get up to my armpits in the technical details of java GUI building. If you're interested in jEdit GUIs for RefDB, read on. At the moment all I have is a hacked-together jEdit dockable that allows me to add references and notes in bibtex, ris, risx, update them in ris or risx, delete them by id, get lists of them via a search field, etc. as well as dumping an risx template to the editing buffer. It calls refdbc directly and passes and retrieves info through the command-line, STDOUT, STDIN, STDERR, etc. However, I have a sizeable number of references (about 120) in the system now and my interface is too clunky. It takes a few seconds to pull back all the references from my local postgresql db, no matter the format, so I'd like to have a way of browsing the references in an easier, faster and more intelligent way. Also, linking references and notes is a bugger because I've got to remember the keys of each one, etc. Optimally I'd like to be able to jump to a reference and start entering notes on it, linking it to other references and notes, etc Essentially, I want to be browsing a visual structure of references and notes, like a tree (as with the BufferList plugin or something similar). Incidentally, in order to create links directly between xnotes at present I would have to create dummy references for these to point to. Is this sensible, or am I trying to push the system too far? (i.e. as well as keeping a bibliography I want to use the system to keep notes and it seems nearly adapted to this in structure). Whaddya reckon? Anyway, I think I have two ways forward - a tightly-coupled approach where I get small chunks of info back from refdbc only when I need it, and a loosely-coupled approach where I download a whole bunch of barely pre-filtered info from refdbc into jEdit memory space and make some effort to keep it synchronised. The former has the advantage that it doesn't stretch jEdit's memory and is has a reasonably straightforward partial-synchronisation strategy. But it means that I need to impose more structure on my reference database so that I can browse it in a local fashion. refdbc does provide a facility for extracting the author list, keyword list, journal list, etc though unfortunately there is no facility for an anadorned list of citation keys or note keys (I could probably figure how to do this even though c gives me a headache, but perhaps it could be included in the next release...? Also, presumably titles are not indexed fields). I _think_ refdb should be fast enough if I choose my methods of data extraction right. The latter has the advantage that I can do quick searches through the data locally without requiring too much structure in the database (e.g. title, keyword, author searches). Essentially I can do what I want with the data. But a lot of the data needs to be kept in jEdit memory space, and if I want to produce something that is scaleable to industrial operations it may not be perfect (should I care about this?), and it somewhat defeats the purpose of keeping them in a database since I could've just read it all in from a flat file. Ultimately, the former is an alluring option because it absolutely forces me to add some more structure to my DB, which I see happening by exploiting the xnotes facility and exploiting the keyword facility in a more disciplined way (e.g. rather than adding the keywords "genetic programming", and "example source", I add the keywords "entered for/example source", "subject/genetic programming"). But the latter is going to be faster to use. Any ideas would be welcome. However I do this part, the visible result will be a jEdit dockable that contains a tree of references and notes. Filtering is possible, as well as changing which tree model is displayed (e.g. by author last-name or title or keyword, or, best, by citation key, if we can change refdbc to dump an anadorned list of citation keys). Adding of links should be a case of selecting multiple items and clicking "Link" (probably a context-sensitive menu). Actual editing of entries is still done using the jEdit XML tool validating against the risx dtd, or via plaintext RIS or bibtex mode (though only for new entries). Note, also, I have no current plans to integrate any of this with docbook or latex because I don't use docbook and because the command-line latex tools are sufficient at present (though of course facilities for copying citation keys to the clipboard are easy enough to do). Anyway, I've rambled on enough. If you want some input into this project, or you just have some half-baked ideas, please post back to the list. If someone has already made a start on something I'd like to hear more about it. At my expected rate of progress, I don't anticipate having anything worth sharing for some time (maybe 6 months). Peace Damien |