I installed a local running instance of the ConceptNet5 knowledgebase in an elasticsearch server. I used this data to implement the so-called "Analogietechnik" (a creativity technique to solve a problem from the perspective of another system) as an algorithm.
The technique works as follows:
- Choose a Feature of a System
- Find Systems who have this feature also
- Solve the problem from the perspective of these other systems
- Apply the found solutions to the issue
As an example is here the problem of marketing a shopping mall: A Shopping mall has many rooms and floors (1). A museum has also many rooms and floors (2). How are museums marketed? They present many pictures or sculptures (3). We could use our rooms and floors to decorate them with pictures and sculptures (4).
Of course the idea to implement that as an artifically intelligent algorithm was not far. However, I feel a little bit overwhelmed by the amount of methods that exist out there. Neural Networks, Bayesian Interference and so on... My current experience doesn't go further than simple machine learning like kMeans-Clustering for example. Do you think it would be very hard to find a solution for this problem?
I'm thinking of a console application, where you can enter a conceptualized problem like "methods for creative writing", for example, and it uses the above method to find possible solutions of the issue. Of course no solution with extensive depth, more something like basic ideas derived from the knowledge database I have.
Lets take as an example a console application where someone asks "how to write a novel":
- It should find out first that the system all is about is in the term "novel". To find a feature of that system it just searches concepts containing that term: it finds out "Novel is a story" So thats a feature.
- Which systems are also stories? A good concept it should find is e.g. "Plot is a story". (Of course only when I am selecting the search results manually)--> How to find best concepts of a list when not knowing which fits best?
- It should then find out that a plot is written using a storyline: "storyline is a plot"
- One possible answer of the AI would in this case be: "By writing a storyline"
Do you know some helpful libraries, algorithms or other resources that might help me? I know this is not an easy thing to program, but you might agree that its highly interesting.