Sample scripts for DT to OmniOutliner

I want to experiment with some note taking in OO. Does anyone have some sample applescript snippets for moving data into OmniOutliner? Perhaps Charles Turner?

My plan is to use mutiple columns in OO. A main content column, then some metadata columns to hold things like Tags, a link back to DT, and a link to a PDF (filesystem or Bookends/Sente).

(I don’t think that a DT to OPML approach fits my needs).




This last comment seems to contradict your previous statement. I’ve got stuff, although a lot is written in Ruby (I think).

Maybe you could say more about your goals?

Best wishes, Charles

I am still struggling with how to best bridge DT with other applications that leverage the strengths of each: manage scientific literature (PDFs), capturing notes, and eventually composing a document with a formatted bibliography.

Like many others dealing with this workflow issue, I want:

The organization, indexing, and search facilities of DT.
The PDF retrieval, citation, and bibliography features of Bookends (or Sente).
The ability to easily capture notes from scientific literature, mostly PDFs, often the current text selection.
The ability to associate some metadata with those notes.
To have those notes indexed and searchable from within DT.
The ability to easily navigate back to the source reference from within DT (linking).
The ability to aggregate notes into a document with citation markers intact so that a formatted bibliography can be generated (Bookends or Sente).

On the one hand, the built-in note taking features of Sente are convenient, but I want these notes available in DT and I think the round-tripping to DT with scripts is still cumbersome (correct me if that has changed). I also want to tag my notes with some metadata, which could be done with YAML within DT as you have shown, perhaps in combination with the Annotate script. But I don’t want to learn another syntax or deal with additional typing. Another option would be to create the notes in OmniOutliner, where the multi-column features and hierarchical organization are great advantages. Unlike Sente or Bookends records, the OO file can stored and indexed within DT. When it is time to create the larger document, the OO content can be exported. (I don’t have a good feel for how an OPML based approach fits into a workflow).

Note: I have been using Bookends for several months. I keep all PDFs in a single folder, I have that folder indexed in a DTPro database file dedicated to just those PDFs, with the Synchronize script attached.

My available software: DT Pro, OmniOutliner, Skim, Bookends (Sente if necessary), Apple’s Pages, MS Word, Mellel.


The first thing I’d say is that this project is one of compromise; you won’t get a seamless workflow, if only because not all of those programs support Applescript. Sente and Bookends are a problem there, and I use Bibdesk as a result.

Also, as I work in the humanities, the ability to search for papers on the Internet through my bibliographic tool is pretty limited. The bulk of my research is scanned from books and journals via xeroxes. The other parts are online databases (JSTOR, etc.) and hand-typed notes.

The other problem is metadata. You could store it in a DTPO sheet, and perform certain operations on it via Applescript, but quick sorting is an issue. OmniOutliner is pretty wonderful, but it’s lack of aliases is a real minus for me. After Tinderbox finally moved to Unicode, I was right back with it. In spite of its flaws, there really isn’t anything like it. I find I don’t have much need to search my notes in DTPO once they’re in Tinderbox (and structured via metadata), but I do go back to DTPO (and the “raw” data) often to see if I’ve missed something.

My components now are: DTPO, Skim, Bibdesk, Tinderbox, TextMate, MultiMarkdown, and a LaTeX system that includes: XeLaTeX, Memoir class, Biber and chicago-biblatex-df style, a complete UTF-8 typesetting path.

I also think that Mark Bernstein’s idea of “gardening” is the right approach. Organize and invent stuff when you need it. I can’t tell you how much scripting I’ve thrown out as unnecessary once I got down to really using it. Right now I’m scripting in Python, only because I was doing other work in that language, and didn’t want to confuse Ruby with it. Moving away from Applescript is a profound improvement, and I’m surprised that people won’t switch over in spite of the torture of that language.

Anyway, I put a rat’s bag of stuff here:

(EDIT. Maybe you haven’t seen these:)

which you may find of interest.

My post’s a bit disjointed, but I’d be happy to continue the conversation.

HTH, Charles

Can you say more about aliases in OmniOutliner? What specifically is not feasible in your workflow? Have you heard anything interesting about what is to come with version OO version 4?

I haven’t looked at Tinderbox in a few years, and it seemed quite deep at that time. Since you are still using DT Pro, what does it offer to the mix that Tinderbox doesn’t cover?

I admit that I also greatly dislike AppleScript. But I have not invested in learning another scripting language that has a bridge to Apple Events for communicating with apps. Should just buckle down and pick up Python.

I have not explored the links you provided. Unfortunately my laptop SSD went south last week and I am still dealing with some tough consequences.

– mpm

Here’s an example: Right now I’m working with primary material to construct an historical biography. I need to look at material sorted by date. I have material of varying value to the remainder of my dissertation: some conceptually important, some just a note that my subject signed his sketches in Tokyo or Bloomington. So with aliases, it’s easy to have a “full” chronology, and in another place, the more significant material. Further, when I’m dealing with “concepts” or the prelude to a draft, I can have my date-sorted outline right next to my manually ordered outline with my notes and select references.

With aliases, I do all this with copies, and am able to keep my “master notes” in outlines that reflect their archival sources. Easy to do in Tinderbox; with OO3, I’d have to make copies, and then get into some kind of version hell whenever I added to my database.

OO4 is supposed to add aliases, but that’s a long way off from what I can tell.

I wouldn’t use one without the other: DTPO handles the mixed format, raw data; and is essential for searching and note taking. As I understand more about the value of that information, the notes go into Tinderbox where my understanding is better expressed through structured metadata.

Fuzzy searching through gigabytes of PDFs and text notes? Hard to do in Tinderbox. Date-sorting while preserving a distinction between dated material and things I’m estimating: hard to do in DTPO.

The biggest hurdle is getting py-appscript installed! You’ll wonder why you waited so long. Although for Ruby, Matt Neuberg’s book is essential:

Sorry to hear this. Good luck on your resolution!

Best wishes, Charles