Wednesday, April 27, 2005

Wep Page Plus: A Personal Semantic Browser?

If you haven't yet come across the Firefox Greasemonkey extension, you haven't lived... Greasemonkey is one of the trailblazing tools for developing client side javascript web intermediaries that let you wreak havoc with other peoples' websites in the comfort of your own browser (some of the issues arising around the use of Greasemonkey can be found in this post on Greasemonkey: an Historical Perspective).

For the maverick employee, corporate fool or renegade web tinkerer, with too much time - or too little sleep - on their hands, Greasemonkey combined with URIid provides the perfect forum for customising other peoples' websites just the way you like them. In case you haven't already come across it, URIid is another of those pesky Firefox extensions that provides power to the people - in this case, allowing you to skin other peoples' sites according to your own taste...

So - the next time you have an idea for an extra bit of functionality, see the need for a bit of radical personalisation, or can't put up with someone else's site desgin, customise the page display yourself and put it right in your own browser...

Alternatively, if your webmaster can't see why you're proposing a particular change, or doesn't appreciate the suggestions you're making for a site overhaul, rebuild the site locally and show them the benefits directly...

Del.icio.us tags:

Delicious Reverse Lookups Reveal Pages' "Implicit" Keyword Metadata...

I know I should make use of it, but I still haven't got into the swing of using Dublin Core Metadata in HTML/XHTML meta and link elements. For those of you who aren't familiar with metadata, it's a preliminary step on the road to the semantic web, that machine readable infosphere where machines can help humble flesh and blood users navigate the apparently boundless virtual space that is the world wide web.

A step further back from Dublin Core metadata are un-name spaced meta tags, such as <meta name="keyword" content="micro-content, delicious, metadata, folksonomy" /> - but even then, more of my pages than not fail to capture even this search-engine friendly information (perhaps that's why my sites get so few hits?!)

Anyway - so much for the intro...a thought that occurred to me today was "so what if I forget to add keyword metadata to my pages...if they get tagged by del.icio.us users, then surely I should be able to look up the related del.icio.us tags and see how other people have rated the page... In case you were wondering, there is an experimental delicious bookmarking bookmarklet that displays the tags other people have used to categorise the current page...with a tiny bit of scraping, it shouldbe easy enough to just pull out the tags used to describe a particular page...?

Or perhaps a switch already exists in the del.icio.us API? For sure, the Scrumptious extension for Firefox produces a tag list for the currently loaded page...

This leads naturally to the idea of a deliciously opportunistic keyword metadata tagger script, provided as a server-side function call, or perhaps even client side js call, that creates an HTML meta tag with keyword data pulled from the tags used to described the delicious bookmarks that link to the page... Admittedly, it wouldn't be much use if the page was unbookmarked...

Monday, April 04, 2005

UK Postcode Linker Using Greasemonkey

Jon Udell's recent screencast on a combination of his library lookup bookmarklets with the Greasmonkey Firefox extension forced me to sort out a postcode script for Greasemonkey.

The script can be found here and when activated it will convert UK postcodes found on a web page to a link to a Multimap map centred on the postcode, and a second link that provides directions there from my place of work (provided by a postcode embedded in the script).

PS. The actual script for Udell's library/Amazon Greasemonkey script can be found from this follow up blog posting.

Del.icio.us tags:

Prompt or User Selection Bookmarklets: Postcodes & UK dialing Codes

I have been doodling for some time with a series of bookmarklets that make use of UK Postcodes to launch map or routefinder webpages.

But one thing keeps bugging me: how to write a bookmark, triggered by a Firefox Keyword, that will accept input from either the address line or from a user postcode selection on the web page currently being viewed.

This bookmarklet is not quite the solution I had in mind (it doesn't accept an argument from the address line) but it will offer a prompt for user input if text on the page isn't highlighted. However, it does have the advantage that it always works as a button on the bookmarklet toolbar. Here's the code:
javascript:

tel=encodeURIComponent(window.getSelection());
if(!tel) void(tel=prompt('Dialling Code: '));
location.href='http://www.ukphoneinfo.com/cgi-bin-Phones/nng?GNG='+tel

In case you were wondering here's a postcode bookmarklet that takes a postcode as a user selection, or failing that, from a prompt, and finds the route to it from an embedded postcode using the Michelin routefinder.
javascript:

pc=encodeURIComponent(window.getSelection());
if (!pc) void(pc=prompt('Destination postcode: '));
homePostCode='MK7 6AA';
location.href='...//path to routefinder
+'?reinit=1&strStartCP='+homePostCode+'&strDestCP='+pc

Del.icio.us tags:

Sunday, April 03, 2005

Keyword Bookmarklets and Command Line Arguments

I previously blogged about triggering Firefox bookmarklets form a keyword entered in the browser address line. What I didn'r record was how a command line argument could also be passed to a bookmarklet. This page on Keyword Bookmarklets for Scripters describes how the %s variable can be used to achieve this, so for example I can type directionsFromHomeTo MK76AA (not the shortest of keywords, admittedly!) and trigger a bookmark with my home postcode embedded in it that calls up a route finder from my home to MK76AA.

An example bookmarklet is here, essential bits of the code is as follows (you wouldhave to use whatever variable names the actual routefinder service requires, of course):
javascript:

homePostCode='EH37QJ'; //for example...
location.href= '...' //Routefinder URL here
+'&fromPostCode='+homePostCode
+'&toPostCode=%s';


Del.icio.us tags:

Saturday, April 02, 2005

Routefinder Bookmarklet as a Firefox Keyword

As this blog plays catch-up with notes I never made but possibly should have, here's a little bit of documentation to self about getting the most out of bookmarklets...

A few weeks ago, I posted a whole flurry of UK postcode related bookmarklets, that autodiscovered postcode <link /> tags or grabbed highlighted postcodes from a page, and launched postcode relevant pages, such as routefinders.

Now it's all very well having dozens and dozens of postcodes, but that doesn't make them useful if they're hard to find - the Bookmark toolbar is only so big , after all. This isn't a problem with Firefox, of course (not sure about IE? I don't use it any more...) - simply open up the bookmarklet's Properties dialogue, and enter a keyword (I started with fromwork, towork, fromhome and tohome, but these are likely to migrate to fw, tw, fh and th, as you might expect...). To fire the bookmarklet, I simply highlight a postcode on the page I'm viewing, enter the keyword in the Firefox address line, and a route from work (or wherever) to wherever appears as if by magic...

Del.icio.us tags:

Friday, April 01, 2005

Networking the Networks with the Help of a FOAF..?

One of the things I'm involved with that takes up more time than it probably should is RoboFesta-UK, an open network established to promote educational robotics for all ages and abilities and to promote the use of robotics related activities for STEM (science, technology, engineering and maths) engagement. The motto of RoboFesta-UK, and the theme of the network's 2nd Annual Open Meeting in November 2002, is Networking the Networks. As well as administering RoboFesta-UK, the OU Robotics Outreach Group leads the Creative Robotics Research Network. This network is funded by the EPSRC, one of the UK's research councils, and is one of several research networks they fund in the UK.

One of the offerings that has generated some interest for the CRRN is the members' website carousel. Now, I happen to know that some members of the CRRN are members of other EPSRC robotics research networks. But in my experience, our shared interest networks do not necessarily work together as well as they should. Disseminating information between networks, for example, is often a hit or miss affair.

What would be useful, I think, would be to find a way to facilitate inter-netorking through groups or individuals are members of several newtorks. And I wonder of some sort of cut down version of the Friend of a Friend (FOAF) project may be the way to go? Networking the Networks (NTN), perhaps?

So - where to start? The first step, I think, would be to reuse FOAF definitions where possible, but only insofar as is necessary - the NTN specification should start off as the smallest, yet still useful, subset of FOAF classes as possible.

So what's in a network? A loose affiliation of members? A smattering of projects? What NTN needs to capture, I think, are: 1) explicit affiliations of members to networks; 2) associations of projects with both networks and members. Some networks may spawn SIGs, or committees, which may also be worth representing - but perhaps these are just networks of their own, or at the the very least, subnetworks?

Quickly browsing the FOAF Vocabulary Specification, the following classes seem like they may be useful elements of NTN:

I. Group: "a collection of individual agents...This concept is intentionally quite broad, covering informal and ad-hoc groups, long-lived communities, organizational groups within a workplace, etc."

II. Project

III. Member: "a member of a Group".

Contact information for each class would be useful, as would funding information for Projects and Groups. The idea is not to recreate the complexity - and richer semantics - of FOAF. Simplicity is a key - with just enough information provided to allow member info records to stick together...

And what would the purpose of having this information autodiscovered from network members pages be? I'm working on that...

Del.icio.us tags: