RESTFul services can be implemented at increasing levels of maturity. The next level is not defined yet but if there were a level 4, resources will likely be objects in an Open Graph. An Open Graph is a way to visualize Linked Objects on the Web. Linked Objects or Linked Data is now emerging from the Semantic Web world to the consumer world. This has been driven by Facebook recent (2010) offering with the Open Graph Protocol. This protocol is now open source and supported by many big corporations. A light version of RDFa is used to describe the various node types on the network.
Interestingly enough, objects can also be connected by Action Links (or verbs). Verbs can be customized by the web applications to allow for a user centric API. Everything becomes an activity involving a user, object and a target. When performed, the resulting activity can be added to the user activity stream and added to his timeline. Friends see those activities, may comment on them and… it could go viral from there. The Activity Stream protocol has been defined for Atom and JSON and is now widely adopted. So rather than simple hypermedia links between resources, we need to think in terms of Activity Links between a user and objects of interest.
The current problem is that Facebook is a closed proprietary system. Not all web services may want to be in the Facebook realm. We need to think of a true open way of building services at a similar level but in a distributed fashion.
Still missing to the level 4 architecture is discovery. This would be the capability to search for Linked Objects and get back the activity handles that would allow a user (or rather a user-agent like SIRI for example) to perform such activities using that web app. A smart agent could crawl the web, find the options to match the user goals, select the best alternative based on user criteria and return the desired "product" to the original user. More on this later…