What is creativity? One way to put it is: usage of some object in an unexpected way. As is sometimes said "He used X in a creative way."
All objects are understood by their properties and interfaces. Say for instance a pencil can be thought of having these:
Pencil:
Properties:
yellow
2 inches long
1 end that is sharp
1 end that is made of graphite
1 end that is dull
1 end that is made of rubber
Interface:
write : Pencil -> Paper -> Words
Interface is just something people infer from properties (or facts about an object), so people generally expect to Pencil.write, but then some creative soul can look at these properties and say:
Hey, if I ignore that the sharp end is made of graphite and only care about the fact that it is sharp - I can also:
Pencil.stab : Pencil -> Surface -> PastaStrainerexcept that I do need to make sure that hardness property of Surface is lower than that of Graphite.
Then people would say: "Wow! He is so creative! We never thought to use a pencil this way!"
So, what is creativity other than enumerating the properties of objects at hand and then matching them to fit an interface you care about? What if you enumerate all interfaces possible?
I'd love to experiment with something like: create an online, global database of objects and offer searches constrained by properties and interfaces.
I'm thinking of something like a hybrid of Prolog and Hoogle, but for abstract definitions of any (physical of thought) objects.
Is it awesome or "Simpsons did it"?