Extracting Bibliographies From Freemind

2004-10-18
2013-04-11
  • Joseph Reagle
    Joseph Reagle
    2004-10-18

    http://reagle.org/joseph/blog/technology/python/freemind-extract

    Now updated!

    [[[
    2003 Dec 12 | Extracting Bibliographies From Freemind

       I've been using the Freemind mind-mapper this semester. While I'm not
       terrible fond of Java -- startup/exit are very slow and I prefer
       Python obviously -- the application is very nice. Fortunately, the
       data format is in XML, though a rather odd schema, so I can easily go
       at it with Python and xmltramp regardless.

       Freemind extract relies upon a particular patterns.xml (in tar ball
       below) and certain conventions in the mind-map to create bibtex or
       OpenOffice.org CSV files.
         * Authors are green and bound to F3.
         * Titles are navy blue and bound to F4.
         * Excerpts are blue and bound to F5.
         * Annotations are purple and bound to F6.
         * Abstracts are gray and bound to F7.
         * Citations are magenta and bound to F8.

       A citation node looks like "y=2000 p=Basic Books a=New York, NY".

       The resulting OpenOffice.org semi-colon delimited file will have this
       entry (many thanks to David Wilson for answering my many questions):

    "Lessig 2000";"1";"New York, NY";;"Lessig,
      Lawrence";;;;;;;;;;;;;"Basic Books";;;"Code: And Other Laws of
      Cyberspace";;;"2000";;;;;;;;

       The BibTex entry will look like:

    @book{Lessig2000,
       address = {New York, NY},
       author = {Lawrence Lessig},
       publisher = {Basic Books},
       title = {Code: And Other Laws of Cyberspace},
       year = {2000},
    }

       The tar file includes these utilities:
         * be.py: extract a MM from a bibtex file (dependent on bibstuff)
         * de.py: extract a MM from a dictated text file
         * fe.py: extract bibliographic data from bibliographic MM (dependent
           on xmltramp)
         * ff.py: fix the case of titles of a bibliographic MM
         * te.py: parse inconsistently formatted textual bibliographies into
           bibliographic MM (e.g., from syllabi, cb2Bib is cool too)
    ]]]