Joe Corneli commit M&M version  about 8 years ago

Commit id: 4ffa98774a28e950a23bf8ebeaaa9ab5961751f8

deletions | additions      

       

In Section \ref{sec:computational-serendipity}, we applied our model  to evaluate the serendipity of an evolutionary music improvisation  system, a system for automatically assembling flowcharts, and  a  hypothetical class of next-generation recommender systems,  and a system for assembling flowcharts. systems.  The model has helped to highlight directions for development that would increase the a system's  potential for serendipity in existing systems, serendipity,  either incrementally or more transformatively. Our model outlines a path towards the development of systems that can observe events that would otherwise not be observed, take an interest in them, and transform the observations into artefacts with lasting value. %% In this section, we will show how the model allows for more precise  %% thinking than other existing work touching on this area. We then 

Recent work has examined the related topics of \emph{curiosity}  \cite{wu2013curiosity} and \emph{surprise} \cite{grace2014using} in  computing. The latter example seeks to ``adopt methods from the field of computational creativity [$\ldots$] to the generation of scientific hypotheses.'' This provides a useful example of an effort focused on  computational \emph{invention}. Another related area of contemporary  computing in which serendipitous events may be found is  bioinformatics: ``Instead of waiting for the happy accidents in the  lab, you might be able to find them in the data''  \cite[p.~70]{kennedy2016inventology}.  As we indicated earlier, creativity and serendipity are often  discussed in related ways. A further terminological clarification is  warranted. The word \emph{creative} can be used to describe a  ``creative product'', a ``creative person'', a ``creative process''  and even the broader ``creative milieu.'' Computational creativity  must take acount all of these aspects \cite{jordanous2015four}. \cite{4Pjournal-version}.  In contrast, the model we have presented focuses only on serendipity as  an attribute of a particular kind of process. Most often, we speak of  a system's \emph{potential} for serendipity. In the current work, we 

in the current paper. Another issue is the widespread reliance on microdomains. However, there are other underlying factors.  Existing standards for assessing computational creativity have  historically focused on product evaluations.  \citeA{ritchie07} uses metrics that depend on properties that a reasonably sophisticated judge can ascribe to generated artifacts: ``typicality'', i.e., the extent to which an artifact belongs to a certain genre, and ``quality'' ``quality''. These are used  as atomic measures for from which  more complex metrics, including ``novelty.'' ``novelty,'' can be derived.  Most often, the judge is assumed to be a human. %  In recent years, artefact-centred evaluations are increasingly  complemented by methods that consider process 

creativity.  We would argue that the concept of serendipity brings autonomous  creative systems into clearer focus: not as with  an abstract notion of creativity \emph{sui generis}, but creativity in  interaction with the world. This often requires a different mindset,  and a different approach to system building and evaluation. 

\paragraph{\textbf{Autonomy}.} Our case studies in Section  \ref{sec:computational-serendipity} highlight the potential value of  increased autonomy on the system side. The search for connections that make raw data into ``strategic data'' is an appropriate theme for research in computational intelligence and machine learning to grapple with. In the standard cybernetic model, we control computers, and we also control the computer's operating context. There is little room for serendipity if there is nothing outside of our direct control. In This mainstream model stands in  contrast tothis mainstream model,  von Foerster \citeyear[p. 286]{von2003cybernetics} advocated a Foerster's \citeyear{von2003cybernetics}  second-order cybernetics in which ``the observer who enters the system  shall be allowed cybernetics. \citeA{research-priorities} advise researchers  to stipulate his own purpose.'' consider \emph{verification}, \emph{validity} and \emph{security} as  well as \emph{control}. While we wouldn't advocate an uncautious  approach, it must be pointed out that the dystopic scenarious  surrounding loss of control may have corresponding utopic  counter-scenarios; and in any event, we believe there is a more  fundamental research problem.  \emph{A primary challenge for the serendipitous operation of computers is developing computational agents that specify their own problems.} \paragraph{\textbf{Learning}.} Each of the case studies considered in  Section \ref{sec:computational-serendipity} describes a system that 

see that the creation of a new design pattern is always somewhat  serendipitous (Figure \ref{fig:pattern-schematic}; compare Figure  \ref{fig:1b}).  %%  To van Andel's assertion that ``The very moment I can plan or  programme `serendipity' it cannot be called serendipity anymore,'' we  reply that patterns -- and programs -- can include built-in 

unexpected happy outcomes more likely, by designing and developing  systems that increasingly address the challenges outlined in Section  \ref{sec:recommendations}. Such systems will encounter unexpected  stimuli, become curious about them, sagaciously pursuing pursue  enquiry within a social context, and assess the value of any outcomes.  %  Figure \ref{fig:va-pattern-figure} shows one example of a design  pattern that can be used to \emph{plan for serendipity}, based on a the  ``\emph{Successful Error}''  pattern identified by van Andel: ``\emph{Successful Error}''. Andel.  In future work, we intend to build a more complete serendipity pattern  language -- and put it to work within autonomous programming systems.  % Is ``having a stretch goal'' an example of a serendipity pattern? I think so!  \begin{figure}[!h]  \vspace{.3cm}  \input{pattern-schematic-tikz.tex}         

detailed set of evaluation standards for serendipity.  %  We used this model to analyse the potential for serendipity in case  studies of evolutionary computing,recommender systems, and  automated programming. programming, and recommender systems.  We saw that the proposed framework can be used both retrospectively, as an evaluation tool, and prospectively, as a design  tool. In every case, the model surfaced themes that can help to guide  implementation.         

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  \cite{mckay-serendipity}, arts,  in the tech industry \cite{rao2015breaking}, technology sector,  and elsewhere. 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. 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 

Similarly, even if we cannot plan or program serendipity, we can  prepare for it.  If Indeed, if  serendipity was ruled out as a matter of principle, computing would be restricted to happy or unhappy \emph{unsurprises} -- preprogrammed,  preunderstood behaviour -- that would be interspersed periodically,  perhaps, with an \emph{unhappy} surprise.(Perhaps this latter case  would ultimately reduce to ``programmer oversight''.)  Venkatesh Rao \citeyearpar{rao2015breaking} uses the term \emph{zemblanity} -- after  William Boyd \citeyearpar{boyd2010armadillo}: ``zemblanity, the ``the  opposite of serendipity, the faculty of making unhappy, unlucky and  expected discoveries by design'' -- to describe systems that are  doomed to produce only \emph{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 \citeA{von2003cybernetics}, which envisions systems that  are able to specify their own purpose, and adapt it with respect to a 

what van Andel \citeyearpar[p.~639]{van1994anatomy} terms \emph{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         

that are taken on $T^\star$ leading to the \textbf{result} $R$, which is ultimately given a positive evaluation.  %\afterpage{\clearpage}  \begin{figure}[p] \begin{figure}[h]  \vspace{2mm}  \captionsetup[subfigure]{justification=centering}  %% \begin{minipage}[b]{\textwidth} 

fallible, as is the system as a whole. Thus, for example, a trigger  that has been initially tagged as interesting may prove to be  fruitless in the verification stage. Similarly, a system that  implements all of the procedural  steps in Figure \ref{fig:1c}, but that for whatever reason is never able to achieve a result of significant value  cannot be said to have potential for serendipity. However, a system  only produces results of high value would also be suspect, since it         

%Then combining $\mathbf{a}\times\mathbf{b}\times\mathbf{c}$ gives a  % likelihood score:   \begin{mdframed}  \vspace{.1cm} {\textbf{\emph{Likelihood score and final  ruling.}} Low but  nonzero A low (nonzero)  likelihood score  $\mathbf{a}\times\mathbf{b}\times\mathbf{c}$ and high value $\mathbf{d}$ imply that the event was ``serendipitous.''  In all  other conditions, cases,  the event was ``unserendipitous.''} \end{mdframed}  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  \item[{(\textbf{C - Factors})}] {Finally, if the criteria from Part A 

\subsection{Heuristics}\label{specs-heuristics}  \textbf{\emph{Choose \paragraph{Choose  relevant populations to produce a useful estimate.}} estimate.}  It isn't necessary to assign explicit numerical values to $\mathbf{a}$, $\mathbf{b}$, $\mathbf{c}$, and $\mathbf{d}$,  although that can be done if desired. More typically -- and in all of  the examples that follow -- all that is required is to select a  relevant population in order to make an estimate. With a population  of one, there is no basis for comparison, whereas in huge large  population, the chance of any particularly specific highly-specific  outcome is likely to may  be vanishingly small. The aim is to highlight what -- if anything -- is special about the potentially serendipitous development pathway, pathway  in comparison to other possible paths. paths, and hopefully learn something relevant.  Thus, we might choose to  compare Fleming to other lab biologists, and or to compare  Goodyear to other chemists. Even if we were to shift the analysis and look at the much smaller populations of  experimental pathologists or inventors with an interest in rubber,  Fleming and Goodyear would have features that stand out, particularly  when it comes to their curiosity.  \textbf{\emph{Find \paragraph{Find  the salient features of the trigger.}} trigger.}  How can we we estimate the chance of the trigger appearing, if every trigger is  unique? Consider de Mestral's encounter with burrs. The chance of  encountering burrs while out walking is \emph{high}: many people have 

of time; in other words, it may be a pattern, rather than a fact.  Noticing patterns is a key aspect of sagacity, as well.  \textbf{\emph{Look \paragraph{Look  at long-term behaviour.}} behaviour.}  Although it is in no way required by the SPECS methodology outlined above, many systems  (including all of the examples below) have an iterative aspect. This  means that a result may serve as a trigger for further discovery. In         

\section{Serendipity in computational systems} \label{sec:computational-serendipity}  The 13 facets of serendipity from Section \ref{sec:literature-review} \ref{sec:by-example}  specify the conditions and preconditions that are conducive to serendipitous discovery. Section \ref{sec:our-model} distilled these elements into a computational model, culminating in a method for  evaluating computational serendipity in Section \ref{specs-overview}. model.  %  Along with clear criteria, it is important to clearly delineate the  scope of the system being evaluated, and the position of the evaluator 

flowcharts. Using our updated criteria, we discuss two new examples  below, and revisit poetry flowcharts, reporting on recent work and  outlining the next steps. The three case studies respectively apply  the criteria to \emph{evaluate}of  an existing system, \emph{design} a new experiment, and \emph{frame} a ``grand challenge.'' In the first  case study, the system we evaluate turns out not to be particularly  serendipitous according to our criteria. This helps to show that our 

\subsubsection{Application of criteria}  In our current the initial  experimental design, following \citeA{pease2013discussion},  the system's potential \textbf{triggers} result from random, but constrained, trial and error with flowchart assembly. Some valid combinations of nodes will produce results, and some will not. Due to the dynamically changing  environment (e.g., updates to data sources like Twitter) some  flowcharts that did not produce results earlier may unexpectedly begin  to produce results.  %  The system's \textbf{prepared mind} lies in a distributed knowledge  base provided byProcessNodes themselves, describing  the ProcessNodes, which provide metadata that  describe  constraints on their inputs and outputs; outputs --  and also  in the global history of successful and unsuccessful combinations. %  The system will not try combinations that it knows cannot produce  results, but it will try novel combinations and may retry earlier 

What made this particular combination work? Is there a pattern that  could be exploited in the future? It may be that no broader pattern  can be found, and the system will simply record the bare fact that the  combination works. works (and this is the simple starting point from which we  begin).  %  Successful combinations and any further inferences are stored, and  referred to in future runs. The \textbf{bridge} to any a  new results result  is accordingly found by informed trial and error, building on previous outcomes. %  The basic \textbf{result} the system is aiming to achieve is simply to  generate a new combination of nodes that can fit together and that  generates non-empty output. Subsequent Reviewing this design, we observed that  subsequent  versions of the system may have more detailed evaluation functions, setting a higher bar. bar for what counts as success.  For example, a future version of the system could be tuned to search for  flowcharts that generate poetry \cite{corneli2015computational}. 

FloWr}, the search process is exceptionally \textbf{curious}, since  it tries many combinations programmatically. However, remembering  viable combinations and avoiding combinations that are known not to  work offer unexceptional does not require exceptional  \textbf{sagacity}. This At least, this  will be so until the system learns more heuristics, heuristics for flowchart construction,  which requires would  require  not just only  pattern matching but pattern induction. At the moment, the system's criterion for attributing \textbf{value} is simply that the combination of nodes generates non-empty output; an third-party is not likely to judge such combinations as useful.  \subsubsection{Ruling} 

$\mathit{low}\times\mathit{low}\times\mathit{high}$, which is  relatively favourable. However, until there is a more discriminating  way to judge value, the attribution of serendipity to any particular  run is seems  premature. One route forward would be This motivates a new set of experiments that  seeks  to attribute meaningfully judge the  value to of  explanatory heuristics,rather than  generated flowcharts, and  texts. This would will both  result in (and require) and require  increased sagacity on the part of the system. %%% JAC - add citations to ICCC papers if they have been accepted.  \subsubsection{Qualitative assessment}  The\textbf{dynamic world} the  system operates in a \textbf{dynamic world} that  is dynamic in two ways: first, in the straightforward sense that some of the input  sources, like Twitter, are changing; additionally, in the sense that  the system's knowledge of successful and unsuccessful node  combinations changes over time. time as well.  The current version of the system does not seem to deal with \textbf{multiple contexts}.We have broken  the search process into separate sub-populations to constrain the  search, but these do not interact.  In a future version of the system, interaction between different heuristically-driven search processes  would be possible, and could lead to more unexpected results. Along  these lines, as more goals are added, the system could more readily be 

\begin{table}[p]  {\centering \renewcommand{\arraystretch}{1.5}  \scriptsize  \begin{tabular}{p{1.5in}@{\hspace{.1in}}p{1.5in}@{\hspace{.1in}}p{1.5in}} \begin{tabular}{p{1.4in}@{\hspace{.1in}}p{1.4in}@{\hspace{.1in}}p{1.4in}}  \multicolumn{1}{c}{\textbf{{\footnotesize Evolutionary music}}}   & \multicolumn{1}{c}{\textbf{{\footnotesize Flowchart assembly}}}   & \multicolumn{1}{c}{\hspace{-.3cm}\textbf{{\footnotesize Next-gen.~recommenders\hspace{.3cm}}}} \multicolumn{1}{c}{\textbf{{\footnotesize Next-gen.~rec.~sys.}}}  \\[.05in]  \multicolumn{3}{l}{\em {\textbf{Condition}}} \\  \cline{1-3} 

differentiate individual threads or system runs. Some elements of  this population might be deemed more serendipitous than others.  \item The flowchart assembly process would need more stringent, and  more meaningful, criteria for value before third-party observers  would be likely to attribute serendipity to the system. In addition  to raising challenges for autonomous evaluation (as in the  evolutionary music system case), this requirement would impose more  sophisticated constaints on processing in earlier steps, which would  require the system to be more sagacious.  \item The  next-generation recommender systems we've envisioned need to be able to make inferences from aggregate user behaviour. This  points to long-term considerations that go beyond the unique  serendipitous event. How ``curious'' should these systems be? One 

step towards building an artificially-intelligent recommender  system, users might be explicitly given tasks that are designed to  trigger serendipity on the system-side.  \item The flowchart assembly process would need more stringent, and  more meaningful, criteria for value before third-party observers  would be likely to attribute serendipity to the system. In addition  to raising challenges for autonomous evaluation (as in the  evolutionary music system case), this requirement would impose more  sophisticated constaints on processing in earlier steps, which would  require the system to be more sagacious.  \end{enumerate}         

\begin{abstract}  Most There is relatively little  prior work that deals dealing  with serendipity in a computing context context, and the majority of it  focuses on computational ``discovery''. support for human discovery via recommender systems.  We argue that serendipity also includes an important ``invention'' invention  aspect. Building on a survey that describes of  serendipitous discovery and invention in science and technology, we advance a definition of serendipity and an accompanying model that can be used evaluate the potential for serendipity in serendipitous discovery and invention of autonomous or interactive  computational systems. The Practitioners can use this  model adapts existing recommendations to evaluate a system's potential  for evaluating computational creativity.  It unexpected online behaviour that may have a beneficial outcome. In addition to a quantitative rating of serendipity potential -- computed in terms of population-based estimates of chance and curiosity (in the discovery phase) and sagacity and value (in the invention phase) -- the model also suggests qualitative features that can guide development work. We show how the model  is applied used  in three case studiesthat evaluate the serendipity  of existing and hypothetical systems systems,  in the context of evolutionary computing,recommender systems, and  automated programming. programming, and (next-generation) recommender systems.  From this analysis, we extract recommendations for practitioners working with computational serendipity, and outline future directions for research. \\[.3cm]  \keywords{serendipity, evaluation, computational creativity, autonomous systems}         

%% Saved with string encoding Unicode (UTF-8)   @article{4Pjournal-version,  author = {Anna Jordanous},  title = {Four {PPPP}erspectives on computational creativity in theory and in practice},  journal = {Connection Science},  volume = {0},  number = {0},  pages = {1-23},  year = {0},  doi = {10.1080/09540091.2016.1151860},  URL = {  http://dx.doi.org/10.1080/09540091.2016.1151860  },  eprint = {  http://dx.doi.org/10.1080/09540091.2016.1151860  }  }  @article{research-priorities,  author = {Stuart J. Russell and Daniel Dewey and Max Tegmark},  title = {{R}esearch {P}riorities for {R}obust and {B}eneficial {A}rtificial {I}ntelligence},  journal = {{AI} {M}agazine},  volume = {36},  number = {4},  year = {2015},  }  @book{russo2010companies,  title={Companies on a mission: Entrepreneurial strategies for growing sustainably, responsibly, and profitably},  author={Russo, Michael}, 

@book{austin2003chase,  title={Chase, chance, and creativity: The lucky art of novelty},  author={Austin, James H},  year={2003 [1978]}, year={[1978] 2003},  publisher={MIT Press}  } 

Author = {Bergson, Henri},  Publisher = {Henry Holt and Company},  Title = {Creative {E}volution},  Year = {1911 [1907]}} {[1907] 1911}}  @article{milan2013kiki,  Author = {Mil{\'a}n, E and Iborra, O and de Cordoba, MJ and Ju{\'a}rez-Ramos, V and Artacho, MA Rodr{\'\i}guez and Rubio, JL}, 

Place = {London},  Publisher = {John Brindley},  Title = {Zadig, or the Book of Fate},  Year = {1749 [1748]}} {[1748] 1749}}  @article{chumaceiro1995serendipity,  Author = {D{\'{\i}}az de Chumaceiro, Cora L.}, 

Pages = {283--286},  Publisher = {Springer},  Title = {Cybernetics of cybernetics},  Year = {2003 [1979]}} {[1979] 2003}}  @book{von2003essays,  Author = {von Foerster, Heinz}, 

Author = {Dewey, John},  Publisher = {Courier Dover Publications},  Title = {How we think},  Year = {1997 [1910]}} {[1910] 1997}}  @article{delanda1993virtual,  Author = {Delanda, Manuel}, 

Place = {Westport, Connecticut},  Publisher = {Greenwood Press},  Title = {{T}he {C}reative {M}ind},  Year = {1946 [1941]}} {[1941] 1946}}  @book{deleuze1991bergsonism,  Annote = {Trans. Hugh Tomlinson and Barbara Habberjam.}, 

Place = {New York},  Publisher = {Zone},  Title = {Bergsonism},  Year = {1988 [1966]}} {[1966] 1988}}  @article{moukas1997amalthaea,  Author = {Moukas, Alexandros}, 

Author = {Jevons, W. S.},  Publisher = {Macmillan},  Title = {{P}rinciples of {S}cience: {A} treatise on logic and scientific method},  Year = {{1913 [1874]}}} {[1874] 1913}}  @incollection{dunbar:05,  Address = {Mahwah, NJ}, 

Place = {London},  Publisher = {Bloomsbury Academic},  Title = {Difference and repetition},  Year = {2004 [1968]}} {[1968] 2004}}  @inproceedings{colton-flowcharting,  Author = {Simon Colton and John Charnley}, 

Author = {Poincar{\'e}, Henri},  Publisher = {Courier Dover Publications},  Title = {Science and method},  Year = {2013 [1914]}} {[1914] 2013}}  @incollection{stakeholder-groups-bookchapter,  Author = {Simon Colton and Alison Pease and Joseph Corneli and Michael Cook and Rose Hepworth and Dan Ventura}, 

year={2015}}  @incollection{keller2014ubimus,  title={Ubimus Through title={{U}bimus {T}hrough  the Lens {L}ens  of Creativity Theories}, {C}reativity {T}heories},  author={Keller, Dami{\'a}n and Lazzarini, Victor and Pimenta, Marcelo S},  booktitle={Ubiquitous Music}, booktitle={{U}biquitous {M}usic},  pages={3--23},  year={2014},  publisher={Springer}  }  @book{slack2003noble,  title={Noble Obsession: Charles Goodyear, Thomas Hancock, title={{N}oble {O}bsession: {C}harles {G}oodyear, {T}homas {H}ancock,  and the Race {R}ace  to Unlock {U}nlock  the Greatest Industrial Secret {G}reatest {I}ndustrial {S}ecret  of the 19th Century}, {C}entury},  author={Slack, Charles},  year={2003},  publisher={Hyperion}  }  @book{kennedy2016inventology,  title={{I}nventology: {H}ow {W}e {D}ream {U}p {T}hings {T}hat {C}hange the {W}orld},  author={Kennedy, Pagan},  year={2016},  publisher={Houghton Mifflin Harcourt}  }  @book{antifragile-software,  title={{A}ntifragile {S}oftware: {B}uilding {A}daptable {S}oftware with {M}icroservices},  author={Miles, Russ},  year={2015},  publisher={Leanpub}  }         

skipbelow=\baselineskip,  innertopmargin=3pt,  innerbottommargin=8pt,  apptotikzsetting={\tikzset{mdfbackground/.append style={fill=red,fill style={fill=white,fill  opacity=0}}} } 

\usepackage{dialogue}  \usepackage{placeins}  \usepackage{tikz}  \usepackage{onimage}  \usetikzlibrary{positioning,backgrounds,fit,arrows,arrows.meta,shapes,shadows} %\usepackage{onimage}  \usetikzlibrary{positioning,backgrounds,fit,arrows,shapes,shadows}  \usetikzlibrary{shapes.multipart}  \usepackage{wrapfig}  \usepackage{enumitem} 

}  \makeatother  \setlength{\parskip}{0pt}  \setlength{\parsep}{0pt}  %\setlength{\headsep}{0pt}  \setlength{\topskip}{0pt}  \setlength{\topmargin}{0pt}  \setlength{\topsep}{0pt}  \setlength{\partopsep}{0pt}  \raggedbottom  \begin{document}  % TITLE INFORMATION         

% ``poet generates poem''  \node[single, right=8mm of discovery.east,text width=1.5cm] (poet) {\emph{generative\\ process}};  \node[single, right=6mm of poet.east] (poem) {$T$};  \draw [-latex] [->]  (poet.east) -- (poem.west); % ``critic listens to poem and offers feedback''  \node[ellipse, draw, right=9mm of poem.east,text width=1.3cm] (critic) {\emph{feedback}};  \draw [-latex] [->]  (poem.east) -- (critic.west); \node[single, above=8mm of critic.north,text width=1.4cm] (experience) {\emph{reflective\\ process}};  \node[draw,diamond,inner sep =.3mm, above right=4mm and 3mm of critic] (comment) {\raisebox{2mm}{$p\vphantom{^{\prime}}_1$}} ;  \node[draw,diamond,inner sep =.3mm, above left=4mm and 3mm of critic] (reflection) {\raisebox{2mm}{$p\vphantom{^{\prime}}_2$}} ;  \draw[-latex,thick] \draw[->,thick]  ([yshift=1mm]critic.east) to [out=0,in=270] (comment.south) ; \draw[-latex,thick] \draw[->,thick]  (comment.north) to [out=90,in=0] (experience.east) ; \draw[-latex,thick] \draw[->,thick]  (experience.west) to [out=180,in=90] (reflection.north) ; \draw[-latex,thick] \draw[->,thick]  (reflection.south) to [out=270,in=140] ([yshift=1.5mm]critic.west) ; % nonprinting point to use to bend curve  \coordinate[below right=3mm and 7mm of critic] (mid1); 

\node[below=.65cm of discovery] (focusshift) {{\small \textbf{\emph{[Focus shift]}}}};  % draw the first curve into focus shift  \draw [-latex] [->]  ([yshift=-1mm]critic.east) to[out=0,in=90] (mid1) to[out=270,in=0] (feedback.east); %%% Next phase  \node[below=2cm of discovery] (invention) {\textbf{\emph{Invention:}}}; 

\coordinate[above left=2mm and 9mm of integrator] (mid2);  % draw the second curve out from focus shift  \draw [-latex] [->]  (feedback.west) to[out=180,in=90] (mid2) to[out=270,in=160] (integrator.west); % ``poet asks questions about the feedback'' 

\node[draw,diamond,inner sep =.3mm, below right=4mm and 5mm of integrator] (question) {\raisebox{2mm}{$p^{\prime}_1$}};  \node[draw,diamond, inner sep =.3mm, below left=4mm and 5mm of integrator] (answer) {\raisebox{2mm}{$p^{\prime}_2$}};  \draw[-latex,thick] \draw[->,thick]  ([yshift=-1mm]integrator.east) to [out=0,in=90] (question.north) ; \draw[-latex,thick] \draw[->,thick]  (question.south) to [out=270,in=0] (explainer.east) ; \draw[-latex,thick] \draw[->,thick]  (explainer.west) to [out=180,in=270] (answer.south) ; \draw[-latex,thick] \draw[->,thick]  (answer.north) to [out=90,in=200] ([xshift=1mm,yshift=-1.8mm]integrator.west) ; \node[yshift=1mm,single, right=10mm of integrator.east] (problem) {$R$};  \draw [-latex] [->]  ([yshift=1mm]integrator.east) -- (problem.west); % ``poet reflects on feedback and updates codebase''  \node[single, right=6mm of problem.east,text width=1.6cm] (pgrammer) {\emph{evaluation}\\ \emph{process}};  \draw [-latex] [->]  (problem.east) -- (pgrammer.west); \node[single, right=4mm of pgrammer.east,text width=.3cm] (etc) {...};  \draw [-latex] [->]  (pgrammer.east) -- (etc.west); \end{tikzpicture}