Introduction

Serendipity is centred on re-evaluation. For example, a failed attempt to develop an ultra-strong superglue resulted in a re-stickable adhesive that no one was quite sure how to use. After considerable trial and error, this turned out to be just the right ingredient for making the now ubiquitous Post-it notes. When we consider the practical uses for weak glue, the possibility that a life-saving antibiotic might be found growing on contaminated petri dishes, or the idea that burdock burrs could be anything but annoying, we encounter radical changes in the evaluation of what’s interesting. Importantly, serendipity is not the same as luck.

The notion of serendipity is increasingly seen as relevant in the arts, in the technology sector, and elsewhere \cite{mckay-serendipity,rao2015breaking,kennedy2016inventology}. In the workplace, people have sought to encourage serendipity with methods drawn from architecture, data science, and cultural engineering \cite{kakko2009homo,engineering-serendipity,who-moved-cube}. Continued development of an interdisciplinary perspective on the phenomenon of serendipity promises further illumination. This paper reassesses and updates an earlier discussion of serendipity in a computational context \cite{pease2013discussion}. Beginning with a survey of historical definitions, perceptions, and examples of serendipity in order to surface its several facets and features, we then develop a process-based model of serendipity that can be applied to system design and evaluation.

– echoing the (negative) reflections on the potential for a purely computational approach to mathematics from – claimed that:

Like all intuitive operating, pure serendipity is not amenable to generation by a computer. The very moment I can plan or programme ‘serendipity’ it cannot be called serendipity anymore.”

We believe that serendipity is not so mystical as such statements might seem to imply. In Section \ref{sec:discussion} we will show that “patterns of serendipity” like those collected by van Andel can be applied in the design of computational systems. Purposive acts can have unintended consequences \cite{merton1936unanticipated}. Similarly, even if we cannot plan or program serendipity, we can prepare for it.

Indeed, if serendipity was ruled out as a matter of principle, computing would be restricted to happy or unhappy unsurprises – preprogrammed, preunderstood behaviour – that would be interspersed periodically, perhaps, with an unhappy surprise. Venkatesh Rao uses the term zemblanity – after William Boyd : “the opposite of serendipity, the faculty of making unhappy, unlucky and expected discoveries by design” – to describe systems that are doomed to produce only unhappy unsurprises. According to Rao, this is the implied fate of systems that are tied inextricably to a fixed vision, from which any (inevitable) deviation constitutes a mistake. This condition stands at a sharp contrast with the “second-order cybernetics” introduced by , which envisions systems that are able to specify their own purpose, and adapt it with respect to a wider environment. It also contrasts with Taleb’s notion of “antifragility” in which disturbances within a certain range strengthen the system. argues that any sufficiently complex computational system is bound to make decisions that its creators could not foresee, and may not fully understand. Demonstrably gracefully behaviour in response to unexpected circumstances, and a preference for “happy” as opposed to “unhappy” outcomes may be prerequisites for the development of autonomous systems that are worthy of our trust. While not the same as “Serendipity as a Service”, such systems should at least be able to recognise serendipity when it is happening. Over time a system might also come to recognise previous missed opportunities and false realisations – what van Andel terms negative serendipity – and learn from them.

These issues are particularly relevant in light of current high-profile discussions around the role of AI in society. These discussion centre on a dilemma in which the core issues described above come sharply into focus. Although we “we cannot predict what we might achieve” with AI, nevertheless many researchers, technologists, and policy makers subscribe to a (presumably healthy) conservatism that says that AI systems should “do what we want them to do” \cite{research-priorities}. A computationally robust notion of serendipity may go a considerable ways towards resolving the underlying dilemma. If we can build systems that can communicate with us about their unexpected discoveries and reason about the value of these discoveries in a socially responsible way, then we may be reasonably confident that they will behave in an ethical manner.

Less controversial than “programmed serendipity”, but no less worthy of study, is serendipity that arises in the course of user interaction. Indeed, it could be argued that everyday social media already offers something approaching “Serendipity as a Service”. The user logs on hoping, but without any guarantee, that they will find something interesting, charming, or entertaining, and potentially relevant to whatever is going on in their life at the moment. Of course, it should not be assumed that any system that can accommodate user interaction can generate serendipity; take for example the use of a calculator, where the potential for serendipity through user interaction is minimal. The frameworks introduced in this paper are broad enough to be used in the design and evaluation of sociotechnical systems, and we will touch on some examples, however we focus on modelling serendipity in a computational context.

Section \ref{sec:literature-review} surveys the broad literature on serendipity including the etymology of the term itself. Section \ref{sec:by-example} assembles a novel catalog of historical examples of serendipity that we will use to scaffold our model. In Section \ref{sec:our-model} we present our own definition of serendipity, which synthesises the understanding gained from these historical examples, and prepares the way for evaluation of serendipity in computational systems. Section \ref{sec:computational-serendipity} examines three such case studies. Section \ref{sec:discussion} examines prior applications of the concept of serendipity in computing, and offers recommendations for researchers working in the computational modelling of serendipity and related areas such as computational creativity. It also describes our own plans for future work. Section \ref{sec:conclusion} reviews the contributions of this paper towards computational modelling and evaluation of serendipity.