Every scriptable application must have a set of commands that it understands and can execute; this is its dictionary.
Some applications have a very limited Required Suite of four commands (open, print, run, and quit) and offer very limited scripting abilites. Other applications offer seemingly lots of commands, such as Silhouette, but absolute useless, since they are a copy of the standard Core Suite, and such commands are not really implemented. When you find a good dictionary, most probably you will find too some scripting samples or references in the documentation about the scriptability of the related application.
To find out if an application has a dictionary, simply drop its icon onto your Script Editor and see if the dictionary is opened. Or choose “Open Dictionary…” from the file menu and navigate to the application in question; if you cannot see it after navigating, it has no dictionary and isn’t scriptable.