Sunday Nov 05, 2006

Finding stuff I said last year!

Since the introduction of tags, I have slightly re-organised this blog site.

 It now has two new features, Yesterday's Words and About Me. These features are available through the small font menu bar above the category list. Yesterday's Words is an archive feature, allowing you to look for things in this blog by Category, Tags, Publication Month, Keyword Search and review titles of the last six months article titles. I have done this because we now have tags, and people ought to be able to see the tag cloud, and I have come to the conlusion that the front page side bar was begining to be hard to use. In order to improve the ease of use I expect to move my feed to another back page, together with some of the bookmarks I have stored. At the moment it remains on the front page and on Yesterday's Words.

Both these new pages have tuned and smaller sidebars. I have done this by utilising the roller #includePage() macro and hold the banner (with the duck & licence) and the sidebars as seperate files. The content for Yesterday's Words is also held in an external file. This should all make updating the site a lot easier, and allow me to move from HTML tables to CSS at some time soon.

I hope to introduce a reading list page about the books I am or am planning to, or have just read.

The navigation bars at the top (and side) offer a page called site search. This is safe checkpointed version of Yesterday's Words; I created it to permit a "roll forward from" point in case I made any silly and drastic mistakes. I will delete it some time soon, so I recommend that you don't bookmark it.


Thursday Nov 02, 2006

More about Roller tagging

I have just been experimenting with the tag macros. It is possible to display an articles roller tags using the #showEntryTags($entry) macro. This can be inserted in the entries loop in _day file. 

Because I am planning to continue to use the technorati tags, unless I plan to use a hidden display format I would have two copies of the tag list in the HTML rendered version. So I have not implemented this macro in the _day file. 

I am struggling to get the tag cloud displayed, it seems to refuse to interpret the macro call

The #showTagCloud macro was not implemented since the velociraptor code is so simple (yeah right, I couldn't work it out). I now have a tag cloud implemented on the "About Me" page; Dave Johnson gave me some sample code to make it work. There were other reasons for not implementing showTagCloud as a macro. The team were unclear given the number of customisations that would be required, how used the macro would be, because no matter how few used it, it would need to be maintained.

First set up some CSS rules, roller offers five levels of weight, so five rules is good. 

          .s1 {font-size:60%;}
          .s2 {font-size:80%;}
          .s3 {font-size:100%;}
          .s4 {font-size:120%;}
          .s5 {font-size:140%;}

These are relative rules, which is jolly good so they inherit from the Body or Paragraph rules, but you can make the rules as complex as you want. The following velociraptor/roller code implements the tag cloud in the html file.

          #set($mytags = $model.weblog.getPopularTags(-1, 100))
          #foreach ($tag in $mytags)
              <a class="tag s${tag.intensity}" href="$url.tag($"

Note the way that the CSS rule names agree with the class attribute of the anchor tag.

This article was updated at 13:30 GMT 3rd November GMT.


Tagging comes to Roller

Yeserday,'s "Roller" implementation was updated to V3.1. The roller projects page is here.... This has integrated tagging and the Xihna Editor. I had to change the editor in my settings page and this is the first article written using it.

I wonder how to apply classes to the paragraphs, so

dave B$ whence html

was tagged by using the show html source button and inserting the class attribute by hand.

The article is also the first article with roller integrated tagging, so I'm not yet sure about how to ensure that technorati tags and roller tags are the same and the tags are posted to the relevant sites. So we may have two sets of tags on this article.

The technorati tags are


and I have repeated them in the roller entry tag edit box.

I may go back through the blog and tag every article, or at least all those I have already tagged, and I need to work out how to display my blog's tag cloud


Friday Sep 29, 2006

Voting in the Blogosphere

As you may see, I have amended my theme to offer you blogosphere voting buttons. How did I do this. With help from Rich Burridge I amended my themes _day template file.

<!---- This is the digg example ---->

<a href="$absBaseURL$entry.permaLink;title=$entry.title"
  rel="external" title="Submit it to Digg">

<!-- I am using Rich Burridge's Icons -->

  <img src=""
      width="16" height="14" alt="" border="0"/>
  </a> &nbsp;

The Border="0" is quite important, as in my original implementation I did not treat the four icons equally. This controls if there is a border around the picture, which since I have a white background and white icons, looks better than the active link colour border, which is as you can see orange.

I wonder if I should convert the theme to my web space greens.


Monday Aug 28, 2006

Semantic footprints through time

Another thought (about tags & prompting, see also here... or here...) is that prompting (& categories) inhibits evolution. Either the ideas being explored change, or the common use of words chnage. An example on this blog is that I should probably create a travel category on this blog rather than treat it as a qualifier of Culture, but because I am prompted, I have never bothered.

On the other hand, I also want you to able to find all the articles in a natural series, so I value the stability but its means that you have to learn about my use of the catagories. The search engine and article list on the sidebar are also category context sensitive which is good.

(I really need to see the coming Roller tags implementation, to see if tags and categories really are interchangable).


Tuesday May 30, 2006

Visualising tag clouds

Two points come to mind on reflecting my conversation with Elias Torres at www20006, (See Tags and Spontaneity below...). First maybe on tag clouds we should use colour for highly used & less frequently used with Red being highly used and Blue (or Indigo) less frequently used. This should mean that the less frequently used tags, which are the most discriminatory (i.e. meaningful) are not visually eclipsed by the most heavily used.

Secondly, if we were to look at the structure "UNIX > Solaris > AIX, the significance would only be true if all taggers tagged the articles as UNIX & Solaris or UNIX & AIX, and only then could we be clear on the meaningfulness of a tag. This illustrates that a stranger may need to be familar with the crowd's use of language.

Thirdly I'm also not sure how we might 'refine' a query if we start with very meaningful tags, we would have to re-query, although the interface offers you a list of associated tags even for the smallest of queries.


Tuesday May 23, 2006

Tags and Spontaneity

We broke for coffee and I bumped into Elias Torres, one of the roller development team, so we had a long chat about tags on the web , looked at how to make roller's implementation better and how I could become more helpful by creating an environment to test this stuff. He pointed out that my Qube (currently not working) needs replacing.

We tried to remember the state of our debate as we left it. Elias co-authored a paper "Ranking Bookmarks & Bistros", one of the conclusions is that tagging software should not be too helpful in prompting for tags; the spontaneity of the tag author is an important part of the folksonomy. My view is that a tagging correspondent will have a personal structure to the tags they use, in my case I have a small group of 1st order tags, which will always be used, or nearly always. I believe that my contribution to the folksonomy is more effective if I am helped to keep to my structure. For my medium order tags, I want to be prompted as to my spelling and which words I use to imply meaning. Elias' argument is that the collective expression is stronger if more spontaneous (I think). I think that part of our disagreement is that I focus on tagging for personal use and at time of discovery and hence initial tagging, Elias is concerned about the stranger looking for wisdom in the tag base.

For instance for my retrievals I like to go in large or medium and refine my queries using the "+" function adding filters to my query until the page is small enough to inspect. (Is this a binary chop?) It all reminds me that I need to ask him for the data model (author, articles, articles, tags) numbers and growth rates. I wonder if Linda or Will can give them to me from


Tuesday Jan 03, 2006

Implementing Tags in a Database??

I was considering why doesn't offer a cloud for tag based queries, while it does offer the cloud for User based queries, and I received the reply that it was (probably) related to query cost, which set me thinking. What would the database look like?

 entity model

Is this right, look at the para below, the requirement that a tag is used by someone to describe the bookmark is lost in above version of the model.

Surely we have only three entities, User, Tag & Bookmark (also known as URL). Both User & Tag have a many to many relationship with each Bookmark. We can resolve these many2manies in two ways, by using an allocation table, or by adopting a meta model model.

The data model must take into account the fact that a User describes a bookmark using one or more tags. i.e. DaveLevy describes as (UK web World News politics). Other people have used different tags, although only a few associated it with journalism. Each of these user, bookmark, tag relationships must be stored seperately; otherwise we loose the user's relationship and ownership of the tag set. This implies/mandates that somwhere a user/bookmark/tag database object (either table or index is required). This means that the bookmark entity must be related to the user by an allocation. This is required to implement the many-to-many, but also to allow the tags to be owned by a user. The tag must also have an allocation between the Bookmark & itself but is owned by the defining user i.e. again we must have a User/Bookmark/Tag intersection entity. The model immediately below meets this requirement, although implementing the Tag attribute as a membership of the tag - user/bookmark relationship and implementing it as a foreign key is also a possibility.

Dave's refined ERD

I have not documented the name of the relationship between tag, bookmark and their allocations. This becomes quite hard because we have transformed the entity into "operational masters" and they are likely to be implemented as indexes. The difficulty in naming the relationship between these entites and the allocation entities implies that we have modelled the problem well. Neither does the diagram above illustrate mandatory/optional attributes of the relationships. The Knows of relationship is optional. During the period between registration and the first bookmark, a User will have zero user/bookmark allocations. I suppose it is possible to enter a Bookmark without tagging it, which makes the Described by relationship optional as well. If either of the allocations exist though, their masters must exist.

It should be noted that any domain of definition can be applied to the bookmark entity (or at least its key). By stating that the bookmark must be (say) a roller article URL, we have a viable tag model for roller articles. In fact, I have considered opening a new account exclusively to act as a blog index and to provide a tag/cloud map for this blog.

I am next going to look at some queries and the relational algebra that can be applied to this model; the reason I developed the model was to examine the performance implications of different entry points.

tags: ""




« July 2016