Tinderbox Forum

An agent for a list of references

Hi everyone! I’d like to make a general index of readings classified chronologically, readings already entered as references in my attributes. But, instead of creating a note and “ziplinked” list of references (books, articles, and so on), I imagine that Tinderbox and the Attribute Browser can easily generate such a list. Now, maybe I didn’t search enough in the forum, but I did not find any example of request which could do that. I mean: if I create an agent, what do I need to request about $BookTitle, $ArticleTitle? Do I need to create a boolean attribute such as « Read » in order to tell Tinderbox to gather every document I already read? Thanks for your help.

Much depends on exactly how your readings are represented. Perhaps you could share an example? But let me use my imagination and we can see where we get.

Let’s suppose we’re taking notes on articles and books, and all these notes inherit from the built-in prototype Reference. Some references are things we want to read, or that we think we might eventually want to read. Others are things we have read; as we read, we take notes in the Text Pane of the reference.

We might make an agent:

Query: $Prototype=="Reference"

This gathers all the reference. But we want only the references we’ve read:

Query: $Prototype=="Reference" & $TextLength>0

You want to classify these chronologically. You could sort them by $Created (when they were added to your notes) or $Modified (the last time you edited the text), or you could add a $DateConsulted attribute to record the date when you began to read this reference. Or you might use $StartDate and $EndDate if the timespan is interesting.

Thanks Mark for your answer. I understand. I could add a $DateConsulted to my notes.
This is an example of a references note I use:

Article

Initially, I thought I could sort my references as it follows:

Liste

But, in the meantime, reading your answer, I finally found in the Attribute Browser a way I already knew to list my references:

This is a good new start!

1 Like

The chronological part is easy - and Date-type attribute will give you date order (in either newest-first or oldest-first order). The less obvious part is how you want the secondary feature (i.e. the type of reference) to be shown.

Attribute Browser looks at the whole document, or all content of a container (i.e. that whole branch of the outline. You can further filter the listed items in that scope using an agent. Or to use only an agent, set the scope to the whole document and write a query as you would for a normal agent. Which ever method you choose gives you all the data rows in the view. for instance if you have a prototype just for your reading notes, you could use document scope (i.e. the ‘container’) and a view agent like so, assuming “pReading Note” is the prototype name:

$Prototype=="pReading Note"

Next we choose a primary attribute by which to gather the data. By this I mean that the rows are inspected for discrete values of the target attribute. Each discrete value for the target is used as a banner heading in the list. If a Date attribute is selected, a category banner is shown for each discrete day for which a listed note has an entry.

So, here you might wish to use a date.Modified might be good start as you my re-edit the note several times after it is first created (Created). You will find the Modified attribute in the second row of view controls in the ‘General’ system attribute group. You can toggle the order of the categories listing so show oldest first or newest first.

Attribute Browser view also allows you to show additional columns, as with Outline view. This might be useful as if you wish to know what type of reference you are using. Although notes will be listed in their $Color colour other visual markers like flags, badges fills and banners are not used. But if you had an attribute ReferenceType (with values like ‘book’ ‘webpage’, 'journal, etc.) you could show that attribute as an additional column.

1 Like

Thank you Mark. I’ll see what I can do.

1 Like