That's a good question. I tried a variety of options, but it stabilised on something that could be termed "micro-summary of context as file name". Example:
- giraffes.html
- giraffes_in_history.html
- natural_predators_of_giraffes.html
- grade_inflation.html
- graffiti.html
- genghis_khan.html
- grassroots_lobbying.html
Since all my
Zettel are version controlled anyway, I don't see the
point of tracking dates/times in filenames (or the file itself). I've now got so many
Zettel that I can no longer recall even descriptive names like the above
anyway: is the
Zettel called giraffes_in_history.html or
history_of_giraffes.html ...? So in practise, nowadays, when I look
for related
Zettel I always use grep with words I expect to be in the relevant
Zettel. Example:
grep -i giraffe *.html
It works really well.
What I do recommend is writing a little tool that produces filenames in a consistent way. (E.g. stripping out 'weird' characters, removing capitalisation etc.) I found that the more uniform filenames, file structure etc, the easier searching remains. Moreover, writing tools that mine / transform Zettel is also easier when the setup is uniform.
I also tried adding structures by subdirectories
- computer_science
- economics
- biology
etc, but that didn't scale, since everything is connected to everything else. Knowledge is not tree- or DAG-structured. Flat file structure + hyperlinks works for me.