How do you manage News and History related topics?

Hello everyone, I’m new to the community; discovered Obsidian about a week or so ago. I’ve been enjoying reading use cases and potential solutions (and helping out where I can) as I think about how to leverage Obsidian features.

I have noticed that the more rigid the application (in terms of features and how they can be used) the easier to adopt, but less useful. Conversely, an application with a cornucopia of foundational features but no rigid strictures in their use leads to slower adoption, with the common questions being, “How do I use it?” That’s where we are.

On the one hand, Obsidian is very powerful. On the other hand, I wish it had more analysis features and visualizations; once you put all of your notes in one place, it becomes critical that you can look at the data in different ways to make discoveries. Still, Obsidian is very powerful, and as Spiderman’s Uncle once said, “With great power comes great responsibility.”

As I continue to review Obsidian’s capabilities and prognosticate on potential future features (it being a young product,) I’m constantly thinking about how to structure data so that I can analyze it in different ways, even if that means outside of Obsidian for certain functions. It’s important to think about note / data structure at the start, because one doesn’t want one’s notes to be like the “roach motel for data - it goes in but doesn’t come out.” Nor would one want to face thousands of notes that have to be restructured.

Reading the OP’s question and subsequent dialogue got me to thinking. I’ve never done any formal news/history tracking, but like most people I’ve certainly “connected the dots” in my head after reading a few articles, and have wanted to record these discoveries / observations. One tool I’ve found useful in many contexts is the semantic network. Simply put, I like to represent information as nodes of objects / concepts, connected with edges that have definitions representing relationships. There are several very expensive tools that do this as a primary function, but they’re very expensive and I think used by 3-letter agencies. One affordable tool that can do it for personal data is Tinderbox. When I read the OP question, I began wondering about how I would represent a semantic network in Obsidian. This isn’t straightforward because in Obsidian, edges aren’t named.

I’d like to start with some observations from the dialogue I’ve read here:

  • Hashtags are just a construct that Obsidian recognizes and can predefine the search term for you. Meaning, you can make your own identifiers and rely on the powerful search capability to not only limit your analysis to a subset of data, but also limit the graph.

  • Let’s face it, once you amass enough notes, seeing the whole graph at once isn’t all that useful. I’m embarrassed to say that it took me several days to realize that the graph has a search field that allows powerful querying, if you structure your data right. Of course, what “right” means is entirely up to you.

After reading through this topic thread, I decided to turn to Obsidian to see if I could whip up something quickly to demonstrate how I could use Obsidian to visualize data. I promised my kids that I would read the Harry Potter series since they did, twice. When a story has a lot of characters I start to get confused about relationships, so I kept a paper semantic network to keep it straight in my head. I want to see if I can do this in Obsidian. I’m using this example because it’s at hand, and I think you can use it to represent other forms of data and relationships. It took me about 10 minutes to set up.

For my network, each node would be a “thing” that has a type. One type of thing is a person. Edges define things like relationships and verbs. Since this is something I’m doing in an existing vault of other objects, I won’t bother using hashtags, but rely on my own defined keys instead. Here is the example note for Harry Potter:

type: person
# etype: knows
# etype: friendof
# etype: parentof

This note represents the Character Harry Potter. The type of object is “person”. Below this, you see three headings. I need a way to define edge meaning and I’ve used a heading as a key called etype, because we can link to them easily, and know what they mean. The list of etypes here are NOT attributes of Harry Potter, but rather, which edges this object is allowed to accept. After creating some other characters and relationships between them, I went to the graph and specified this search filter:

/^type: person/

This vault has many notes and objects, but I’m only interested in the relationships between people. I get this graph:

graph

Unfortunately there’s no way to put a name on an edge. We see that James Potter has some relationship to Harry Potter and Lily potter. Looking at the James Potter note (object) we find this:

James Potter:
type: person

etype: spouse

Lily Potter > etype spouse
Harry Potter > etype parentof

The last two lines show those two relationships, and you can see how defining the edge type as a header on the target note, we make it clear on the source note what is being defined: James Potter is the spouse of Lily and parent of Harry.

Alas, Dumbledore isn’t associated with anyone. If we want to ask a simple question like, who are friends of Harry Potter, we can select the Harry Potter note and check the backlinks. If you have data with many varying types of associations, this could be a long list of other types of relationships, so we can get a more concise list by looking in the forward direction with a regular search:

/\[\[Harry Potter#etype friendof/

And we get a concise list of Harry’s friends. sadly, if we want to do deeper analysis involving higher degrees of separation or inferences, we’ll have to step outside of Obsidian. But at least that’s somewhat easy. I just answered a question earlier today about extracting the edges from a graph. If we want to ask the same question (who are Harry’s friends) outside of obsidian, on a Mac, open a terminal window, cd to the vault root directory, and issue this command:

egrep -roI ‘\[\[Harry Potter#etype friendof’

and you will receive the same list. If you too want to extract all edges for outside analysis, a cheap way is:

egrep -roI ‘\[\[[^]|^]+’ | sed ‘s/:\[\[/ → /’

The point is this. If we’re careful about how we set up our ontology, we can do a surprising amount of analysis on any number of topics, with minimal tools. I’m confidant that you could manage news and history if the data is broken down to component parts.

8 Likes