Joe Corneli first text for FloWr case study  over 8 years ago

Commit id: d2dc2ad2dc0d8a8b7ffb3b41b6a75348b8cc8255

deletions | additions      

       

\subsection{Case Study: Automated flowchart assembly}  Here we examine the design of an ongoing experiment with the FloWr  flowcharting framework \cite{colton-flowcharting}. FloWr is a user  interface for creating and runnable flowcharts, built of small modules  called ProcessNodes. Indeed, FloWr can be viewed as a visual  programming environment. However, it can also be used  programmatically, on the JVM (with the legacy desktop version of the  software) or with any language using a new web API. FloWr aims to be  user friendly aide for its user's creativity, as well as to be a  (programmatic) \emph{Flowchart Writer}. Our experiment targets the  latter scenario, and look for ways to assemble flowcharts  automatically.  In the backend, FloWr's flowcharts are stored as scripts that the  names of nodes of different types as well as their (input) parameters  and (output) variable settings. Connections between nodes are established  when one node's input parameter references the output variable of  another node.  %% For example, in the following two-stanza flowchart,  %% the {\tt WordSenseCategoriser}'s {\tt stringsToCategorise}  %% parameter takes its setting from the {\tt Dictionary}'s {\tt \#dictionaryWords}  %% output variable.   %% \begin{verbatim}  %% text.retrievers.Dictionary.Dictionary_0  %% lowerFrequencyPercent:90  %% upperFrequencyPercent:95  %% numberRequired:10000  %% #dictionaryWords = words[*].text  %%  %% text.categorisers.WordSenseCategoriser.WordSenseCategoriser_0  %% requiredSense:aj0  %% stringsToCategorise:#dictionaryWords  %% #adjectives = haveMainSense[*]  %% \end{verbatim}  %% The syntax of variable settings in these scripts is a Java ``pidgin.''  Inputs and outputs have specific constraints, for instance, the {\tt  WordSenseCategoriser}'s {\tt stringsToCategorise} parameter needs to  be seeded with an ArrayList of arbitrary strings, while its {\tt  requiredSense} parameter needs to be seeded with a string that  represents one of the 57 British National Corpus Part of Speech tags.  The first challenge in automated flowchart assembly is to match inputs  to outputs correctly, and to make sure that all required inputs are  satisfied.  The system's  \textbf{serendipity triggers} ... result from trial and error  with flowchart assembly. Some combinations of nodes will work, 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 knowledge embedded in  nodes that show the constraints on their inputs and outputs, and a  history of successful and unsuccessful combinations.  %  The  \textbf{bridge} ... is accordingly informed trial and error. The  system will not try combinations that it knows cannot produce results,  but it will try novel combinations and may retry earlier flowchart  specimens that could become viable.  %  The  \textbf{result} ...  \textbf{chance} ...  \textbf{curiosity} ...  \textbf{sagacity} ... that system is aiming for is to discover new  combinations of nodes that can fit together and that generate  non-empty output.  There is a strong role for \textbf{chance}, in terms of output from  some of the nodes, and in terms of the combinatorial search strategy  itself. The system's ongoing effort to discover new combinations that  work could be interpreted as \textbf{curiosity}. Similarly, the fact  that it remembers viable combinations and doesn't try combinations  that are known not to work could be thought of as \textbf{sagacity}.  At the moment, the threshold for  \textbf{value} ... is low, since we are  only looking for non-empty output. However, subsequent versions of  the system may have other evaluation functions plugged in, setting a  higher bar. For example, a future version of the system could be  tuned to search for flowcharts that generate meaningful poetry, as we  discuss in \cite{corneli2015computational}.  The  \textbf{dynamic world} ... is thus dynamic in two ways: in the  straightforward sense that some of the input sources, like Twitter,  are changing, and also in the sense that the system's knowledge can  change. There is less to say about  \textbf{multiple contexts} ... contexts}:  although we have broken the experiment into separate sub-populations  to constrain the search, these do not interact. As more goals are  added, the system could be seen to have  \textbf{multiple tasks} ... tasks}, for  instance the generation of new poems and the generation of new  heuristics for assembling flowcharts. The present version of the  system does not seem to involve itself with  \textbf{multiple influences} ... influences}, however the FloWr system can be extended modularly with  new ProcessNodes. This suggests that there will be more possible  strategies for assembling flowcharts in the future.  \afterpage{\clearpage}  \begin{table}[p]  {\centering \renewcommand{\arraystretch}{1.5}  \footnotesize  \begin{tabular}{p{.7in}@{\hspace{.1in}}p{1.9in}@{\hspace{.1in}}p{1.9in}}  \multicolumn{1}{c}{} & \multicolumn{1}{c}{\textbf{Evolutionary music systems}} \multicolumn{1}{c}{\textbf{EMS}}  & \multicolumn{1}{c}{\textbf{Next Gen.~Recommender systems}} \multicolumn{1}{c}{\textbf{RS++}}  \\[-.1in] \multicolumn{1}{l}{\em Components} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{} \\  \cline{2-3}  \textbf{Serendipity trigger} & Previous evolutionary operations together with user input & Input from user behaviour \\ 

discussed above. These case studies have shown how our model can be  used to highlight the aspects of existing systems that would need to  be developed further to enhance measures of the system's serendipity.  \clearpage  %%%         

Volume = {3},  Year = {1972}}  @misc{poetry-workshop,  Author = {J. Corneli and A. Jordanous and R. Shepperd and M. T. Llano and J. Misztal and S. Colton and C. Guckelsberger},  Title = {{C}omputational {P}oetry {W}orkshop: {M}aking {S}ense of {W}ork in {P}rogress},  Url = {http://metameso.org/~joe/docs/poetryICCC-wip.pdf},  Year = {2015},  Bdsk-Url-1 = {http://metameso.org/~joe/docs/poetryICCC-wip.pdf}}  @article{engineering-serendipity,  Author = {Lindsay, Greg},  Day = {7}, 

journal={Situated cognition: Social, semiotic, and psychological perspectives},  pages={281--300},  year={1997}  } @incollection{corneli2015computational,  author={Corneli, Joseph and Jordanous, Anna and Shepperd, Rosie and Llano, Maria Teresa and Misztal, Joanna and Colton, Simon and Guckelsberger, Christian},  title={Computational Poetry Workshop: Making Sense of Work in Progress},  editor={Colton, S. and Toivonen, H. and Cook, M. and Ventura, D.},  booktitle={Proceedings of the {S}ixth {I}nternational {C}onference on {C}omputational {C}reativity, {ICCC} 2015},  year={2015},  url={http://axon.cs.byu.edu/ICCC2015proceedings/13.1Corneli.pdf},  abstract={Creativity cannot exist in a vacuum; it develops through feedback, learning, reflection and social interaction with others. However, this perspective has been relatively under-investigated in computational creativity research, which typically examines systems that operate individually. We develop a thought experiment showing how structured dialogues can help develop the creative aspects of computer poetry. Centrally in this approach, we ask questions of a poem, inviting it to tell us in what way it may be considered a {``}creative making.{''}}},  @inproceedings{corneli2015feedback,  title={Implementing feedback in creative systems: {A} workshop approach},  author={Joseph Corneli and Anna Jordanous},  booktitle={Proceedings of the {F}irst {I}nternational {W}orkshop on {AI} and {F}eedback},  editor={Nardine Osman and Matthew Yee-King},  year={2015},  url={http://ceur-ws.org/Vol-1407/AInF2015paper2.pdf}}