I do like to use Mail.app in Mac OS X. I use it for emails and I use it for newsfeeds.

However, I have one particular problem with it, which is: It’s able to import RSS and Atom feeds, but cannot export a file which lists all of the RSS/Atom feeds that you have subscribed too. If this information was exported into the OPML format, then it would be able to be imported into many different feed readers (such as the superior OpenLink Data Space Feed Manager, or the Google Reader or the NetNewsWire)

Well. This afternoon I created something awesome, it’s quite a small Ruby program which creates an OPML file of your feeds which can then be uploaded to other feed readers. I call it MailAppToOPML.

It’s a Google Hosted project and is available through the MailAppToOPML Google Code Space.

Why Ruby?

It’s simple, it’s available on Leopard natively and I am quite fond of it’s blend of Object Oriented and Functional Programming styles.

Why would I want to export it from Mail.app?

You might find that having your RSS and Atom feeds in Mail.app is quite restrictive. For example if you imported the subscriptions into OpenLink Data Space Feed Manager then you would have the added benefit of your feeds being in a well established methodology known as Linked Data (for those techies out there, that means that you’ll be able to SPARQL your feeds!). You may also want to create a neat little widget (WUPnP) for your website which displays current items in your feeds, so that you can share a bit of your knowledge space (Universe of Discourse).

How to use it?

Simply download it from the MailAppToOPML Google Code Space, and then launch terminal. Run the file (mailapptoopml.rb) by dragging it onto terminal and pressing the enter key. It will then tell you where the outputted file is.

Shouldn’t be too much of a problem. Let me know if you encounter any errors though, I’ll be happy to fix ‘em.

I am quite irritated/upset….

I just had a phone call from the , they are recording at about 5:30pm today (it is 4:35pm as I write this) for tonight. They will be doing a piece on and the , and they were looking for an expert to come into the studio and be interviewed…. because I live in Bristol it would have taken me at least 2 hours to get there. So I’ve missed out on that one, it would have been fantastic to go on a National/International BBC 2 show!!

Oh well. Guy’s at the BBC (or any other TV/Radio Production Company): if you’d like me to come in for a chat, then I am more than happy to do so. I live in Bristol, but I am happy to travel elsewhere, you’ll have to let me know in advance though. Many thanks to the guy that called me.

I can’t believe that just happened…

Tim Berners-Lee spreads the word to Radio 4 Listeners about the Semantic Web and Linked Data. Do listen!

Tags:

Completely unrelated technological question which popped into my head:

Answers on a postcard…. or even better using the comment box.

Wow! The UK Government have gone all BBC Backstage on us!

I’ve just read the article on the BBC News Website entitled “Government launches data mash-up“. In the spirit of competition, I thought I would share this information with you all.

The campaign/competition is about generating good ideas which can be done with new Government data, this is called “Show us a better way“… and involves information from various sectors including Neighbourhood Statistics, NHS Hospital Information, other Healthcare Information, Schooling Information and information from London Gazette.

Unfortunately, all this information doesn’t seem to be have some kind of common access and they it all seems to be in different formats (there’s even an Excel file!). So a warning in advance is that you’ll have to do some transformations on the data before you can start using the data together.

This is where the difference between Mash-ups and Mesh-ups come!

Mash-ups

When you do a Mash-up, you generally have to bodge two or more data sources together (using data transformations). Then you have to use a lot of hard work stick it into a graphical user interface of some kind.

Mesh-ups

When you do a Mesh-up, two or more data sources are meshed together smoothly and a graphical user interface can be laid on top with little-to-no work. This is done because the data is in an agnostic format, but uses the same modelling framework. This is what RDF offers, as it is not a format it is a modelling language… it doesn’t matter what the format is (it could be RDF/XML, RDF/N3, XHTML+RDFa, (X)HTML+Microformats) it will be understandable as RDF. Coupled with the rules of Linked Data, it also offers a common access using well established web practices and protocols!!!

Summary

I am very glad that the UK Government is putting this competition on… but it would be better if all their services followed a standardised modelling framework (and therefore become a Mesh-Up rather than an early naughties Mash-Up). I may enter the competition… but it’s quite the wrong time for me at the moment.

Anyways,

Bye for now.

Daniel

Computer Weekly Blog Awards Nominations are over, and I have now been shortlisted!!!! (You may have noticed that I now have a different badge on my blog site (on the right hand sidebar)).

You can now vote for me to win!

How to vote for me:

Click on the link in the badge on my blog page, or click on the following link: “

Scroll down to the bottom of the page that loads up, and you will see some drop down menus. Where you see the “Programming and Technical blogs” category and select “Daniel’s Blog by Daniel Lewis“from the drop down menu.

Vote in any other category for whoever, and then click “SUBMIT”, and your vote will be counted.

Thank you ever so much for voting. If someone else wins in the category then well done to them.

Voting is open from the 30th June 2008 until the 31st July 2008. Winners will be announced in August (2008) on the Computer Weekly Website and in an August edition of Computer Weekly.

Web 2.0 was all about making the web more socially aware, however, was it really a good idea to start a versioning system for the Web?

When Web 2.0 was coined, I got quite excited about it, it was “Yes! this is a new way of thinking, this makes the web more personal”… but I did not thoroughly think through the versioning of the web. Applying 2.0 to the end of the term Web, meant that this is somehow new, somehow better and somehow a superset of what we had before… but it wasn’t, it just clumped pre-existing technologies together under one buzzword which businesses could use.

I fear that this is now happening with the term Web 3.0, which is seen as a swing towards the data. Unfortunately, the term Web 3.0 is being applied as a buzzword already (see the recent post by Paul Krill at InfoWorld titled “Salesforce touts Web 3.0 as platform as a service“, and the post by Simon Wardley titled “3 is the new 2…“).

I say that the Web is the Web, and it will always be the Web… whether it is a Document Web, a Social Web, a Data Web, a Platform Web or an Intelligent Agent Web. When it comes down to it, it will still be the Web, and documents will never be fully replaced by data objects, data objects will never be fully replaced by documents, the social apps won’t replace documents, and intelligent agents won’t replace search engines… things might change slightly, or become slightly more efficient… but essentially it is still the same.

Therefore, I don’t think it is clear when people start versioning the Web… which is why I have started categorising sub-webs, like I have done above. So these Sub-Webs are:

  • Document Web: A Web of Documents with hyperlinks between. This Sub-Web provides a subjective view of information from the context perspective of the author.
  • Social Web: A Web of Socially Aware Applications. This is done in either, or both Document and Linked Data forms. This Sub-Web provides a subjective view of information from the context perspective of the user or group profiled.
  • Linked Data Web: A Web of Data Objects with relationship links between to enhance meaning. This Sub-Web provides an Objective View of information, ready for a contextual perspective of the user.
  • Platform Web: A Web of Services in which you can run Web Applications on - and/or - against. This Sub-Web does not provide a view of information, but is an attempt to provide a distributed network of services capable of providing multiple subjective and objective perspectives.
  • Intelligent Agent Web: A Web of Intelligent Software Agents. It is a Sub-Web because software agents will talk to each other in order to find out information. This Sub-Web communicates internally objectivity and subjectivity depending on the subjective desires of the user.

The important thing is that each of these Sub-Webs does not replace any other kind of Sub-Web. They can be used all together on the Web. No versioning required or desired.

However, this doesn’t mean that new technologies shouldn’t be looked into and implemented. They definitely should be looked into!  I am just stating that I don’t believe versioning is the best way of labeling technologies, as it is pretty meaningless when something is not better or improved.

Any thoughts?…

The nice guys at (who are based in Cambridge, UK) have given me some beta invites to give out. So if you are interested in beta testing trueknowledge.com then please send me an email or comment in this blog and I’ll send you your invite.

True Knowledge Ltd is a company founded by AI sage William Tunstall-Pedoe, and their product (in beta stage at the time of writing) is a search engine which answers questions. It answers questions using and a highly-structured wikipedia-style question and answer system.

Unfortunately the True Knowledge system is not yet exposing Linked Data, but I am sure that they see a benefit in that area once the engine is released fully and publicly.

I haven’t got many invites, so be sure to let me know if you want one soon. It will be on a first come first serve basis.

Thanks,

Daniel

1995 (and the early 90’s) must have been a visionaries time of dreaming… most of their dreams are happening today.

Watch Steve Jobs (then of NeXT) discuss what he thinks will be popular in 1996 and beyond at OpenStep Days 1995:

Heres a spoiler:

  • There is static web document publishing
  • There is dynamic web document publishing
  • People will want to buy things off the web: e-commerce

The thing that OpenStep propose is:

What Steve was suggesting was one of the beginnings of the Data Web! Yep, Portable Distributed Objects and Enterprise Objects Framework was one of the influences of the Semantic Web / Linked Data Web…. not surprising as Tim Berners-Lee designed the initial web stack on a NeXT computer!

I’m going to spend a little time this evening figuring out how much “distributed objects” stuff has been taken from the OpenStep stuff into the Objective-C + Cocoa environment. (<– I guess I must be quite geeky ;-))

OK. It’s a funny title for a blog post, but it is an acronym which I don’t want to start up as a buzzword, but it where I see things going.

A lot of people know about , its a set of protocols and formats to allow you to just plug a hardware device into another hardware device and its guaranteed to “just work”. UPnP is all quite low level stuff, which is to be expected because we’re talking about hardware in this case.

The ease of UPnP is starting to appear on the web too, and what I shall (temporarily) call Web Universal Plug and Play (WUPnP). What it’s plugging together is various web applications components.

This started off in the form of open web services which could be “mashed-up” with a nice little GUI (e.g. Nestoria ).

We are now starting to see “mesh-ups”, which are fusions of data from different sources to give context-sensitive results to queries.

Mesh-ups and Mash-ups are part of a bigger concept of WUPnP, which is not just about data or how to view it… but everything becomes a little more agnostic, and therefore creating a plug and play architecture.

To do this, we have:

At the Data Level:

  • RDF (the framework, with its various socially-friendly vocabularies such as FOAF and SIOC)

At the Machine Interface Level:

At the User Interface Level:

Network Level:

And the key to this all working is the unique data source name:

The Uniform Resource Identifier (URI)

Without it nothing would be linkable or usable.

I’m not trying to standardise things, I’ll leave that up to the lovely people at the W3C. I’m not even recommending anything, thats up to the W3C and the DataPortability Group. I’m just saying that we have the technologies to be able to plug X into Y into Z, and hey presto we have an awesome app “voila web-scale plug and play”.

An example is a user interface designer could make a user interface in such a way, that it would be able to work with any component that a user may choose. Just for some details, this could be an Adobe Flex based user interface, which could then hook into any Linked Data based encyclopedia (e.g. DBpedia) and provide data in context.

You should be aware by now, from various previous posts that:

  • OpenLink Virtuoso provides the Machine Interface Level, the Data Level and the Network Level
  • OpenLink Data Spaces provides some User Interface Level functionality and some more functionality on the Machine Interface Level
  • OpenLink AJAX ToolKit provides JavaScript, AJAX/AJAR and some funky bits of functionality and eye candy ready for User Interface Level development.

(Yes, there are a lot of acronyms in the computer science field, and particularly the web…. it’s because if we said the long names for everything then we really wouldn’t get anything done because conversations would be about 10 times longer! Unfortunately we have to deal with it)

(If I’ve forgotten anything useful in the WUPnP stack then let me know)