Tinderbox Forum

Agents or Aliases for my library

Hello there,

my name is Kai, I’m a Tinderbox newbie from Germany. So far I’ve been playing around with Tb7 for a few weeks, working through the Getting Started PDF and the help files. For my first real project I decided to create a TB project to manage my extensive personal library (about 2000 books, both fiction and non-fiction, and about 300 magazine issues). Which go me thinking about how to set up said project. I have a lot of books/magazines with several authors (short story collections, for example). Do I create agents for the authors, using $Author.contains(“author name”) to group the books or do I create aliases for books with several authors? Which one is preferable? What else should I keep in mind for a project like this?

Apologies if these questions sound silly, but for me these are the things I’m struggling with right now.



Welcome to Tinderbox, Kai.

A great thing about Tinderbox is you don’t have to decide. You can add agents on the fly, see if they are useful, and delete or revise them.

If I were doing this project, I would first focus on recording my data on the 2,000 books and 300 magazine articles. Let’s say you create a basic prototype for the books, maybe something like protoBook. You’ll want to consider what attributes you want in that prototype. The standard attributes in the system’s “References” set of attributes probably have most of the ones you need.

So I would design that prototype. And then I would enter data for maybe 25 or 50 books and stop. I’d play with the data. Is the protoBook prototype working for me? Do I need more or less attribute info? And I’d play with some of the agents you mentioned. I would adjust my approach if needed, then to on to add the next 25 or 50 books. My point is that if you’ve set yourself a tasks to do data entry for up to 2,300 artifacts, you want to take your time s-l-o-w-l-y to build up to the stage of doing a full-out data entry push. You don’t want to add the info on 1,000 books and realize you forgot to capture the publisher name and need to go back to book 1 and start over.

So: a few pieces of advice. Use incremental approaches to structure, especially prototypes. Build your document in stages – don’t rush it all at once. Agents are your research assistants – and you can have a lot of them. So don’t assume you are committed to your assistants – if they are not working, dismiss them and get a new one.

Hope that helps. It’s a big project you settled on, but can be rewarding if you give yourself a lot of time to step back and see what all that data is telling you.

It depends on what you want to do. Assuming you’ve entered all authors (as discrete list items) into the $Authors attribute, then try looking at Attribute Browser view and select $Authors as the attribute of interest. Each author (or discrete combination of authors) will get a separate heading in the view above a listing of all their books.

In a large collection you may find you need to harmonise author names as the same person may use a different styling of their name, so they get listed together. For example John Smith may appear as ‘John Smith’ on some of his books and ‘J Smith’ on others despite being the same person.

Thanks for the advice and the friendly welcome, Paul and Mark. I like the idea of starting small, I think I might have already overwhelmed myself by importing a CSV file from an older software I used to manage part of my library.

Currently I’m wondering how much load the agents might create: let’s assume I have about 1000+ different authors in my library, and I now create an agent for each author to group the books by author in Outline view. Is that feasible?

Regadring the attribute browser Mark mentioned: if I add the $Author attribute for each book, will a book with 2+ authors show up under each author name? I’m also thinking about magazine articles - if I add each article as a seperate note in a container with the magazine name, these should be listed as well, right?

If you set up $Author as a list or set attribute, then you can have multiple authors (separate them with semicolons) and attribute browser will list the book under each author.

Agents are not especially burdensome, but attribute browser is a much better solution than 1000 agents! Another possibility would be a single agent that grabs each book, and sorts itself by author.

First: Authors (note the ‘s’) is a built-in ‘System’ attribute - there are quite a lot of them - see about Authors: the ‘$’ prefix here is used just indicate I’m talking about an attribute and not using the literal word ‘Authors’. They are essential predefined but only added as a stored value (data in the TBX) if a notes is edited to use a non-default value. Thus $Authors is blank by default. Once to add values to it in a note, that note will store a $Authors value, whereas a newly made note will have no such entry. This approach helps keep down the size of your TBX.

Let’s say you have a book "Unknowable Things’ by two authors A. B. Cee and D. E. Eff. If you add them to $Authors and show it is a key attribute, it will look like A. B. Cee;D. E. Eff. The semi-colon is used to indicate the separation of the list items. Below is how this note would look in attribute browser:

Attribute browser, by default reports on the whole document, so, ‘Yes’. Read up on the view - you can set the scope of the view to a narrower focus as desired.

To back up what you have heard from several others, I think the easiest way to do this is to bring the Attribute Browser into play. Specifically:

  • Create a Set-style attribute called $Author (or something similar);

  • Enter a single author’s name – or, for multiple authors, just add them one by one, separated by semicolons;

  • Then, go to an Attribute Browser view, and use the settings to see entries grouped by $Author. Presto! You’ll have all the books or articles grouped under their respective authors.
    For multiple authors (as you’ve heard), the book will appear under each author’s name. For the special cases where you want to see notes only in a multiple-author setting – ie, you want Oklahoma! or The Sound of Music by Rodgers and Hammerstein to appear only in an entry for the two of them, not as an entry for Rodgers and also for Hammerstein, you could handle that different ways. Either set up an agent for that edge case ($Author==“Rodgers” & $Author==“Hammerstein” ) or have the entry in $Author be “Rodgers and Hammerstein” rather than “Rodgers; Hammerstein”.

Good luck!

Update I see that Mark A has answered to similar, and more precise, effect while I was typing out this answer!

Thanks everyone, I will give that a try tomorrow! :slight_smile: