The article is not exhaustive, for example it does not cite Cyc or WordNet, although WordNet is used in another experiment in the book to generate poetry.
The limitations and simplifications of each case study in the book – of which I’m well aware – are outlined in the conclusion of each chapter, often touching on subjects such as “real AI” or “false impression of creativity” or cliché.
The aim of my work was to bring together a lot of existing knowledge, popularize it, and make it available in the form of an easy-to-use toolkit (Pattern) for others to play with, explore and progress further. From there on, computational creativity is an active and engaging domain in AI with many open challenges that warmly welcomes new researchers.
As for the unsupervised learn() function: one could write an endless loop in programming code that crawls for “noun1 is adjective1” statements, then for each adjective1 crawls for “noun2 is adjective1” statements, then for each noun2 crawls for “noun2 is adjective2” statements, and so on. The problem would be to automatically filter out uninteresting relations (there will be many), which leads to a creativity-problem-inside-a-creativity-problem.
The source code has a base SearchEngine class and a Result class, which streamline the input and output parameters across different web services, so it is not difficult to add new services (= subclass of SearchEngine). There are also some general developer docs: http://www.clips.ua.ac.be/pages/pattern-dev
The reason is mainly 1) licensing and 2) integration. I took what I found that fitted the BSD license and wrote the rest myself. The idea was having all the things I needed in a single, concise package. I like carrying around 1 MacGyver knife instead of a heavy toolbox - even if all the separate tools in the box are more robust than the knife.
As for the JavaScript graph library: Daniel Friesen had already ported 90% of the Python code, so it only took me a day or two to finish it. The result is a single file (graph.js) with lots of things besides visualization (eigenvector centrality etc.) which seemed better suited to Pattern than integrating another, bigger project.
This article was written in 2012 as part of my PhD dissertation (http://arxiv.org/pdf/1410.0281), which consists of a number of computational creativity experiments and case studies, using the Pattern toolkit for Python (http://www.clips.uantwerpen.be/pattern).
The article is not exhaustive, for example it does not cite Cyc or WordNet, although WordNet is used in another experiment in the book to generate poetry.
The limitations and simplifications of each case study in the book – of which I’m well aware – are outlined in the conclusion of each chapter, often touching on subjects such as “real AI” or “false impression of creativity” or cliché.
The aim of my work was to bring together a lot of existing knowledge, popularize it, and make it available in the form of an easy-to-use toolkit (Pattern) for others to play with, explore and progress further. From there on, computational creativity is an active and engaging domain in AI with many open challenges that warmly welcomes new researchers.
As for the unsupervised learn() function: one could write an endless loop in programming code that crawls for “noun1 is adjective1” statements, then for each adjective1 crawls for “noun2 is adjective1” statements, then for each noun2 crawls for “noun2 is adjective2” statements, and so on. The problem would be to automatically filter out uninteresting relations (there will be many), which leads to a creativity-problem-inside-a-creativity-problem.