A broad definition
I want to make it clear at the start that this article is meant to be a broad definition of the challenges that cause people to think in terms of Web 2.0 and Web 3.0. Since these are buzzwords and not clearly defined terms, think of this as an attempt to provide a bird's-eye view of the ever-changing lay of the land on the web. In an effort to create discreet "versions" of the web that can be compared, I will borrow from the W3C Director Tim Berners-Lee's notion of the read-write web, which is often used as a way of explaining what Web 2.0 means.
The first implementation of the web represents the Web 1.0, which, according to Berners-Lee, could be considered the "read-only web." In other words, the early web allowed us to search for information and read it. There was very little in the way of user interaction or content contribution. However, this is exactly what most website owners wanted: Their goal for a website was to establish an online presence and make their information available to anyone at any time. I like to call this "brick-and-mortar thinking applied to the web," and the web as a whole hasn't moved much beyond this stage yet.
Shopping carts are Web 1.0
Shopping cart applications, which most ecommerce website owners employ in some shape or form, basically fall under the category of Web 1.0. The overall goal is to present products to potential customers, much as a catalog or a brochure does — only, with a website, you can also provide a method for anyone in the world to purchase products. The web provided a vector for exposure, and removed the geographical restrictions associated with a brick-and-mortar business.
Currently, we are seeing the infancy of the Web 2.0, or the "read-write" web if we stick to Berners-Lee's method of describing it. The newly-introduced ability to contribute content and interact with other web users has dramatically changed the landscape of the web in a short time. It has even more potential that we have yet to see. For example, just look at YouTube and MySpace, which rely on user submissions, and the potential becomes more clear. The Web 2.0 appears to be a welcome response to a demand by web users that they be more involved in what information is available to them.
Many views of Web 2.0
Now, it's important to realize that there are a staggering number of definitions of what constitutes a "Web 2.0 application." For example, the perception exists that just because a website is built using a certain technology (like Ruby on Rails), or because it employs Ajax in its interface, it is a Web 2.0 application. From the general, bird's-eye view we are taking, this is not the case; our definition simply requires that users be able to interact with one another or contribute content. Developers, for example, have a much more rigid definition of Web 2.0 than average web users, and this can lead to confusion.
This in turn leads us to the rumblings and mumblings we have begun to hear about Web 3.0, which seems to provide us with a guarantee that vague web-versioning nomenclature is here to stay. By extending Tim Berners-Lee's explanations, the Web 3.0 would be something akin to a "read-write-execute" web. However, this is difficult to envision in its abstract form, so let's take a look at two things I predict will form the basis of the Web 3.0 — semantic markup and web services.
Semantic markup refers to the communication gap between human web users and computerized applications. One of the largest organizational challenges of presenting information on the web is that web applications aren't able to provide context to data, and, therefore, can't really understand what is relevant and what is not. Through the use of some sort of semantic markup, or data interchange formats, data could be put in a form not only accessible to humans via natural language, but able to be understood and interpreted by software applications as well.
While it is still evolving, this notion — formatting data to be understood by software agents — leads to the "execute" portion of our definition, and provides a way to discuss web services.
A web service is a software system designed to support computer-to-computer interaction over the Internet. Web services are not new and usually take the form of an Application Programming Interface (API). The popular photography-sharing website Flickr provides a web service whereby developers can programmatically interface with Flickr to search for images. Currently, thousands of web services are available. However, in the context of Web 3.0, they take center stage. By combining a semantic markup and web services, the Web 3.0 promises the potential for applications that can speak to each other directly, and for broader searches for information through simpler interfaces.
What's important to understand, I think, is that the nomenclature with which we describe these differing philosophies should not be taken too seriously. Just because a website does not employ Web 2.0 features does not make it obsolete. After all, a small ecommerce website trying to sell niche products may not have any business need for users to submit content or to be able to interact with each other.
Most importantly, you don't need to upgrade anything, get new software or anything like that. These are abstract ideas used to contemplate the challenges developers face on the web in addition to theories about how to address them.