Very cool. 

Consider posting this or a link to it on the wiki.

Adam
-----------------
Adam M. Goldstein PhD, MSLIS
--
[email protected]
http://www.shiftingbalance.org
http://www.twitter.com/z_californianus
--
http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=TSN&search_value=180621
---
Darwin Manuscripts Project
Associate Editor
http://darwin.amnh.org
----
Evolution: Education and Outreach
Associate Editor
Reviews Editor
http://evolution-outreach.com
http://www.twitter.com/EEOBlogger 

> On Mar 31, 2014, at 6:16 AM, Alejandro Erickson 
> <[email protected]> wrote:
> 
> Hi All,
> I created a BibDesk template which exports some code executable in Sage.  To 
> use it, execute the template on some BibDesk entries sorted by year, and 
> execute them in a sage notebook (e.g. online at sagenb.org).  The output is a 
> graphic with authors on the left connected by lines to their publications on 
> the right.
> 
> It is good for familiarising yourself with the authors of your bibliography.
> 
> I would be pleased to see this template added to 
> https://sourceforge.net/apps/mediawiki/bibdesk/index.php?title=Templates 
> 
> I will give it a permanent home at http://alejandroerickson.com/bibgraph
> 
> The contents of the template (as of now) are pasted below:
> ##############################################
> # BibGraph
> #
> # a BibDesk export template by Alejandro Erickson
> 
> # Created in March, 2014.
> 
> # Released under a Creative Commons License, Attribution 4.0
> # International, https://creativecommons.org/licenses/by/4.0/
> 
> # Use this at your own risk.  If your BibTeX file contains python
> # code, it may execute when you run the output of this template in
> # Sage.
> 
> # This BibDesk template works with Sage (6.1.1), which can be used
> # online at http://www.sagenb.org/ or downloaded from
> # http://www.sagemath.org/
> 
> # ABOUT: When used succesfully, this template (and your ensuing
> # labour) draws authors and references as points which are connected
> # by lines.  It should highlight prolific authors, collaborations, and
> # the chronology of an individual's work within your bibliography.
> 
> # TECHNICAL NOTE: The sage script differentiates authors and
> # publications by searching for digits in exported string.  Authors
> # with numbers in their names, or publications without years may
> # appear in the wrong place.  Additionally, if an author appears with
> # different spellings of their first names or initials, they will
> # appear twice in the graph.
> 
> # INSTRUCTIONS: For best results, sort the desired BibDesk entries by
> # date, and DO NOT SELECT ANY ENTRIES WITHOUT A YEAR.  Use this export
> # template (see BibDesk documentation).
> 
> # Copy the template output to a sage notebook worksheet and execute it.
> # If necessary adjust the step sizes
> 
> vertical_step = 40
> horizontal_step = 2000
> 
> # and perhaps the figure width and height
> 
> fig_width = 30
> fig_height = 30
> 
> # and re-execute.
> 
> ##################################
> #################################
> 
> G = Graph({<$publications>
> <$fields.Year?>
> """<$fields.Year.stringByDeTeXifyingString/>,<$fields.Title.stringByDeTeXifyingString/>,<$fields.Journal.stringByDeTeXifyingString/>,<$authors.unpunctuatedAbbreviatedNormalizedName.stringByDeTeXifyingString.@componentsJoinedByComma/>""".decode("utf-8",errors='ignore').encode('ascii',errors='ignore'):[
> <$authors?>
> """</$authors?>
> <$authors>
> <$unpunctuatedAbbreviatedNormalizedName.stringByDeTeXifyingString/><?$authors>
> """.decode("utf-8",errors='ignore').encode('ascii',errors='ignore'),"""</$authors>
> <$authors?>
> """.decode("utf-8",errors='ignore').encode('ascii',errors='ignore')</$authors?>
> ]
> </$fields.Year?>
> <?$publications>
> ,
> </$publications>
> })
> 
> L = [<$publications>
> """<$fields.Year.stringByDeTeXifyingString/>,<$fields.Title.stringByDeTeXifyingString/>,<$fields.Journal.stringByDeTeXifyingString/>,<$authors.unpunctuatedAbbreviatedNormalizedName.stringByDeTeXifyingString.@componentsJoinedByComma/>""".decode("utf-8",errors='ignore').encode('ascii',errors='ignore')<$authors?>
> ,"""</$authors?>
> <$authors>
> <$unpunctuatedAbbreviatedNormalizedName.stringByDeTeXifyingString/><?$authors>
> """.decode("utf-8",errors='ignore').encode('ascii',errors='ignore'),"""</$authors>
> <$authors?>
> """.decode("utf-8",errors='ignore').encode('ascii',errors='ignore')</$authors?>
> <?$publications>
> ,
> </$publications>
> ]
> 
> i=0
> j=0
> vDict = {}
> for v in L:
>     #This is how we differentiate between authors and publications
>     if (not v in vDict) and (len(v) == len(v.strip("0123456789"))):
>         vDict[v] = (0,i)
>         i=i+vertical_step
>     elif (not v in vDict):
>         vDict[v] = (horizontal_step,j)
>         j=j+vertical_step
> G.set_pos(vDict)  
> 
> #This is a hack to align the labels nicely.
> lDict = {}
> for v in vDict:
>     if vDict[v][0] == 0:
>         lDict[v] = v + len(v)*' ' + '.'
>     else:
>         lDict[v] = ''.join(['.',len(v)*' ',v])
> G.relabel(lDict)
> 
> import matplotlib as mpl
> mpl.rcParams['font.family'] = 'monospace'
> #mpl.rcParams['font.weight'] = 'bold'
> 
> 
> show(G.plot(vertex_size=0),figsize=[fig_width,fig_height])
> #To save to file you can use 
> #show(G.plot(vertex_size=0),figsize=[fig_width,fig_height], filename='FULL 
> PATH TO FILE.svg or .eps or .png')
> #############################
> #END TEMPLATE
> -- 
> /*********************************
> * Dr. Alejandro Erickson
> * Postdoctoral Research Associate
> * Computer Science
> * Durham University, England
> * phone: (+44) 07456794009
> * email: [email protected]
> * 
> * Research on I.N.P.U.T. (coming soon):
> * https://www.dur.ac.uk/input/
> * Buy my card game:
> * Zero sumZ
> * Zero sumZ mini
> * Artwork: Five 2-Colourings of the Petersen Graph:
> * http://alejandroerickson.com/petersen
> * Personal and Academic Homepage:
> * http://alejandroerickson.com
> *********************************/
> ------------------------------------------------------------------------------
> _______________________________________________
> Bibdesk-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bibdesk-users
------------------------------------------------------------------------------
_______________________________________________
Bibdesk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-users

Reply via email to