> But I do think you're making things overly complicated by trying to do your edits outside of Mnemosyne...
Thanks, I take your advice with consideration. But perhaps sharing a bit more my use case could be beneficial to others. Long form: I usually have my computer in front of me when studying, and I like to have a text editor close at hand to add notes with ease. In this sense, having Mnemosyne as a [rec file](https://www.gnu.org/software/recutils/) makes things easier for me. With 3 — 4 key strokes I'm at the right place adding a new card (see the example below) (I'm a vim/keyboard-first user). Also, as I study, my cards/knowledge grows over time (so cards themselves change a few times). So I would like to allow my cards to easily (= keyboard first in my case) evolve. Not just that, I like to version control all my manual work, as it makes it easy to allow for either corrections and/or backups (text is easier in this case compared to a sqllite database). Example of a card: ``` id: 72e48ba2-207b-4dcd-8bad-f7673df85be8 front: + Is there historical basis for a Dorian Invasion? back: + No, there is no such thing as the Dorian Invasion. ``` Which then got expanded into: ``` id: 72e48ba2-207b-4dcd-8bad-f7673df85be8 front: + Is there historical basis for a Dorian Invasion? back: + No, there is no such thing as the Dorian Invasion. + + «Greece in the Making, 1200-479 BC»: "It is perfectly possible, therefore, to explain how there could come to be traditions of Dorian invasion and Ionian migration when there were no such historical events. What is more, when the archaeological record is examined in detail it does not in fact support claims that those events occurred." ``` Notice how (apparently) using the same `id` keeps the state of the same "idea" in Mnemosyne (I have verified this in practice) (the cards content might differ slightly over time). —————————— So summarizing my use case: * Storing cards as plain text has its advantages, namely version control and ease of edition; I can edit cards outside of a point-and-click GUI, and this makes a lot of difference as I usually do so on-the-fly as I study. If adding cards has some friction (open and wait for the program to launch, click on a few boxes, manually add tags, etc) people will add fewer cards (and possibly use the program less; that's how I feel [I know I'm only one very peculiar user of this project]). * I would like cards that have the same ID to be preserved as they (slightly) evolve (e.g. adding citations, adding more elaborate answers, etc). * I would like to be able to non-interactively import this "persistent" set of cards → I have not tried this one, but hopefully Mnemosyne has a CLI for that. This degree of automation makes things way more easier for me. Think everything as part of a series of `make` rules: a. A plaintext file changes. b. I run my program (I intend to share here shortly), and it creates the cards in the `.card` format (compressed XML in a certain schema). c. Mnemosyne's CLI then import these and "merges" (updates?) the existing cards with their new slightly altered forms; **the statistics are kept**. This is a pretty powerful, time saving and inviting setup. This frees up some time and incentives Mnemosyne use (again, that's how I/one user feel). I know this is very particular to my use case but I think other users who happen to be developers might benefit from some of the ideas here. Again, thanks for all your work on Mnemosyne. Peter Bienstman در تاریخ دوشنبه ۱۹ اوت ۲۰۲۴ ساعت ۱:۱۵:۴۰ (UTC-3) نوشت: > Hi, > > There is no formal specification, but as you noticed from looking at the > file format, it's not that complicated. > > But I do think you're making things overly complicated by trying to do > your edits outside of Mnemosyne... > > Peter > > > On Mon, 19 Aug 2024, 05:39 Felipe Vieira, <[email protected]> wrote: > >> Hi, I'm trying to become a user once again. I have a few .cards instances >> so I can infer some sort of specification. In any case, do you have a more >> formal pointer to this file format that I can use? >> >> My use case is: >> >> ``` >> front: Question abcde? >> back: Answer xyz. >> id: abf6a0be-71c5-4c7e-b379-0d9091b3e3c3 >> ``` >> >> Where I expect the question and answer to change or be increased slightly >> over time, but I would like to keep the statistics and all other metadata >> tied to the `id` >> >> ``` >> front: Question abcde fgh? >> back: Answer xyz 123. >> id: abf6a0be-71c5-4c7e-b379-0d9091b3e3c3 >> ``` >> >> What's the best way to keep this manageable? >> >> Cheers, >> >> Felipe >> Peter Bienstman در تاریخ شنبه ۱۴ اکتبر ۲۰۲۳ ساعت ۲:۳۲:۵۶ (UTC-3) نوشت: >> >>> Hi, >>> >>> I don't think you need to delete and recreate all the time. However, if >>> you don't want to lose your learning data when reimporting, you need to use >>> the cards format. Txt files do not contain card ids. >>> >>> Cheers, >>> >>> Peter >>> >>> >>> On Sat, 14 Oct 2023, 07:29 Felipe Vieira, <[email protected]> wrote: >>> >>>> Hi, is there a way to automate the card imports? >>>> >>>> While I'm creating a card group (deck?) I would like to iterate on it. >>>> e.g., start creating, import it, test a bit, go back, change a few things, >>>> import it, etc. It would be great if I could do this in a non interactive >>>> way (i.e. having to click on things). >>>> >>>> The last post in this vain is the following: < >>>> https://groups.google.com/g/mnemosyne-proj-users/c/xot26WkHb-A/m/UVSzXy5RdgoJ >>>> >. >>>> >>>> I imagine that in practice that would amount to: >>>> >>>> 1. Delete the collection of cards `collection_abc` (I kindly ask for >>>> pointers on how to do this). >>>> >>>> 2. Save the a new `collection_abc` somewhere (this part is easy). >>>> >>>> 3. Insert the (new) collection of cards `collection_abc` (I kindly ask >>>> for pointers on how to do this). >>>> >>>> I saw the `.cards` format and it is a bit complicated (XML) so I guess >>>> I could export a tab separated file and hardcode the metadata in the code >>>> that does this (e.g. a `python` script). >>>> >>>> I can program. >>>> >>>> So I'm roughly asking for directions here, or a few places to look at. >>>> >>>> I'll definitely share the end results. >>>> >>>> Best, >>>> >>>> -- >>>> 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/0cc60c78-c669-48c2-8094-563aeb80dfe8n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/mnemosyne-proj-users/0cc60c78-c669-48c2-8094-563aeb80dfe8n%40googlegroups.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/f0fb140f-61d4-4e40-a31e-f3b8dea8ac7an%40googlegroups.com >> >> <https://groups.google.com/d/msgid/mnemosyne-proj-users/f0fb140f-61d4-4e40-a31e-f3b8dea8ac7an%40googlegroups.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/3d9fe2ae-930f-4ed4-b017-091712c51359n%40googlegroups.com.
