(I'm new here, but let me try to answer:) You can do anything you want,
providing that it's non-commercial. You're limited only by your
imagination. If you have no imagination what kind of application you
might want to write that needs to use the Google search engine as one
part of the overall task, then you shouldn't be even thinking about
using the Google API.
If you have an application that needs to use Google's search engine as
a small part, the old way you have to send a regular query to the
search engine, then parse the reams of HTML that come back, trying to
separate the search results from the advertisements and other links and
other cruft, and then trying to parse the search results. The new way,
with the XML/SOAP API, you have nice clean XML to parse, much easier to
find the search results you wanted and then get on with the rest of
your application.
Here's an example of an application I thought of: I have a list of the
most common words in English, each having the word-frequency associated
with it. I have an algorithm for assigning weights to keywords in
documents based on dividing the frequency in the document by the
frequency of the same word in my list of common words. So I might have
a new kind of search where my program calls Google to give me a list of
search results, then my program fetches each of the WebPages in the
results and counts word frequencies and divides by standard word
frequencies then sorts the quotients in descending sequence then
presents to the user a single line of most-important-keywords for each
search result.
> it seems that we only can implement "search" in our application.
No, you can implement anything you want, but you can only have Google
do the work of the search. All the rest of the application you need to
write yourself or find other RPC services elsewhere on the net to do
other tasks within your program.