Sense-making of Academic Literature Using Tinderbox

Note that in the next release (and current backstage release), Tinderbox will also import styled text (and embedded links) from DEVONthink

5 Likes

Jeff, in your system doesn’t a Tinderbox agent basically do the job of a DevonThink tag?

1 Like

Yes. But to keep things organized I prefer viewing in TB Outline view.

I am trying to adapt Jeff’s system for Zotero. Looking at an old post from Mark B. I realized that the key may be to export in RIS format. I tried it and it works with a drag and drop. This is great. But there is no abstract field attached. What is the best way to modify the prototype (I assume) to include the abstract field from the exported RIS cite in Zotero. Or is the problem, possibly, that the RIS drag and drop from Zotero does not include the abstract field?
Thanks.

1 Like

Wrote too soon. Looked at Zotero RIS export and it appears it does include the abstract: kb:field mappings [Zotero Documentation]

1 Like

We don’t import that RIS abstract field, as it’s not entirely clear whether people would want this. Happy to hear opinions for and against.

1 Like

@eastgate, @lfriedla
All of the RIS data is imported into the ReferenceRIS attribute; you just need to add code that copies the relevant data from ReferenceRIS into your chosen user attribute (or maybe $Text in the case of an abstract).

There was a related thread here, in the context of Bookends that died because of an apparent bug in Bookends or maybe Tinderbox.

In the case of Zotero this actually works. Here is adapted code for Lew Friedland that reads the ReferenceRIS , extracts the relevant information from the RIS tag AB and puts it into the user-defined attribute Abstract.

Steps
(1) You need to create a new User attribute to hold the data. Call it Abstract, of type string.
(2) I’ll assume you’ve already got a Reference prototype in your Prototype container – one is created automatically when you first drag in a Reference. Modify the rule for the Reference to:

if($ReferenceRIS.contains("AB -")){ $ReferenceRIS.contains("AB - ([^\n]*)\n"); $Abstract=$1.replace("AB - ","").replace("\n","")} else {$Abstract=""}

(3) Add the user-defined Abstract as a KA to the Reference prototype.

Now, assuming you have a Zotero example with an abstract, dragging it into Tinderbox gives you a reference with the Abstract KA populated with the text from the Abstract field in Zotero – and if there is no AB field then the abstract is empty.

This works with BibDesk too, but, again, not with Bookends.

However, in the case of Zotero there is a problem with journal articles having Journal Name mapped into the BookTitle KA. The problem here is that Zotero is using the RIS tag T2 to hold the Journal Name, while Tinderbox is expecting it be contained in RIS tag JA. RIS contains ambiguities. Again, you can add code that maps RIS tags into the appropriate TBx KAs.

Let me know if this works for you…

1 Like

Mark, guess it’s obvious, but I would like to have the abstract field included in the prototype. Not sure about others, but I’m guessing many academics would. Would provide a kind of shortcut solution to Jeff Taekman’s workflow.
Lew

Thank you very much. I’m afraid I have a couple of low level questions.
I did create the abstract attribute as a string field.
But I don’t know how to modify the rule for reference or where to copy the code. I have tried looking it up in several places including Tinderbox Reference File. I’m sure it’s there but I can’t find it. Also, assume KA is Key Attribute, but how do you change the user-defined to a KA?

Lew, no problem at all.

Step by step:

(1) Go into the Prototype container and select the prototype Reference – which will have been created if you’ve dragged in even one reference into the Tinderbox file;

(2) Right-click and select Get Info… (or invoke it by the shortcut);

(3) Select ‘attributes’ from the left-hand column, and then ‘General’ from the next column.

(4) Scroll down in the next column till you get to Rule.

(5) Copy my code above and paste it into the Rule text box.

(6) Dismiss the pop-up.

(7) With the Reference still selected click on the ‘+’ button in the Notes pane. Scroll down the list of attribute types till you get to User. Select User. Tick the box next to Abstract.

(8) You now have a Reference prototype with the KA ‘Abstract’.

You should find that all existing references that you’ve already dragged in now have a Abstract KA, and that the Abstract is populated with the Abtract text from Zotero.

Enjoy!

1 Like

Thanks again. Works beautifully and I learned a few things in the process.

Grant, this is working beautifully. But I have one final question. I’m quoting an offline reply here so others can see it.
In your response you said:

However, in the case of Zotero there is a problem with journal articles having Journal Name mapped into the BookTitle KA. The problem here is that Zotero is using the RIS tag T2 to hold the Journal Name, while Tinderbox is expecting it be contained in RIS tag JA. RIS contains ambiguities. Again, you can add code that maps RIS tags into the appropriate TBx KAs.

I have tried to write a rule that would switch the tags following your original code, but am afraid I keep getting it wrong. Would you mind telling me what code snippet would let me reassign the T2 and JA RIS tags? OR you are welcome to point me to some part of TB Ref or elsewhere so I can learn how to do it myself.
Thanks again. With this one change, Zotero users can start to adapt Jeff Taekman’s system.

Sorry for reposting. Can anyone point me to a place in the TBRef or elsewhere where I could figure out the code for switching these two tags on the RIS import (see above). Thanks.

Lew,

This one is actually easier than it looks. You don’t need to muck about with capturing the info from the RIS feed – this has already been done by Tinderbox. Here is the relevant code snippet to be added to the rule:

$Journal=$BookTitle;
$KeyAttributes=$KeyAttributes-"BookTitle"

The first line assigns the Journal name from the BookTitle KA; the second line removes the BookTitle KA from view --since this is a Journal Article – to make things look a bit neater.

1 Like

Wow. This is incredibly exciting. I am newly returning to an academic career after working in the “real world” for a number of years. I’m also a fairly new Mac user but avid fan of using apps as an external brain so that I can get everything accomplished that I need to.
I look forward to attempting every bit of the Zotero-to-supercharged-Tinderbox protocol from scratch, and might report back to this thread with my own “aha” moments if it seems appropriate.
Thanks All!

1 Like

Hi all. Hoping to elicit some replies here rather than starting a new thread for these two specific questions.

I’ve imported some references from Zotero into TB, with Abstract field included (thank you contributors above!) and am now attempting to implement the agent search protocol. It works beautifully, but doesn’t return the information in the ideal form for my purposes. (I’m using this for a very preliminary literature search and sort to get myself familiar with a new topic - haven’t read the papers yet and only skimmed the abstracts in my U’s database.)

Two questions:

  1. When the references come into TB as notes in the Reference prototype format, the Book Title (Journal name) is displayed as the title of the note. I want the Article Title to show up as the name of the note. How can I make that happen?

  2. When I run those agents, I want the text of the abstract to appear in the text pane of the note - the white area on the right hand side under the metadata of the reference. I’m assuming that’s some sort of “agent action” but I don’t yet have the vocabulary to search how to accomplish this. Is there some language I can include in the agent definition to achieve this?

Thanks so much for your help.

Update: I followed the tutorial directions for including columns in the outline view; so I can display the ArticleTitle as a column which is awesome.

Still hoping for some code to copy the text of the abstract over to the text pane, if possible.

How about a stamp:

$Text = $Abstract;

This will copy the abstract of the selected note(s) to the text of those notes.

Holy cow! It worked! Thanks!

Inspired by @jtaekman’s original post, I’ve started working on a somewhat similar kind of document. However, instead of adding all my abstracts, I’m making a topic-based document. And instead of including only abstracts, I’m including all the quotations from each paper. This is intended to be a more-or-less permanent reference document rather than one for a specific project.
The document has two major sections (though depending on people’s responses to this that may go up to three):

Agents: Pretty much the same as Jeff’s, though I’m planning to also leverage tags
Source Containers: Each container represents one paper. Inside it is multiple notes, each representing 1 quotation from that paper with the page number and sometimes with my comments.

I like using Maps and Treemaps as well as Outlines, so it’s preferable to be able to grasp the essence of each note without reading the content. Therefore, I take some time to choose a suitable title that captures the essence of each quotation without being mega-long (usually one sentence without subordinate clauses). And I use Andis-Regular as the NameFont for Maps with -1 NameLeading so that I can see a reasonably long portion of the title in most views. (That font choice seems to have carried over to other views, too, which wasn’t intended, but tant pis, as they don’t say in Germany.)

In Map view I have been using an oval note for the abstract, and rectangular notes arranged in concentric circles around the abstract for the quotation notes.

That brings me closer to my question related to organization. I have each paper in Sente, which is where I originally made the notes. Sente has good communication with Bookends (for which I also have a licence). Bookends has good communication with Tinderbox, so I’m copying references from Sente to Bookends and then option-command-dragging them into Tinderbox. (This has the desirable side-effect of speeding my transition away from the abandoned Sente.)

Two ways of organizing the References dragged in from Bookends occur to me:
(1) I could drag each one into the relevant source container. This is the one that occurred to me first and, at least at first, felt most natural. I could add a Reference-gathering agent to gather all the notes of Reference type for when I just need a list of all references.
(2) I could make a References container and put all the items dragged in from Bookends there. I could create a link from each source container to the relevant reference.

Any thoughts on the implications of choosing one or the other? I’m sure there are ways of rearranging things if I regret my choice but now that I’m just starting I’d prefer to go the way that is most likely to be the most sustainable/useful.

1 Like