Hi,

 

Glad you like Mnemosyne!

 

There’s two options to achieve what you want:

 

One is to use the Python API to create, retrieve and edit cards (see 
https://github.com/mnemosyne-proj/mnemosyne/tree/master/mnemosyne/example_scripts
 for examples). I would not recommend directly approaching the sqlite database, 
as that will result in the sync algorithm not picking up any changes (that’s 
what all the logging statements are for).

 

Alternatively, you can try to manually create a *.card files instead of a text 
file, as these contain ids so that later on you can import them again to result 
in an update.

 

https://github.com/mnemosyne-proj/mnemosyne/blob/master/mnemosyne/libmnemosyne/file_formats/mnemosyne2_cards.py

 

A *.cards file is basically a zipfile. Just look into one to get a feeling for 
how it is put together.

 

Good luck!

 

Peter

 

From: [email protected] 
<[email protected]> On Behalf Of Alejandro Forero Cuervo
Sent: 23 April 2020 21:52
To: [email protected]
Subject: [mnemosyne-proj-users] Updating previously imported cards?

 

Hello,

I'm super happy with Mnemosyne, which I've been using since 2014. I currently 
have 8.1k cards. I find it very useful! I'm a huge fan. :-)

I'm beginning to generate cards from my set of notes (my Zettelkasten, as 
described in 
https://github.com/alefore/weblog/blob/master/zettelkasten.md#spaced-repetition-and-notes)
 that I import into Mnemosyne. I consider my notes my canonical source of 
information and I just want to be able to import them into Mnemosyne. I have 
been quite successfully generating and importing tab separated files. It works 
great!

I was wondering if there's a way to update previously imported cards (without 
losing their state)? When I update my notes with additional information, I 
would love for their associated cards to be updated.

For example, I have a note like this (simplifying somewhat):

Paul Klee timeline:
* 1879: Born in Münchenbuchsee, Switzerland.
* 1940: Died.  

 

zkcloze("1940", "year");

zkclose("Switzerland", "Country");
zkcloze("1879", "year");


The last 3 lines basically specify that 3 flashcards should be generated, using 
cloze deletion, replacing specific tokens (e.g., "1879") with a hint 
("___year___"), such as:

Paul Klee timeline: <ul><li><b>___year___</b>: Born in Münchenbuchsee, 
Switzerland</li><li>1940: Died.</li></ul>\t  Paul Klee timeline: 
<ul><li><b>1879</b>: Born in Münchenbuchsee, Switzerland</li><li>1940: 
Died.</li></ul>


So far so good. This works great!

 

However, if I edit the note in the future (perhaps I register the fact that he 
got married in 1906; or maybe I discover that I had the city wrong), I would 
like to just update the three notes to include this additional data *without 
losing all the state*.

 

Does anybody have any suggestions for how to do this? I think part of the 
challenge is cross-linking the "zkclose" lines in my note with some IDs in 
Mnemosyne so that when I generate the new tab-separated file with updated 
cards, each new card can be associated with the corresponding card previously 
imported to Mnemosyne's db. Perhaps there's some way I can generate some 
~random IDs (in a very large namespace so that the probabilities of collisions 
are negligible) and just insert the notes with such IDs? Is something like this 
possible? Failing that, is there some way to reimport notes and have Mnemosyne 
just update previously imported notes?

 

Perhaps I should generate SQL sentences and import them directly into 
Mnemosyne's sqlite database? That sounds a bit brittle, so I'm looking for some 
alternative. :-) But, failing that, I guess I'll look more closely at SQLite.py 
to try to make sure I understand the semantics of the fields in the "insert 
into cards" statement in SQLite.add_card. But, yeah, I'd rather use a more 
"supported" route. :-) Maybe there's some other format (than the tab-separated 
text files) that supports importing cards containing some ID?

 

Thanks in advance for all your help! And, apart from this, thanks a ton for 
maintaining such a useful piece of software! It has had a very positive impact 
in my life.

-- 
You received this message because you are subscribed to the Google Groups 
"mnemosyne-proj-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected] 
<mailto:[email protected]> .
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mnemosyne-proj-users/CAJphAxVy%2BGn-LxTEDupMTRR0f0NSMKRFteAptku6xv4eOpe%3DUQ%40mail.gmail.com
 
<https://groups.google.com/d/msgid/mnemosyne-proj-users/CAJphAxVy%2BGn-LxTEDupMTRR0f0NSMKRFteAptku6xv4eOpe%3DUQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
 .

-- 
You received this message because you are subscribed to the Google Groups 
"mnemosyne-proj-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mnemosyne-proj-users/004001d61a2b%24f5c829a0%24e1587ce0%24%40gmail.com.

Reply via email to