From Earth Science Information Partners (ESIP)

Web architecture encourages client software that is designed as an agent in a dynamic information space (Charlton, 2012). This is enabled by one of the fundamentals of REST architecture (Fielding, 2000; Fielding, 2008), 'hypermedia as the engine of application state' (HATEOS). Understanding this rather arcane concept is central to understanding modern web applications and architecture. The idea is that a web application is a software agent that retrieves documents from the web, and follows instructions contained in those documents to move towards a goal. The application starts with some objective, and a link to retrieve a hypermedia document that contains the initial instructions. Application logic consists of inspecting the instructions in the document, determining which instructions to follow, and executing those instructions. The logic may involve requesting user input to make choices or to provide information (fill out forms) necessary to complete the process; such user input is well accounted for by the hypermedia controls offered by HTML. This investigation is focused on links in documents that are intended to be processed by machine agents

There are a variety of situations in which a hypermedia document might present a list of links (affordances, controls). The objective might be to make an information resource available to a user in their native work environment, to reconstruct an archived compound digital object, or to execute a workflow or data visualization. The problem this project addresses is development of an abstract model for the information that must be included with these controls to enable a machine agent to select the proper one to achieve the application goal in a wide variety of situations. Various implementations based on a shared conceptual model will facilitate integration of applications and reuse of components.

The objective of this page is to collect scenarios for actual applications that utilize hypermedia with machine actionable links to automate processes in web applications.