DEVONthink and Zotero

Hi folks …

As I’m working on my PKM system and integrating DEVONthink with Zotero and Obsidian, I’m struggling to get DT to search through annotations I’ve created in Zotero.

I’ve got DT indexing the Zotero folders, and I see my annotations in Zotero. I’ve also got DT indexing my Obsidian folders. The only way I can get DT to ‘see’ my Zotero annotations is to export them to Obsidian manually.

I’m bound to be doing something wrong here, but would someone kindly point out the error of my ways please?

This from ChatGPT:

Can I annotate pdfs stored in Zotero and have them searchable in Devonthink?

Yes, you can annotate PDFs stored in Zotero and have them searchable in Devonthink. The workflow involves using Zotero to manage and categorize your PDF files and then indexing or importing these annotated PDFs into Devonthink for enhanced searchability and organization. Devonthink creates a new folder called Annotations for the annotated PDFs, which allows for direct navigation to the specific parts of the PDF referenced in the annotations[3]. This integration leverages the strengths of both applications: Zotero for citation management and PDF annotation, and Devonthink for powerful search and organization capabilities.

Sources
[1] Indexing Zotero PDFs but with multiple DT databases? - Tips Indexing Zotero PDFs but with multiple DT databases?
[2] DEVONthink academic workflow incl. Obsidian, PDF Expert, Zotero and … DEVONthink academic workflow incl. Obsidian, PDF Expert, Zotero and Scrivener
[3] DEVONthink with Zotero Workflow - DEVONtechnologies Community DEVONthink with Zotero Workflow
[4] Adding Comment (Annotation to Document) - Tips Adding Comment (Annotation to Document)
[5] Zotero + DevonThink - i thought i was gonna be clever but i think it’s not … Zotero + DevonThink - i thought i was gonna be clever but i think it's not possible

Zotero isn’t annotating the document. It’s storing internal references. This is easily seen by Control-clicking the PDF and choosing Show File, then opening the file in Preview or even just pressing Spacebar to QuickLook it.

In Zotero:

(And the green annotation is one I made in DEVONthink before adding the PDF to Zotero.)

In Preview:

PS: This doesn’t mean there aren’t ways to get around this limitation. But they are not built in, nor are they simple. Your inquiry is specifically about DEVONthink recognizing the annotations made in Zotero. That is inhibited by technical limitations from Zotero’s approach to annotating.

PPS: Generally, I would not trust ChatGPT responses to technical questions.

3 Likes

Thanks :pray:

Am I correct in thinking I need to be annotating Zotero PDFs using something like PDFExpert rather than Zotero itself?

You’re welcome.

Why wouldn’t you just annotate them in DEVONthink? And bear in mind, we don’t develop Zotero nor am I a Zotero user. Zotero isn’t guaranteed to detect DT annotations either but from my testing they are detected and displayed…

There is a way to export Zotero annotations from your PDFs into separate markdown documents that can be indexed or imported by DT–but it is a bit complicated.

Far easier to annotate your PDFs in DT.

1 Like

Thanks again :pray:

I use Zotero for reference management which makes it the storage of choice. It’s the need to annotate which is causing me to review my workflow.

You can index the Zotero storage folder (ideally stored on the local machine) and annotate in DEVONthink. The default location is a Zotero folder in your home directory. That would be the best place for it to reside if you’re going to index.

Thanks - that’s answered a few question I had about the Zotero addin MDnotes and formatting issues I’ve experienced.

2 Likes

I keep journal articles in Zotero and eBooks in Calibre and use a similar workflow for each to export the annotations that I make in each to summary documents that I import into DT.

The workflows work, but they are a bit fragile…

If inter-application communication is important to you, it should be an early consideration in your choice of apps to use. We strongly advocate for good AppleScript support in apps running on a Mac.

2 Likes

Thanks, it absolutely was… I’ve created a system that uses Zotero, DT and Obsidian, with data replicating across my Mac Mini, MacBook, iPad and iPhone, to cater for various use cases. I use DT to hold everything (my Internet) and Obsidian to provide an interface (my web) with linking, and Zotero as a citation manager.

Working with these constraints, I’m finetuning my workflows, and the current sticking point is how to create annotations. For consistency with my information architecture, it makes sense to have them expressed in Obsidian, where I consume them in my PKM system. But I’m at a choice point and exploring options for annotating PDFs - Zotero natively, DT natively, or using PDF Expert before ingesting the PDF.

@BLUEFROG - would you say more about your advocacy of AppleScript support, please?

We believe in open systems with interaction with other applications. This involves good inter-application communication. This may be as simple as good support for drag and drop, but ideally the other applications provide scripting support. This is good for use in the app but can also open opportunities to have scripts share or shuttle data between them.

AppleScript is a well known and long supported language on Macs and the scripting language we prefer. JavaScript for Automation (JXA) is also supported. The choice is really up to the individual, especially in terms of what makes sense to them.

PS: From System Settings > Privacy & Security > Automation, here is an incomplete list of apps DEVONthink has been allowed to automate via scripting…

1 Like

Thanks.

Your explanation is too abstract for me. Could you bring it to life with a practical example or two please?

At the risk of heading off-topic what would scripting do for me and where could I learn how to create them?

If you don’t miss scripting, you probably don’t need it. Otoh, there are quite some tasks that can only be accomplished with scripting. And others that are easier or more elegantly accomplished with it.
The forum section on automation contains a lot of examples, no need to repeat any of them here.
As to learning: there are quite some old texts on AppleScript floating around and far less on JavaScript (I offer Scripting with JXA | JavaScript for Automation (JXA)).
Personally, I wouldn’t invest any time in AppleScript – it’s quite limited in its capabilities, conceptually weird (using object-oriented terminology without being object-oriented for example), Apple doesn’t work on it, and it can be used only with/on macOS. Others like it because it’s “easy to learn” (I disagree) and it’s a lot better implemented than Apple’s JavaScript integration with is OSA (I agree).

Using your intended annotation workflow as an example:

Imagine your reference/annotation app would be thoroughly scriptable. This would allow a script to, say, loop over all newly added annotations, and, for each annotation, get the specific annotation elements you want (e.g. the actual quotation, your comment, highlight color, creation date, page number and link back to PDF page, etc), then format them exactly to your liking. Then, this script would ask DEVONthink to create a new note for each annotation (or for each PDF) in a specific DT group, and set all corresponding DT properties (like label color, flag, rating, custom attributes e.g. for citekey & formatted citation, link URLs, etc) appropriately.

As a result, you‘d have a full representation of your annotation data (formatted to your own liking complete with link backs and fully searchable/accessible as it’s just (plain)text) in DEVONthink. Alternatively, the script could generate files for Obsidian and index these files in DT, but this wouldn‘t by default set any properties in DT then.

3 Likes

Wow :open_mouth:… Thanks for the illustration.

I can appreciate how ignorant I am of DT’s capabilities… I’m using it as a smart bucket as don’t know what else it can do.

I’ve read the documentation which explains the functionality but it’s not until someone shares actual usage cases that this is brought to life.

Where can I efficiently find out more of this type of information?

Start by watching here, esp. the Automation sub-category.