Saturday, February 18, 2017

The beginning

I have been programming with Python for almost five years while building my circuit simulator Python Power Electronics. I tried out Django a couple of times for small web related projects like creating my own blog. But mainly out of curiosity since Django is one of the most popular frameworks built using Python. And it is only obvious that Django preserves the fundamental elegance of Python in allowing a web developer to build web apps efficiently with beautiful code.

So, with an interesting idea for a web app, I am now going to dive into Django the way I did with Python. As someone who wrote a Masters and a PhD thesis, I am well aware of the mess that cross-referencing research articles causes. To describe how research progressed on the topic you are writing on requires citing publications in a number of different ways, chronologically, how they are linked together and how they differ. There are a number of software for this, so a researcher is not without any tools. But as with my circuit simulator, I would like to build an application specifically to my tastes.

So this is the plan. Many researchers in engineering and science using LaTex for documentation. Latex uses BibTex for generating bibliography. BibTex collects references in a separate BibTex file (.bib) in a special format. When I wrote my thesis, this format had to be manually prepared, which was a bit of a pain. But the advantage was that you could add any article as an item to the .bib file but only those articles will appear that have been cited in the publication or thesis that you are writing. And BibTex takes care of the order in which they appear based on the order in which they are cited. So the chances are pretty slim that you would be referring to an article that doesn't appear on your list of references or that the list of references contains articles that have never been cited.

Now, most journals will provide the citation information for publications in BibTex format. Researchers don't have to manually prepare them. You just export them from the publication link. This makes it fairly convenient to generate a long list of references as all you need to do is click on the "Export citation" button and copy the BibTex entry that appears on a new window. As an example, I could generate a list of 30 BibTex references in less than an hour while this took me days when I was writing my thesis several years back. The only drawback is that the final pdf file that is generated by compiling these list of references will not provide much insight that is useful while cross-referencing or performing literature survey.

So, my plan is to take these BibTex files and insert them in a database. For this I will use Django. So the database will have a number of fields for title, name of journal/conference, authors, year etc. Eventually, the idea is to link these publications together using several categories - chronologically, according to authors, who cited whom, who collaborated with whom etc. The results of these search strings will produce a networked list of articles that will be much more useful for writing a literature survey or while cross-referencing.

The work has already started though I am continuously learning about Django at the same time. The work will be hosted on GitHub and code with description will be posted here. So stay tuned if linked databases are something that interests you. I hope learning Django and blogging about it will be as much fun as it was with my circuit simulator.

No comments:

Post a Comment