Foundational work

\label{sec:foundations}

In moving towards computational models of serendipity, we are supported by prior foundational work providing a theoretical framework and a virtual environment for exploring computational creativity. In , we introduced a diagrammatic formalism for keeping track of progress made in creative computational systems. An example, pictured in Figure \ref{fig:poetry-progress}, shows how the second iteration of a poetry system gains the ability to automatically apply aesthetic judgements in order to select a preferred poem from a larger set of generated examples, once the programmer has translated (by hand) the relevant aesthetic measures.

l4.1cm

Progress amounts to more sophisticated processing, and, in the notation, frequently corresponds to the removal of “bars” – indicating that the system can do something that was formerly done by a programmer. Thus, this formalism keeps track both of the overall structure of computational systems, and which actors that are responsible for which actions within a given instance of the system. As we develop models and systems that people would describe as serendipitous with reference to the criteria listed in Section \ref{sec:characteristics}, there will be more to account for.

For example, we will need to model dynamically changing environments and a computational version of a prepared mind. To explore these features, are working with a system called FloWr, portrayed with a screenshot in Figure \ref{fig:being-blunt}. In FloWr, users can construct complex flowcharts composed of individual ProcessNodes, through which information flows and is transformed. The figure depicts a flowchart that has constructed a poem based on live output from Twitter for the query “blunt”. The dynamic aspects of this environment are threefold: (i) some of the nodes in the flowcharts access online news and social media sites, which change rapidly from minute to minute; (ii) the software itself can construct new flowcharts, as described in \cite{charnley2014flowr}; and (iii) we are building a community of ProcessNode builders around the online version of FloWr, newly developed since the publication of \cite{charnley2014flowr} in order to facilitate the direct involvement of other Computational Creativity researchers.

A sample poem generated by FloWr\label{fig:being-blunt}

A sample poem generated by FloWr\label{fig:being-blunt}

When FloWr constructs flowcharts for itself, while each is semantically plausible (i.e., they pass the right type of data from ProcessNode to ProcessNode), many fail – for instance, because the available data is limited, or is narrowed down too quickly. In fact, the best results in \cite{charnley2014flowr} were at 20%, i.e., 80% of the flowcharts that were constructed failed to produce output. Each of these failures can be saved as an outstanding problem in FloWr’s prepared mind. As data changes and as new nodes are written and uploaded to the system, FloWr will be able to replace nodes, update data sources, and in general rearrange flowcharts in order to see if it can fix a broken flowchart.

For instance, suppose a ProcessNode developer wrote and uploaded a node to mine data from a new social network, in order, say, to produce textual summaries of world events. FloWr may take that node and substitute it in the place of an old “FaceBook” node in a broken poetry flowchart. If the replacement worked, and output was produced, this could be seen as a serendipitous occurrence: FloWr will have taken advantage of the dynamically changing environment – in which new social networks come and go, and in which text summaries may work better in some cases than in others – to resolve an outstanding problem in text generation.

The next stage for the FloWr system will be to modify it along these lines, to make it able to adapt to the dynamically changing environment, and to perform experiments where we monitor potentially serendipitous scenarios. Such experiments will be similar to those we tried with the HR2 system in \cite{pease2013discussion}, but improved because in this earlier effort, we had to break working processes in order to serendipitously fix them. The new experiments, the scenarios will be more realistic, i.e., there will be a catalogue of genuine open problems waiting to be solved. Understanding how to work with this catalogue and the associated experimental process will, of course, be used to further the computational model of serendipity. We discuss one direction for such experiments in Section \ref{sec:writers-workshop}.