Ruby, Rails and The Semantic Web

This year, for the first time ever, I submitted a proposal to a conference, RailsConf 2010. In fact, I submitted three. This post is based on the motivation behind one of the proposals.

The Semantic Web

Let's look at three of the most successful web sites today: Google, Facebook, and Twitter. What makes them particularly popular is not just their excellent web interfaces, but the ease in which you can integrate their sites with third party applications and interfaces. Building a killer web site isn't good enough anymore: you need to also offer easy to integrate API's and web services to build a seamless flow of information between your site and others.

The World Wide Web has evolved magnificently over the past 15 years. You could characterize its development in three eras. [The years are approximate.]

Web 1.0 (1994 - 1999)

The web was in its infancy. Data sharing was difficult, expensive, and error-prone. [Recall how many broken images and 404 pages did you hit in an average day in these days.] Sharing data with another web site required either lots of cooperation, buying syndicated content, or hiring a programmer to write a Perl script to scrape data, and a messy data transformation to import the results. into the site. Portal sites such as Yahoo, Excite, and Go were king.

Web 2.0 (2000 - 2006)

The rise of XML, JavaScript, RSS, and SOAP made data sharing considerably easier and more uniformly. Web services makes it possible to create mash-up sites that combined data from multiple sources. Google ascended to greatness during this era with their mail, calendar, AdWords, and maps tools, just to name a few.

However, exploiting external services and tools into your site was still a time consuming process. The lack of standard conventions for defining services and data schemas required lots of parsing and transformation. SOAP required building custom clients to cooperate with transactions. While Java and .NET offered the requisite tools for developing these interfaces, the lack of a comprehensive framework made this development time consuming.

Web 3.0 (2007 - present)

Tim Berners-Lee envisioned a Semantic Web where content, links, and transactions can be analyzed and shared. This is now being realized with sophisticated, integrated applications such as Facebook and Twitter applications, federations of services. You can use one site to search for a cool event, buy and pay for tickets, add it to your electronic calendar, and share it with your friends, all from the same interface.

Key Technologies: REST and ActiveResource

Much of my recent work has involved integrating my company's application with partner sites and tools. REST and ActiveResource in particular have made this task inexpensive and straightforward. Now we have a standard means of not just encapsulating our data, but in representing and manipulating it through the concept of resources.

Taking advantage ActiveResource requires REST, and this is of course a cooperative process. By designing your web site to be RESTful not only allows another Rails developer to build an ActiveResource client to access your site, but it also allows developers in other development environments -- Java EE, .NET, PHP, and Python -- to build clients with minimal effort.

Posted by george Fri, 02 Apr 2010 15:05:00 GMT


Comments

Leave a response

Leave a comment