How does the internal architecture look like?

The question is how the internal structure of Wolfram|Alpha looks like. To further specify this question:

  1. How do pieces of algorithms communicate with each other?
  2. Is it comparable to a blackboard architecture?
  3. What is the internal model of a problem statement or question?
  4. How to make the solution of one algorithm consistent with the solution or input argument of another algorithm? Is it convention or conversion?