Note aging

The idea is to discover areas in your knowledge base that haven’t been reviewed in a longer time. With a digital garden analogy, it’s similar to looking around for weed and fixing them.

Some implementation thoughts:

  • Custom slider that filters by how long you haven’t accessed a note (looked at it);
  • Should you need to explicitly say that you’ve reviewed a note or not? (being explicit would mean clicking a button, for example);
  • I like Trello’s card aging power-up. It’s visual and fun to look at.
57 Likes

I had some notes on this in my vault!

Note Age, useage, revisits, links

  • tapping into this data as another form of context, interactivity, serendipity, networked thought value function
  • visually depict older, long forgotten, highly link - little visit/use lately, vice versa, etc
2 Likes

I don’t know exactly the best method to visualize/explore it. But is there a way for Obsidian to know when a note has been opened, viewed, edited, etc? Perhaps this age view could just tap into this data if so?

We know but it’s the info on your file system, we do not keep track of them separately. That means we do not distinguish between whether Obsidian accessed/modified the file or Dropbox did.

That may not be desirable in this case, because many apps could touch the file; doesn’t mean you’ve looked at the note though.

1 Like

It’s great! Can’t wait this plugin is applied for Obsidian.

I also have some addition. How if make “note/file status” that gives a sign for:

  • This note is needed to revisit or reviewed (as your idea)
  • This note is needed to reflect (since we just have created it, but not yet to think deeply about it)
  • This note is needed to continue (not finished yet)

This “note status” can be seen in the graph view by note node color. Let’s say:

  • Green node => for healthy note (finished note, already reflected, frequently linked, reviewed for recent time)
  • Yellow node -> For need maintaining (need to review, need to reflect, or need to work on it again)
  • Red node -> For unused/old note, empty note (since we created backlink for it).

The note, which is first created and empty, it will have a red. When filled, it will get yellow. If we are sure that the note is done and already reflected, then we can click the note icon (at the corner of note) and it will get green (click back to get yellow again, if unsure). And the note will be yellow again if no longer used/reviewed. For note that has a few links to other notes (as Fovea’s idea), it will fastly become yellow. For note that has a lot of links, it’ll be very slow to become yellow. Also for a note that already frequently reviewed, it’ll be very slow to become yellow again (it’s like our brain memorizing system!)

I have another idea. It’s “note comment.” We can give a short comment on our note. So in the graph view, when we click a note node once, it will pop up our comment on that note. I think it’ll be helpful to remind us of what needs to do with that note (sometimes I forget since there’s a lot of notes). double click the note to open the note as usual.

PS: Thanks a lot, the Obsidian team. I’m so grateful. Obsidian help a lot to do my Quran project.

3 Likes

This “note status” scenario really resonates with me. I’m using page icons in Notion for that:

Basically some custom icons that I upload to each note:

  • tree -> There’s a bunch of stuff written in that note.
  • growing -> There’s some of the stuff in there, but it could be expanded upon.
  • sprout -> There’s like a sentence or two written in there.

When I look into my “Topic Forest” (idea borrowed from Valentin Perez), I can quickly asses what I will get as a result before I click on the note.

The closest I can get to it now is to add something like 1-5 at the beginning of note’s name. This would be helpful, as it would allow me to add emojis to h1 tags to achieve similar results:

I’ve also thought about abusing tags for the purpose (add #1-5 to a note, allowing me to search for all notes that need to be worked on), but from a discovery perspective, it’d still require me to click on a note to see the which of the tags I’ve associated with it.

4 Likes

Would really like to see this plugin. :slight_smile:

I’d love to be able to add similar icons to Obsidian notes. The icons could appear next to the notes in the left-side menu.

You’ve given me the idea to create three similar folders (sprouts, growing, trees).

That’s a great idea.
Maybe this could come together with a spaced repetition functionality.
Two birds with one stone.

1 Like

God idea, but being able to disregard journal notes would be essential to me.

1 Like

I have old notes that no longer make sense because I forgot the context.

So this idea would go along with a more general system of reminders, e.g., to finish a thought that was jotted down in haste but is valuable enough to think more thoroughly about later. It would in essence be a physiological state monitor (of busyness or distractability) to prevent forgetting the train of thought that makes the brief note discernable.

1 Like

I still think this is a great plugin idea. I also submitted a feature request to make this kind of gardening easier to do within the Obsidian interface:

1 Like

Would show hot & cold notes in a much more intuitive and fast way IMHO

I like the idea a lot, and it was quick and fun to whip up a version in Templater.

It will open a selection box to choose from a random assortment of old notes which need reviewing, weighting the notes so that older notes have a higher chance of being selected.

You can specify not to show notes that have been worked on in the last X weeks. The frontmatter field name is configurable. If it doesn’t already exist, the file created time will be used for the date selection.

When you choose the note, it will open that note and update the frontmatter “last reviewed” field for you.

You can specify all folders or any subset of folders to choose from, so you can disregard journal notes per @ljantzen suggestion.

The configuration options are:

// === Configuration settings ===

// The frontmatter field you want to store the last reviewed date
const YAML_FIELD = 'last_reviewed'

// How many results to return from the search
const NUMBER_OF_RESULTS = 5

// Only show notes that were reviewed at least this many weeks ago
const ONLY_NOTES_OLDER_THAN_X_WEEKS = 2

// Weight older results. A value of 5 means the oldest note is 5x more likely to appear than the newest note
const WEIGHT_OLDER_NOTES = 5

// Select notes only from these folders (and subfolders). To select all notes, use an empty array []
const FOLDERS = ['1 Projects', '2 Areas', 'Testing']

And you can find the full script here. Just copy this into any .md file and set it as a template for Templater. You can assign it to a hotkey if you like.

Hello this looks like very cool!
Unfortunately I’m doing something wrong it does say : Template parsing error, aborting
Check console for more information

Things I have tried

  • Install Templater plugin
  • Copy paste raw script in a new .md file
  • Insert this file in the template folder location
  • Try to insert this template with command + p

I can’t code and first time using templater plugin so I’m stuck, hope you can help me, thank you!

First question, do you have Dataview installed? You will need that plugin also.

If you already have that installed, then open the console by pressing Ctrl+Shift+I on Windows or Cmd+Option+I on Mac.

Run the template again, and let me know what is the text that appears in the console.

Hey!
sorry for the delay!
Thank you very much for the additional explanations and the updated instructions in the file.

I didn’t have dataview installed, now it works!

Thank you again

1 Like

This is super cool. Thank you.

I forked your code and made some edits for my own preferences, mainly to format the random suggester to show the note path and an abbreviated last-reviewed date (note age).

Do you know if there’s any way to apply CSS classes in here to style the elements differently?

Was there a particular reason you opted to use creation time instead of modified time as the default fallback for ‘last reviewed’ date? That was the one change I made that might be a functional improvement.

I like your new time format, very cool :+1:

Yes - when you sync through Obsidian sync a document is modified even if you made no changes. Add a new device and suddenly all documents are recently modified.

I use a created YAML property, so that stays consistent even on a sync.

You’ll also want to grab the updated orphan notes section - there was a bug in there in v1.0.3. You may or may not want the created section.

// Get orphan notes if configured
if (ORPHAN_NOTES && !pages.length) {
    pages = dv.pages(FOLDERS).where(x => !x.file.inlinks.length)
    if (pages.length) new Notice('There are no links to this note', 5000)
}
if (ORPHAN_NOTES && !pages.length) {
    pages = dv.pages(FOLDERS).where(x => !x.file.outlinks.length)
    if (pages.length) new Notice('There are no links out of this note', 5000)
}
// Get notes without a 'created' YAML property
if (!pages.length) {
	pages = dv.pages(FOLDERS).where(x => !x.created)
    if (pages.length) new Notice('Found note which needs a created YAML', 5000)
}
if (pages.length) {
    // Open the first note for review
    const file = app.vault.getAbstractFileByPath(pages[0].file.path)
    await app.workspace.getLeaf(false).openFile(file)
    return ''
}