The idea of the Semantic Web has been simmering for some time now, the (next) great idea of Sir Tim Berners-Lee to move beyond just linking documents to providing them with a structure that would allow for the programmatic discovery of links, and create along with it another great wave of innovation. It has been simmering largely because there was no compelling, singular current benefit to be gained from creating semantic content, despite requiring significantly more effort to create than just authoring “regular” content. To many people, the whole notion was too far-fetched, a neat idea that was completely impractical to implement and so a waste of time to pursue.
Recently, though, the cynicism which the Semantic Web encountered early on seems to be dying back. This is partially because the Semantic Web proponents don’t talk as much about the Grand Vision, and also because there have been some successes and inroads. The most notable of these have been with Linked Data (it is easier to impart semantic structure to data than to content) and with various simple semantic structures (RFAa, microformats, FOAF, GoodRelations to name a few).
Some of the success in both areas has been driven by the fact that much of the content today is generated through web applications like content management systems, which have created data fields for the capture of additional information besides just “content.” Though the purpose of such structure was originally to achieve consistent formatting for websites and aid in search engine optimization, once in place it became very easy to have it generate semantic mark-up as well, even if there wasn’t any particular use defined. The other reason is that there have been a number of tireless champions diligently working for so long now that they have actually managed to create interest, change, and actual content; small works over long periods eventually begin to create noticeable effects. Because of these forces the semantic web is becoming a reality, even if it isn’t appearing as a great fireworks event, or in its most elegant and pristine form.
A few more specific examples might help illustrate why people are interested in the Semantic Web. Before I left Harvard I met with some of the people developing a platform they called the Scientific Collaboration Framework. This project was building a system so that scientific communities of interest could create a collaborative workspace to make it easy to share research, papers, ideas, data and other things. Despite the fact that scientific communities are relatively small, it is very easy to miss research which is similar or complementary to your own when it is not occurring in the specific confines of your particular research discipline. The framework sought to promote communities around topics instead of disciplines, with a considerable amount of effort spent making it easy for researchers to add content that could be automatically tagged and referenced to semantic terms to aid in the discovery of new collaboration opportunities. One might call it social networking for data, in the sense that by posting your own research, you could discover other people who were working on similar problems, which could unearth both data useful for your own investigations as well as other researchers whom you could create new and novel collaborations with.
More recently I’ve been following the development of GoodRelations, a semantic approach for commerce (very generally defined) which defines a standard way to describe companies, products, and offers. Once so described, it becomes considerably easier for the data to be utilized in any number of ways, such as submitting it to product search engines. In general, creating this type of semantically structured data should help companies achieve greater visibility in the marketplace by making it easier for consumers to find information when they search. But there is also the larger prospect that instead of relying on users to do just the right search, it could become possible for a system to actively place the right product, at the right price, at just the right time to the right consumer who is looking to buy, which some might call the holy grail of marketing.
The general promise of the semantic web, then, is to make it much easier to find and utilize interesting connections between objects—people, data, products, anything really—where historically it would have been extremely difficult to identify the connection. This can be any number of things, from the examples above to things like job seekers and employers, apartments and renters, a restaurant you didn’t know about, an article relevant to the blog post you’re writing, the long-lost cousin who just moved around the corner from your best friend from college. So instead of relying on random chance to create connections and surface useful information, the connections can be discovered instantly when needed, or even in advance of us knowing that there might be an interesting connection to be made.
Regardless of how it evolves, I think there will be very fascinating things appearing which are built upon semantic web technologies, some of which will be very useful but not obvious (like Google’s Rich Snippets, which add the Yelp reviews to your searches) and others which will be considerable more ambitious (like Siri, the personal assistant, which was acquired by Apple). As more data and content is generated, tagged, or transformed to include semantic elements, the promised innovation will come, and we will find it ever easier to discover information, and to have it discover us as well.

Do Web Applications Suck?
A recent rant about the state of the web has made its way around the tech chattersphere, and is part of the growing commentary on application development for native applications (something you install, on a PC, Mac, iPhone, Android) versus web applications (written to work in any of the major web browsers). The general gist is how fantastic it is to see the re-emergence of cool native applications, and how much more robust, functional, and well-designed they are compared to web applications, because they are liberated from the lowest common denominator approach of web standards and can take full advantage of the specific device they are running on.
So are web applications now the equivalent of MS-DOS applications, circa 1990: dinosaurs in the face of applications with windowed, mouse-controlled user interfaces? Or is this just excitement over what’s shiny and new right now?
Context, part I: One computer to many devices
It wasn’t too long ago that everyone was celebrating the death of traditional (aka “native”) applications and the liberating rise of web applications. In the past, you had to have your floppy disks, your thumb drive, or your e-mail file transfer system to shuttle data between all of the local native applications you ran. You had to hope your friend had the same software installed to show them your work. And you got annoyed. You didn’t have the right version…of the file, the software, whatever. Or there just wasn’t any way to do the job electronically at all, because the software the system used was too expensive or too complicated.
So when the web application revolution began, it was liberating. You could get to your e-mail from any computer, spend endless hours searching for the best airline fare without a grumbling travel agent, file your reimbursement before you even got back to the office, and unleash your creative skills designing your next holiday card. All from the web. And you couldn’t wait until you untethered yourself from every last installed application you had on all the various computers you owned and used.
Context, pt II: From fixed on the ground to mobile in the cloud
So why the sudden counterrevolution to take us back to what we were so happy to get away from? If all of those “old” applications were such a frustration, why are the new ones so appealing? For the answer, we look to two of the big changes in the last few years in how we use computers and applications: cloud-based services (typically remote data storage and computer processing at large scales) and mobile devices (aka “smartphones”). And an additional “secret sauce” we’ll get to in a minute.
From the viewpoint of the user, you could say that most web applications succeeded because they took advantage of the cloud (even if it doesn’t meet the technical definition): whatever you were doing happened on the web and the data you created was stored there as well, for you to access from anywhere. The big change from old applications to web applications was this connectivity. The new native applications have stolen the thunder from the web applications, because they use the cloud too.
The other big difference is that where we see most of the native application success is in the world of mobile devices: the iPhone, Android phones, and now, in particular, on the iPad. These are very different from most computers, because they are personal, in the sense that you actually take them with you. Everywhere. So the old application problem of not having it on the computer you are using goes away…because you are always using just that one device.
And the secret sauce of the new native applications? It’s design. ”Traditional” desktop applications were horrendous looking things, both because nobody seemed to care, and also because there wasn’t enough computing power to make things look nice. The evolution of the web brought in a cadre of people with design backgrounds while Apple raised interface design to a temple for worship, and now the new applications have adopted similar attention to design, and look nothing like the old systems we once abhorred.
Pick the right tool for the job
The only thing that all of this tells us, though, is that you can now make native applications that are really good, and succeed because of both what the web created (cloud services and nice design) and because of a whole new paradigm in mobile personal computing, not to mention the intrinsic virtues of a native application.
But is it the death knell of the web application?
I seriously doubt it, because there is a whole dimension of the question still unanswered: what, exactly, is it that web applications “suck” at doing? But it is perhaps easier to see this by looking at when native applications are better.
Native applications are fantastic when you (as a user) have a task which:
While there are certainly a large number of applications which fall into these categories, many don’t. And for these types of applications, a web application is probably better, or at the very least, “good enough.” And there isn’t anything wrong with that.
Serving up universal access
And let’s not forget one area where web applications vastly outperform native applications: universal access. This is a feature that can get easily overlooked by the new apostles of the native application. It is certainly fantastic to be able to benefit from the vastly improved interfaces that some of these devices enable, but let’s not forget that these devices are considered a luxury for many, whether as individuals or as institutions. One could argue that this could change (and it probably will), but the trailing edge of adoption is very slow.
One of the great benefits of the web is the level of access to services and information which has been granted to the public at large. A public whose needs have been successfully served because of the lowest common denominator approach of standards-compliant web technology. Fostering a new race to develop competing platforms significantly undermines our ability to serve a wide and general public, to serve those who happen to be on the trailing edge.
And ignoring their needs is what would really make the web suck.