Tinderbox for Historical Research: Can Tinderbox do this for me?

I’m writing a book on one facet of the Manhattan Project during WWII. My thought right now is to start with a simple Tbx implementation/schema in which my notes are all related to individual persons. Each note will capture a fact about that person’s thoughts or activity at a specific point in time. Each note will have a user defined $Person attribute that is the person’s name (e.g., EnricoFermi). Each note will have the predefined start and stop date attributes. It will also have a user defined $Location (Think MetLab, OakRidge, LosAlamos, etc.).

Now my challenge: I wondering if Tbx can search through my notes and find all instances in which two or more persons are in the same location at the same time - signifying a collaboration/meeting/special event? If Tbx can do this, can it also create and populate a “Meeting” note that would identify the meeting and list the meeting attendees?

If Tbx can do this, it would save me a lot of time attempting to identify all of the key meetings and collaborations that played a role in the story I have to tell.

I’m not asking for a lot of detail in the answer at this point. Just enough information to tell me if this is possible and to point me in the general direction of how such a capability could be implemented.


Yes, it can do that. But I wouldn’t do it that way.

I would create a prototype called (perhaps) pHistPerson, another called pHistEvent and another called pLocation and perhaps another called pConcepts or pIdeas, or something of the sort. This gives you more flexibility. When you create a new note for a person, you could link that to all the events they are connected to – but – crucially for historical research – you can have events that nobody is linked to, but are major events in the war. You could then have a map or timeline showing how the progress of the Manhattan Project appears against those events.

All of the notes can be linked to each other in various ways, and you can even name the links to show relationships. So you might have a link to show that two people are friends, or colleagues, or whatever.

You can also add attributes as you go along, and find that you need to add new information.

Here is a screenshot of some information that I had related to WW1. The red notes are major actions, the cream ones are publications put out by the British army, and the others are just events of some interest.

Take it from me: the ORDER in which things happen is pretty important for history! Start from the events, then put in the people.

And remember that an “event” can be something like “Fermi comes up with the idea for xyz” .

1 Like

Here is a very, very simple example of how one might start a project like this. Nothing in this is set in stone, and any or all of it can be changed. This is just one person’s idea of how it might be done.

I would say that it is a good idea to keep the Text of one’s notes fairly short (the idea of atomic notes). This means that notes can be categorised, filtered, sorted and displayed in various different ways according to different needs.

Just an aside – I have created a Prototype for historical characters rather than using the standard one for Person. One might conceivably want to keep a list of collaborators or contacts using the latter.

History example.tbx (244.6 KB)

1 Like

The ‘event’ idea can be loose, i.e. per @Sherrell’s sketch above, just the fact that at time (start to stop) various people were in the likely vicinity of one another. We may know for sure some/all of those people met but we may wish to note co-location so we may infer a possible meeting later in our research.

Don’t be surprised by Tinderbox’s build-in ‘Events’ prototype. You can use it for what you need, modify it (you might not need to use $DueDate, for instance) or simply use it as inspiration for your own prototypes. BTW, when using a custom prototype naming schema (I generally use a lowercase ''p" prefix), I leave Tinderbox built-in prototypes unnamed as some processes auto-add such prototypes and if you rename them the prototype is re-added with the default name and confusion ensues. Indeed, if I use a built-in prototype in a big project, I normally add it, make a copy named as per my schema and use the latter (the built-in one can then be deleted form the TBX if wanting to cut down on cruft—Tinderbox will re-add if it needs to).


Martin & Mark:

Thank you. Your comments have my mental cogs turning…

Martin: Your illustration is extremely helpful. Thank you. Your list of prototypes is almost identical to one I drew up for myself a couple of days ago: “person”, “organization” (as in a university or company), “event” (could be personal, Manhattan Project, WWII, PhysicsHistory, etc.), location, concept (as in a scientific concept), and challenge (as in the challenge of scaling up processes or going from theory to practice) and “tension” (as in the tension between need for secrecy and need for scientific collaboration, or scientific culture vs. military culture). I’m trying not to be overwhelmed by all of this but I confess I feel some need to have at least a basic set of prototypes in place as I begin, because I do not want to have to revisit references in order to extract information I could have (and should have) extracted the first time I read the reference…

Mark: your comment touched on a conundrum I have but did not mention in my original post because I thought it to far down in the grass…

I’m embracing the “atomic notes” philosophy and have thought I would build everything around what I call “human timelines” of all of the individuals of interest and then learn how to let Tbx be my agent to extract order and implications from their actions. That said, some folks are co-located for long periods of time. Other folks rendezvous for a short period of time at a designated location for a designated purpose (e.g., a meeting) and then disperse. That designated meeting location may be (often is) where some members of the community are permanently co-located. So… as you point out, Mark… contemporary colocation is not proof an individual participated in a specific meeting event…

Now of course, I can have an atomic note that says something like “Person 1 attended a meeting at OakRidge” with the person’s name as an attribute, beginning and ending date attributes and location attributes; and then find a way to have Tbx flag all such instances in which 2 or more people were present on the same dates at the same location. (I’m simply trusting at this point I can find a way to do this…). But I’m wondering (per Martin’s comment) if I should still have Event notes (with Title, Start/Ending Dates and Location attributes. It strikes me that rather than going with the human timelines alone and asking Tbx to flag possible meetings, I would be well served by creating Event notes for meetings I know occurred?

I’m trying hard not to get out in front of my headlights at the moment. I don’t need to be convinced of the wisdom of the “emergent order/incremental formalization” philosophy. I’m a believer. I’ve seen it play out many times during my career as I tackled various problems.

I think I’ll begin by creating a Tbx “Sandbox” area populated with only 5 persons. I’ll populate it with a few life events for each person. Some will be events in which they colocated with various persons at a defined location for a short period of time. Then, I’ll see if I can learn how to make Tbx survey the notes and flag the instances of simultaneous colocations. Once it flags them, I’ll have to figure out what to have it do with that information, but I’ll cross that bridge when I get there.

Does this make sense?

Techniques I find helpful when creating notes with observations about facts that are probably related, but I’m not entirely sure yet.

One is to use so-called Ziplinks, which are quite robust in quickly correlating notes with one another, or even with newly-created notes on the fly. In conjunction with Map views, links can help work out dependencies or relationships. It’s sometimes faster to do some quick working out of ideas this way, before committing notes to assigment to various prototypes.

(Speaking of prototypes, recall that prototypes support inheritance. For example, a Conference prototype can have an Event prototype as its prototype. The Conference prototype inherits all the displayed attributes of the Event prototype, plus adding its own conference-specific prototypes.)

The other tools I use a lot when trying to rapidly work out relationships and dependencies are Hyperbolic view and the Attribute Browser (“AB”). There are numerous threads here about AB – worth a look some time.

1 Like

Martin: I forgot to ask… In your schema, how do you handle the placement of individual persons in each of the events? That is, how do you tell Tbx Fermi was present in Chicago on 2 Dec 1942 for the 1st sustained nuclear chain reaction? Do you simply create a link between the person and the event? Won’t that make for a really messy visual map when one is dealing with a 100 people and 100 events in which various subsets of folks participated?

I may add 3 Locations and a few Events to my Sandbox and just play with it…

Thanks for tutoring me!

Here’s a tbx that does something like that. I link a person with a place and edit the type of the link to the date the person was in the place. Agents collect people who were in a place, and people who were in a place on a date by searching in links. This may not work out for you since your people are not necessarily popping down the local cafe for a coffee with a chum on a single date. Nevertheless, I hope it is of some benefit.
links.tbx (116.0 KB)

Personally, I do two things, with the second being automated. In the event, I would put the person in the $Person attribute. I have an action code on the event note that would automatically create a note for this person and place them in “/Resources Folder/People Folder/” if they don’t already exist. Next, the newly created note or the existing note is automatically linked with the link type “Person” to the event. If there is more than one person in $Person (each person separated by a semicolon), then my automation would cycle through and perform this same process for every person. I do the same thing for Events, Regulations, Terms, Specifications, Standards, etc. This does a lot for my writing. It lets me write and create notes at the same time, all we’ll stay in the context of the note I’m working on. If I want to edit the newly created or linked not, I simply open this links pane, click on the linked note, and tear it off into a separate window. This then lets me edit the note, again in the context of my current work, close the note, and then go back to my current context.

Doing both is important for many reasons, 1) links to follow with aliases, 2) if you paste the note into another file the attribute values will carry over to the other file if the attribute exists in that other file, 3) you can run any number of actions on both the link and links types and the values of the attribute value to transform and transcode your notes, 4) it helps with indexing, especially if you are working on simultaneous projects in the same TBX file that is connected to the common atomic notes in the resource file, 5) links and attributes value can be used to quantify the effort, e.g., number of incoming and outgoing links, x steps away from y event, number of people attenting a meeting, etc. (again, all this can be automated with action code), 6) having the notes created from the value in the attribute lets me provide the people, define the terms, etc., which then lets me easily create glossaries, indexes, tables, charts, and other glorious details. I’m sure I could come up with other reasons.

Also, once you have your links set up, this really makes the hyperbolic view shine. :slight_smile: Once you have dialed in your attributes, the Attribute browser shines. :slight_smile: Once you have dates or your notes, then Timeline View shines. :slight_smile: Again, as your formalization starts to mature and the attributes populate, all the pieces and tools fall into place.

Tip 1: Pay attention to the link direction, i.e., To or From, as this can have both computational and cognitive implications.

Tip 2: If you go this route, you’ll also need automation to unlink notes when items are removed from the attribute, e.g., when you remove something from an event, you want the link to be automatically removed. In other words, you let Tinderbox handle the automatic details for you.

1 Like

I think @satikusala has already given an answer to this, but I would just observe that you can have as many Attributes as you like for any Prototype or note. So for any event you could potentially have an Attribute for KeyParticipants another for SecondaryParticipants and so forth. You can invent whatever you like, and indeed you may well find that you are splitting up your Attributes or developing new ones as you work with your material. Potentially you could have different kinds of events, each with a different Prototype and different attributes, for example pScientificAdvance, pScientificConference, pMilitaryEngagement, pPoliticalMeeting, etc.

Equally, you might divide your People into categories so you might have Attributes like PersonRole or PersonSpecialisation and give each person a designation like “physicist”, “politician”, etc. Or you could have a different Prototype for each category of person.

If you do things like this, you can use Agents or Smart Adornments to filter and display only the items that you want to see.

I think the most important point to make is that you will only find out what is useful by working with the material. Tinderbox is flexible enough to adapt to whatever your developing needs are.

I think this is almost inevitable, and some might even say it is good practice to revisit our sources. We cannot always know what is important the first time we examine a source. As our understanding develops and becomes more nuanced and subtle, we may realise that things we had discounted before are more important than we thought, or should be viewed in a different way. This relates to what I wrote in the paragraph above. It is only by working with the material that we come to understand it and have some ability to judge its value. This is why a tool like Tinderbox is valuable, because it not only helps us to develop our understanding, it is capable of adapting with us, of being reshaped, to accommodate our developing insights.

In a sense, the whole point of a project is to discover what we don’t know, and trying to predict what that might be before we have started is putting the cart before the horse. Sometimes the results of our research are very much not what we expected, or hoped for. I once saw somebody work on something for about a year in order to discover that the answer to his research question was basically “No”. But at least it wasn’t “42” :grinning:

1 Like

Yes! Totally agree with this.

@Sherrell, going the initial ‘sandbox’ route and just trying stuff out is a good choice and will repay the seeming side-quest.

On the ‘possible meeting’ event scenario, if you have the Aeon Timeline app you might find that useful for such fine grained work. It’s less an issue of ‘right’ tool, but more that AT is more closely focussed on such things. It allows CSV or Tab-delim interchange of data so it’s not hard to shuttle info to/from for time-lining fine detail. Don’t worry about the how of export —the forum can help if/when you get to that. As with concurrent use of Tinderbox with DEVONthink, Bookends, etc., Aeon Timeline might help suit some. FWIW, AT’s genesis was in the Scrivener community, to help author’s plot character’s intersecting narratives. Great if you need it, perhaps overkill if not—and the app’s website has some info and a free trial if you want to dabble. Whilst still exploring your TBX’s structure might be a good time for that.

On ‘revisiting’ references, the effort is subjective. If you have a Reference Manager that works well with Tinderbox (Bookends gets mentioned, other RMs are available!) or are taking note on sources in DEVONthink, then those notes/sources are generally one click away via a link to those apps. In other words you don’t need to bring everything into your TBX. My suggestion is that, at minimum you bring info you want to use directly, i.e. annotate further or link to/from. With the inter-apps links some tools offer, the old need to put it all in one app—if only to be able to find/see the content—is lessened. Of course, there is no ‘right’ way in this because the balance of one doc vs data in several is a personal choice. so, pick the blend of those that suits you.

Whilst you know a book is the outcome, whether you adopt an outline-based approach (i.e. reflecting the end output) from the beginning is also a choice. If the book’s content isn’t clear, don’t feel obliged to adopt an export-tuned outline structure too early. Again, this is choice. Such a structure early on is perhaps more use book #2 as by then you’ll understand the start-to-end process better.

At the early sandbox stage try out the various views and see how/if they help. The sandbox exercise will help you fitness what things are of a type (and likely would benefit from a prototype) and the degree of atomicity needed in the notes. It’s easier to address something that is a note (or note attribute) rather than some text in the $Text of another wider-scoped note. Again, the sandbox testing helps get a feel for this. The atomicity isn’t hard edged, fine detail is only needed when its needed. The exploration is to figure out those thresholds.

Don’t get me wrong, I love the sandbox method and the “break out the problem into a smaller file method.” I use it all the time.

However, as @MartinBoycott-Brown note, " you will only find out what is useful by working with the material." Sandbox is great, but it is not until you get to “real-play” working with “real data” that the “real learning” starts. And yes, be prepared for the real learning to be cognitively painful sometimes, especially if you’re on a deadline and you can’t get the tool to do what you want to it to do. In this situation you move from cognitive pain to physical and emotional pain. My solution for this is to STOP trying to make the tool what I want it to do. Take a step back. Ask myself, “What is it that I’m really trying to do at this exact moment.” I then do that to the best of my ability with the tools I have to get the job done. Often, that means pulling out Word, PowerPoint, excel, paper and pen, whatever. Once I’ve calmed down and I come back to Tinderbox, I will have to see a small error in my template code that I interject, not Tinderbox, or a different approach that I could not or was unwilling to see or accept at the time I was trying to force the world into the image and the way I wanted it to work.

Long story short, working with Tinderbox has taught me more about life, thinking, and mindfulness than any other tool I’ve ever worked with. :)`

Yes, and ‘sandboxing’ can quite reasonably cover both open testing and exploration with ones own data. The latter yields more insight but at outset even just tinkering with ad hoc data can help shift one past the shock of the new and help make those first steps in a project.

1 Like

This is especially good if you have a HUGE file. @mwra has taught me that if I’m having trouble with my data or with Tinderbox, I pull out the troublesome part into a small file and tinker with it there. This reduced distractions, possibly conflict code you may have forgotten about. Once you’ve “solved” a problem or generated a new insight, you can always bring the solution and new insight back to your original file.

1 Like

Mark: I do have Aeon Timeline and have used it quite a bit. Though I must confess, I find data entry into AT a bit cumbersome. I actually have an initial AT file setup for the book project with a couple hundred entries in it. AT is GREAT for displaying relationships between known/defined events and activities. I’m not aware of it having the ability that Tbx would have to sift through data (dates and location attributes for individual people notes) to “discover” conclaves and meetings. However, one could create individual timelines for each person as well as for the known events, and simply visually scan the timeline display to find concurrent events. I’m a bit intimidated about doing that in AT. But perhaps this is a bridge farther than I need to go (at least for now). Just entering “Defined” Events (meetings) in Tbx with an Attendee(s) attribute that could be employed to link the event back to other information about each attendee may be sufficient.

I’ll rethink how I’m using AT - what might be done better in AT and what might work better in Tbx.



1 Like

Michael: I"m just thinking about (may do it this weekend if I can find the time) creating “My Tbx Playground” for prototyping various kinds of notes, agents, and action code – essentially similar to Martin’s recommended starting point. Probably 5 people, 3 locations, and a few defined events – and go from there. Adopting/defining prototypes won’t be an issue for me. I’m familiar with the concept of Prototypes and Agents. I’ve used them both in other software ecosystems. However, I’ll definitely be on a learning curve as soon as I turn to Tbx Agents. Even steeper when I drop into Tbx Action Code. Will no doubt be prowling all through the forum and your videos to get basic primer…



Be sure to check out today’s meetup and sample files. I’ll publish them in about an hour, once they’re done processing.