Ever since its creation at the end of the 20th century, the Web has profoundly shaped the world’s information flow. Nowadays, the Web’s consumers no longer consist of solely people, but increasingly of machine clients that have been instructed to perform tasks for people. Lacking the ability to interpret natural language, machine clients need a more explicit means to decide what steps they should take. This thesis investigates the obstacles for machines on the current Web, and provides solutions that aim to improve the autonomy of machine clients. In addition, we will enhance the Web’s linking mechanism for people, to enable serendipitous reuse of data between Web applications that were not connected previously.
The Web was not the first hypermedia system, and many earlier alternatives had more complex features, especially with regard to content interlinking. However, the Web was the first system to scale globally. Achieving this required sacrificing more complex features: the Web only offers publisher-driven, one-directional hyperlinks, a crucial design choice that stimulated its growth into the world’s leading information platform. It did not take long before application development using the Web began, first in a way that resembled traditional remote programming, and later in ways that embraced the Web’s nature as a distributed hypermedia system.
In order to understand the Web’s properties for software development, the Representational State Transfer (REST) architectural style was created, capturing the constraints that govern the Web and other distributed hypermedia systems. A subset of these constraints describe the uniform interface, which enable architectural properties such as the independent evolution of clients and servers. The Web’s Hypertext Transfer Protocol (HTTP) implements the uniform interface by providing a limited, standardized set of methods to access and manipulate any resource in any Web application. Furthermore, the hypermedia constraint demands that hypermedia drives the interaction: clients should follow links and forms rather than engage in a preprogrammed interaction pattern.
Combining the hypermedia constraint with the limitation that the Web’s links can only be created by the information publisher, we arrive at what we’ve called the affordance paradox: the client depends on links supplied by the information publisher, which does not precisely know the intentions of the client. Consequently, hypermedia can only serve as the engine of application state to the extent that the hypermedia document affords the actions the client wants to perform. If a certain Web application does not link to a desired action in another application, that action cannot be executed through hypermedia. This currently necessitates hard-coded knowledge about both applications, which endangers the independent evolution of clients and servers.
In order to solve this issue, we first need a way for machines to interpret the effect of actions. The Semantic Web is a layer on top of the existing Web that provides machine-interpretable markup. It allows content publishers to annotate their existing data in a way that enables intelligent machine processing. While several efforts have also looked at describing dynamic aspects, there is currently no method to rigorously capture the semantics of Web Application Programming Interfaces (APIs) that conform to the REST constraints. This prompted us to create RESTdesc, a description format that explains the functionality of an API by capturing it into first-order logic rules. A RESTdesc description indicates which HTTP request allows the transition from certain preconditions to related postconditions. In contrast to classical Web API descriptions, RESTdesc is designed to support hypermedia-driven interactions at runtime instead of imposing a hard-wired plan at compile-time.
As hypermedia documents allow clients to look ahead only a single step at a time, it is necessary to provide a planning strategy that enables reaching complex goals. RESTdesc rules are expressed in the Notation3 (N3) language, so regular N3 reasoners can compose RESTdesc descriptions into a plan. This is enabled by their built-in proof mechanism, which explains how a certain goal can be reached by applying rules as inferences. This proof also guarantees that, if the execution of the Web APIs happens as described, the composition satisfies the given goal. The performance of current N3 reasoners is sufficiently high to find the necessary Web APIs and compose them in realtime. Furthermore, the proposed mechanism allows the automated consumption of Web APIs, guided by a proof but still driven by hypermedia, which enables dynamic interactions.
The automated understanding of actions and the ability to find actions that match a certain context allow us to solve the Web’s affordance paradox. Instead of the current linking model, in which the affordance on a certain resource is provided by the party that created this resource, we can collect affordance from distributed sources. With our proposed solution, called distributed affordance, a platform dynamically adds hypermedia controls by automatically matching a list of preferred actions to semantic annotations of the content.
For instance, users can have a set of actions they would like to perform on movies, such as finding reviews or downloading them to their digital television. A distributed affordance platform in their browser can automatically make those actions available every time a movie title appears on a page they visit. This removes the limitation of having to rely on links supplied by the information publisher. Especially on mobile devices, which have a more limited set of input controls, such direct links can greatly enhance people’s browsing experience. Furthermore, machine clients need not be preprogrammed to use resources from one applications in another, as they can rely on the generated links.
This leads to a more serendipitous use of data and applications on the Web, in which data can flow freely between applications. Similar to how people discover information on the Web by following links, automated agents should be able to perform tasks they have not been explicitly preprogrammed for. Thereby, they gradually become serendipitous applications. In addition to autonomous agents that act as personal assistants, we envision two other opportunities. Semantics-driven applications are able to perform a specific service on any given Linked Data stream, regardless of how it is structured. Client-side querying improves scalability and fosters serendipity by moving the intelligence from the server to the client.
The conclusion is that semantic technologies combined with hypermedia allow a new generation of applications that are more reusable across different contexts. Although it remains a challenge to convince information and API publishers of their benefits, semantic annotations significantly improve the opportunities for autonomous applications on the Web.