Hi Tobias,

I agree that magictabs and cornell could and should share patterns and 
paradigms. The difference could be more a question of themes and usecase 
than a question of code.

After spending a lot of time trying different solutions for my own usecase, 
my essential conclusions so far are the following:

   1. *Types: *The relations are not only between tiddlers but also and 
   first about *types* of tiddlers: for instance, publications are related 
   to authors. Thus, we need a way to define types (since we can't use the 
   field type). And a same tiddler can belong to different types (an author is 
   also a person, a note can also be a comment). 
      - My solution in MagicTabs is to use system tags with the prefix 
      *$:/type/* like* $:/type/author, $:/type/book, $:/type/note*, etc.
         - That way, it is easier to differentiate them from regular tags.
         - I can hide them from view mode (with a custom ViewTemplate/tags)
         - I can apply a different ViewTemplate for each tiddler type.
      2. *Fields: *The semantic relations must be meaningful but general 
   enough to be applied to different types of tiddlers.
      - So far, in MagicTabs, I use the following generic relations:
         - *authors*: this is a list field since a book or a paper, a song 
         or a recipe, a plugin or a monument, can have several authors. 
         - *about*: a note, a comment, a quote, a book, etc., is *about* 
         something, it talks *about* something which can be (or not) 
         another tiddler. This is also a list field since a note can talk about 
         different things.
         - *source*: the source of a quote is a publication, the source of 
         an image can be a webpage, the source of a character can be a novel, 
etc.
         - *parent*: this field is to create a generic hierarchy or 
         categorization different from authors and source. This is a list field.
      - But specific relations can be necessary:
         - *ingredients*: for cooking recipes
         - *courses*: for students and teachers, resources, lessons.
      3. *Lists:* Besides types and fields, we need to show the related 
   tiddlers through lists. And we need a mechanism to *relate lists to 
   types*. 
      - This is where I use the *bottom tabs*, which is a solution among 
      others. And the mechanism used by MagicTabs is similar to the 
      $:/tags/foo used by the core:
      - Any tiddler tiddler tagged *$:/tabs/foo* will be displayed as a 
         bottom tab in all tiddlers tagged *$:/type/foo*. 
         - For instance, if we have tiddlers tagged *$:/type/ingredient*, 
         we can create a tab showing a list of recipes using those ingredients 
with 
         a tiddler tagged *$:/tabs/ingredient* and the corresponding list 
         filter.
      4. *Customization:* We have to separate contents (like filters in 
   tabs) and the way they are displayed. If this is done properly, then the 
   same semantic relations can be shown as bottom tabs, left-column contents 
   (Cornell), or any other way, applying a theme or another.


To me it feels like I want to dive into your code a little more before 
> setting out to implement that "cornell stuff".
>

The core of MagicTabs, if you want to understand how it works, is:

   - $:/plugins/amp/MagicTabs/ViewTemplate/TabsBar 
   
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2FViewTemplate%2FTabsBar>
   - $:/plugins/amp/MagicTabs/macros/tabContents 
   
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2Fmacros%2FtabContents>
   - $:/plugins/amp/MagicTabs/macros/tabCaption 
   
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2Fmacros%2FtabCaption>
   - $:/plugins/amp/MagicTabs/macros/inputSlider 
   
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2Fmacros%2FinputSlider>

Best wishes,

Alberto

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.

Reply via email to