Any way to create an UID in annotated files?

Is there a way to create an UID in MarginNote-annotated files – and, by extension, the notes they create?

Maybe there’s a way that MarginNote-annotated files & notes could generate create an UID – one UID for one file – that would apply to all of the MN-created annotated notes linked to that file. Seems like this UID could be auto-generated much the same that MN creates URLs per note.

Would love to hear about any possibilities to do this… Thanks!

1 Like

Anything…?

Any ideas…?

Anyone…?

Every note in MN has an UID, but not exposed to user. How do you want to use the UID?

I recognize that no one tool does all things for a user. I use MarginNote to easily make notes on PDFs. But to use that information effectively in my work I need to export the information and import it into other apps, such as Tinderbox (after I first import MarginNote-created files to iThoughts X, and then export them in an OPML format for Tinderbox to use).

However, if I make an annotation and export it it, then subsequently I improve/extend the annotation and re-export it, how does the next tool in the chain know this annotation is from the same source note? The source document title, for example, isn’t necessarily and reliably unique. That’s how and why I want to use the UID – so I can locate and identify such source files that were created in MarginNote, and then reside in Tinderbox.

Put another way: If you are open to the fact that user’s may export their data, how are they helped by not giving them (read-only) access to UID values?

Here’s a reference file on Tinderbox ID attributes for UID’s.

I hope that’s helpful, and that MarginNote can provide users with UID values so we can better use MarginNote-created export files. Thank you.

BTW, I have to import MarginNote-created files to iThoughts X, and then export them in an OPML format for Tinderbox to use because MarginNote hasn’t yet created a CSV export format. Many of us are still hoping MarginNote can create that export feature in the future.

I’m happy to answer any additional questions you have on this or any other issues that I’ve raised. All of us want to see MarginNote to improve over time, and are committed to helping make that happen.

Thank you.

3 Likes

Do you have any more questions about this that I can answer?

Will MarginNote avail file UIDs to users so that we can apply them to our workflow?

We look forward to your response.

Thanks.

Any joy, @marginnote ? #marginnote-3

Please let me know if / how users can follow up on these queries…

Thanks!

I agree with jprint. If there was a way to assign a link to a card in MarginNote, then I would use these links to access my mind maps from other apps via x-callback. This allows my mindmaps to stay in MN with their pdfs but be accessible from other apps, eg iThoughts, 2Do, or Evernote.

1 Like

Well put. Thank you. Lets hope @marginnote can implement this, since it would be a boon to many users who are seeking this feature for their workflow.

I also agree with @jprint that this is an important feature.

It appears to me that MarginNote (at least the macOS version of MN) already has something like this internally, and the main issue is how it’s surfaced or exported for our use. Right now, it’s pretty much concealed. It might not be difficult to change this.

I did a little bit of sleuthing around and here are my findings. First, if I export a MS-Word file, it contains hyperlinks with URLs that look like this:

marginnote3app://note/B3078F4B-BCD5-459D-BDD6-148C2885A37F

The last element of the path is the UID of a note in MN. If I click on the link or otherwise open it, MarginNote opens my document that contains the note, and MN seeks to it. If the MN app is closed, it launches. This is all good.

Under the hood, MarginNote uses an industry-standard SQLite database, which stores everything in tables. The database is buried in the ~/Library folder (the standard place, more or less).

I looked inside the MN database on my machine and did a few SQL queries. There is a ZBOOK table with rows for each book, and a ZBOOKNOTE table with rows for all the notes. The two tables are linked via a key called ZTOPICID. So, the UID of the note also gets you to the book that contains it. That is, both books and notes each have a UID.

I also looked at the Tinderbox UID requirements, which @jprint helpfully suggested a few months ago. I just scanned it briefly, but it seems to me that the MN links pretty much meet these requirements as UIDs.

In sum, I believe MN already implements the UID functionality, and the issue is more how it’s being exported. I may be missing some finer points in this thread (e.g., is the URI already provided by MN enough to also satisfy the requirements of x-callback? I’m not sure about this), but it looks like improving export features could go a long way to tackle the issue of surfacing UIDs.

For example, adding a menu pick in MarginNote to copy the URI of the currently-selected note to the clipboard — this would be a simple addition, and it would allow us to easily grab a URI to any note.

My feeling is that improving the export options might be the best approach to this. This has been discussed in other threads. E.g., fix the issues that @jprint summarized here.

Next, providing RTF export would allow MarginNote to easily interoperate with many different text editors. (In fact, there is already an RTF export but it saves all the notes in individual files, which is not desirable for many applications.) Greater control over the formatting of the export is also very important. E.g., having a preferences page for export and giving us a bunch of options there would be very welcome. XML format export would also be good as it can be transformed into many other formats.

Ideally, MarginNote could have a template or plugin architecture for handling exports, such that either expert users or third-party developers could create their own export modules — that’s how I would approach it, at least.

What does your team think about this, @marginnote ?

1 Like

Hi Mobo, Jprint and fogleman,

Thanks for your advices, I will continued study your opinion. I need some time to test and verify the technique details of all the integration you mentioned. In my opinion,we do creative and efficiency works rely on mixed methods and multi-tools as every single tool has its limits. So we talk about how to make the tool better but this is a long-bulid technique problem. My suggestion is that we reach a consensus of directions for improvement but meanwhile learn to squeeze the existing tool.

For this issue, UUID has built-in to support Apple Standard Url-Scheme as its structure (one of IOS productivity sign), and MN give the direct way to copy this Url-Scheme of every single note for a very long history. On a mac,another powerful tool Keyboard Maestro could automatic do many edit work(replace text) with pasteboard. And with Maestro help,UUID could directly be using.And with my study of your Tinderbox ID introduction, it should to be same.($ID opens a number of possibilities for export, including making HTML anchors for linking to includes in exported pages.)

Need to be clear,Url-Scheme is the way MN to callback Original Note and Original Book Documents.
Many Apple platform software has well support to it.

I’ve seen the video of a user to show his Pessonal Knowledge Wiki workflow, which use Maestro and Voodoopad with critical Url-Scheme Callback mechanism.

Best Regards,
Lanco
MN Support Team

1 Like

Hi! Another very great and useful use case of exposing UIDs would be to allow integration with Hook.

I asked them if they are already integrated twith MN and they said: not yet.

They require MN to expose 3 details:

  1. the name of the document;
  2. its ID
  3. a callback URl-Scheme to ask MN to load the document with the ID.

You’re not far from exposing what’s required by so many apps to integrate with MN. If you look at Hook’s features, you’ll see this is one more very great integration to open up MN to more workflows.

Thanks a lot for hearing us.
BTW I’m so happy to have found MN through SetApp.
Thanks for making such a great product, your work is very dear to me!

1 Like

Please have a look at 9F and 10F posts.We’ve already give what you want.

Mac shortcuts for this — Shift+Command+C.

Thanks much for this tip, @Lanco.

In addition to the “Copy note URL” command, it looks like AppleScript support is needed for interoperation with apps like Hook. A RESTful server API would be another way to make MarginNote interoperable with other apps.

1 Like

Finally,AppleScript support extension is put into our schedule now. Maybe late of this year.

Any update on this, @Lanco_Support-Team?

Last night, we have tested the new build of MN with a new basic function, offline OCR provided by ABBYY.
Last month, we have to put our full energy on Ipados compatible stuff as per Apple’s advice.

Our development team is so small which means relatively slower progress on new features. But we are determined to perfect Database openness and Extension support. Maybe later this year will be under dev.

The is AWESOME. Now I can read in MN and link my resulting map to my day-notes in other apps such as IThoughts. This makes my iPad more versatile and I don’t have to worry so much about exporting finished notes into other apps. Thank you.

Wait, did they do it yet? I thought this is something that they’re considering, but haven’t yet implemented… Did we miss something??

The “copy note URL” on the iPad version provides a sufficient link to access the note from ithought’s attach link function.

Gotcha.

I was talking about a way to create an UID in MarginNote-annotated files – and, by extension, the notes they create. That’s what we were seeking in this particular post.